發布時間:2016-05-17 22:22:00 閱讀次數:1691
TCP/IP(Transmission Control Protocol/Internet Protocol)的簡寫,中文譯名為傳輸控制協議/因特網互聯協議,又叫網絡通訊協議,這個協議是是Internet最基本的協議、Internet國際互聯網絡的基礎,簡單地說,就是由網絡層的IP協議和傳輸層的TCP協議組成的。
TCP/IP是網絡中使用的基本的通信協議。雖然從名字上看TCP/IP包括兩個協議,傳輸控制協議(TCP)和網際協議(IP),但TCP/IP實際上是一組協議,它包括上百個各種功能的協議,如:遠程登錄、文件傳輸和電子郵件等,而TCP協議和IP協議是保證數據完整傳輸的兩個基本的重要協議。通常說TCP/IP是Internet協議族,而不單單是TCP和IP。
TCP/IP是用于計算機通信的一組協議,我們通常稱它為TCP/IP協議族。它是70年代中期美國國防部為其ARPANET廣域網開發的網絡體系結構和協議標準,以它為基礎組建的INTERNET是目前國際上規模最大的計算機網絡,正因為INTERNET的廣泛使用,使得TCP/IP成了事實上的標準。
之所以說TCP/IP是一個協議族,是因為TCP/IP協議包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等許多協議,這些協議一起稱為TCP/IP協議。
通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的每一臺電腦規定一個地址。1974年12月,卡恩、瑟夫的第一份TCP協議詳細說明正式發表。當時美國國防部與三個科學家小組簽定了完成TCP/IP的協議,結果由瑟夫領銜的小組捷足先登,首先制定出了通過詳細定義的TCP/IP協議標準。當時作了一個試驗,將信息包通過點對點的衛星網絡,再通過陸地電纜,再通過衛星網絡,再由地面傳輸,貫串歐洲和美國,經過各種電腦系統,全程9.4萬公里竟然沒有丟失一個數據位,遠距離的可靠數據傳輸證明了TCP/IP協議的成功。
1983年1月1日,運行較長時期曾被人們習慣了的NCP被停止使用,TCP/IP協議作為因特網上所有主機間的共同協議,從此以后被作為一種必須遵守的規則被肯定和應用。正是由于TCP/IP協議,才有今天“地球村”因特網的巨大發展。
TCP/IP 是供已連接因特網的計算機進行通信的通信協議。
TCP/IP 指傳輸控制協議/網際協議 (Transmission Control Protocol / Internet Protocol)。
TCP/IP 定義了電子設備(比如計算機)如何連入因特網,以及數據如何在它們之間傳輸的標準。
TCP/IP(傳輸控制協議/網際協議)是互聯網中的基本通信語言或協議。在私網中,它也被用作通信協議。當你直接網絡連接時,你的計算機應提供一個TCP/IP程序的副本,此時接收你所發送的信息的計算機也應有一個TCP/IP程序的副本。TCP/IP是一個兩層的程序。高層為傳輸控制協議,它負責聚集信息或把文件拆分稱更小的包。這些包通過網絡傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件。低層是網際協議,它處理每個包的地址部分,使這些包正確的到達目的地。網絡上的網關計算機根據信息的地址來進行路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會在目的地匯合。TCP/IP使用客戶端/服務器模式進行通信。TCP/IP通信是點對點的,意思是通信是網絡中的一臺主機與另一臺主機之間的。TCP/IP與上層應用程序之間可以說是“沒有國籍的”,因為每個客戶請求都被看做是與上一個請求無關的。正是它們之間的“無國籍的”釋放了網絡路徑,才是每個人都可以連續不斷的使用網絡。許多用戶熟悉使用TCP/IP協議的高層應用協議。包括萬維網的超文本傳輸協議(HTTP),文件傳輸協議(FTP),Telnet和簡單郵件傳輸協議(SMTP)。這些協議通常和TCP/IP協議打包在一起。使用模擬電話調制解調器連接網絡的個人電腦通常是使用串行線路接口協議(SLIP)和點對點協議(PPP)。這些協議壓縮IP包后通過撥號電話線發送到對方的調制解調器中。有TCP/IP協議相關的協議還包括用戶數據報協議(UDP),它代替TCP/IP協議來達到特殊的目的。其他協議是網絡主機用來交換路由信息的,包括Internet控制信息協議(ICMP),內部網關協議(IGP),外部網關協議(EGP),邊界網關協議(BGP)。
IP(Internet Protocol)協議的英文名直譯就是:因特網協議。從這個名稱我們就可以知道IP協議的重要性。在現實生活中,我們進行貨物運輸時都是把貨物包裝成一個個的紙箱或者是集裝箱之后才進行運輸,在網絡世界中各種信息也是通過類似的方式進行傳輸的。IP協議規定了數據傳輸時的基本單元和格式。如果比作貨物運輸,IP協議規定了貨物打包時的包裝箱尺寸和包裝的程序。除了這些以外,IP協議還定義了數據包的遞交辦法和路由選擇。同樣用貨物運輸做比喻,IP協議規定了貨物的運輸方法和運輸路線。
我們已經知道了IP協議很重要,IP協議已經規定了數據傳輸的主要內容,那TCP(Transmission Control Protocol)協議是做什么的呢?不知大家發現沒有,在IP協議中定義的傳輸是單向的,也就是說發出去的貨物對方有沒有收到我們是不知道的。就好像8毛錢一份的平信一樣。那對于重要的信件我們要寄掛號信怎么辦呢?TCP協議就是幫我們寄“掛號信”的。TCP協議提供了可靠的面向對象的數據流傳輸服務的規則和約定。簡單的說在TCP模式中,對方發一個數據包給你,你要發一個確認數據包給對方。通過這種確認來提供可靠性。
TCP/IP協議并不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。這4層分別為:
應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等。
傳輸層:在此層中,它提供了節點間的數據傳送,應用程序之間的通信服務,主要功能是數據格式化、數據確認和丟失重傳等。如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據并把它傳輸到下一層中,這一層負責傳送數據,并且確定數據已被送達并接收。
互連網絡層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。
網絡接口層(主機-網絡層):接收IP數據報并進行傳輸,從網絡上接收物理幀,抽取IP數據報轉交給下一層,對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據。
以下簡單介紹TCP/IP中的協議都具備什么樣的功能,都是如何工作的:
1.IP
網際協議IP是TCP/IP的心臟,也是網絡層中最重要的協議。
IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP并沒有做任何事情來確認數據包是按順序發送的或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最后一個系統傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務將產生問題并且會被非法入侵。
2.TCP
如果IP數據包中有已經封好的TCP數據包,那么IP將把它們向上傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最后到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名數據庫),但使用UDP傳送有關單個主機的信息。
3.UDP
UDP與TCP位于同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網絡時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
4.ICMP
ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統的更準確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務。
5.TCP和UDP的端口結構
TCP和UDP服務通常有一個客戶/服務器的關系,例如,一個Telnet服務進程開始在系統上處于空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接??蛻舫绦蛳蚍者M程寫入信息,服務進程讀出信息并發出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統間的多重Telnet連接是如何相互確認并協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址發送包的IP地址。
目的IP地址接收包的IP地址。
源端口源系統上的連接的端口。
目的端口目的系統上的連接的端口。
端口是一個軟件結構,被客戶程序或服務進程用來發送和接收信息。一個端口對應一個16比特的數。服務進程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
首先,該模型沒有清楚地區分哪些是規范、哪些是實現;其次,TCP/IP模型的主機—網絡層定義了網絡層與數據鏈路層的接口,并不是常規意義上的一層,接口和層的區別是非常重要的,TCP/IP模型沒有將它們區分開來。
在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現,我們稱它為主機。為了實現各主機間的通信,每臺主機都必須有一個唯一的網絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現混亂。
Internet的網絡地址是指連入Internet網絡的計算機的地址編號。所以,在Internet網絡中,網絡地址唯一地標識一臺計算機。
我們都已經知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網絡上的每一臺計算機,靠的就是能唯一標識該計算機的網絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協議語言表示的地址。
目前,在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數點分開,用四個字節來表示,而且,用點分開的每個字節的數值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數表示法。
IP地址可確認網絡中的任何一個網絡和計算機,而要識別其它網絡或其中的計算機,則是根據這些IP地址的分類來確定的。一般將IP地址按節點計算機所在網絡規模的大小分為A,B,C三類,默認的網絡屏蔽是根據IP地址中的第一個字段確定的。
A類地址的表示范圍為:1.0.0.0~126.255.255.255,默認網絡屏蔽為:255.0.0.0;A類地址分配給規模特別大的網絡使用。A類網絡用第一組數字表示網絡本身的地址,后面三組數字作為連接于網絡上的主機的地址。分配給具有大量主機(直接個人用戶)而局域網絡個數較少的大型網絡。例如IBM公司的網絡。
B類地址的表示范圍為:128.0.0.0~191.255.255.255,默認網絡屏蔽為:255.255.0.0;B類地址分配給一般的中型網絡。B類網絡用第一、二組數字表示網絡的地址,后面兩組數字代表網絡上的主機地址。
C類地址的表示范圍為:192.0.0.0~223.255.255.255,默認網絡屏蔽為:255.255.255.0;C類地址分配給小型網絡,如一般的局域網,它可連接的主機數量是最少的,采用把所屬的用戶分為若干的網段進行管理。C類網絡用前三組數字表示網絡的地址,最后一組數字作為網絡上的主機地址。
RFC 1918留出了3塊IP地址空間(1個A類地址段,16個B類地址段,256個C類地址段)作為私有的內部使用的地址。在這個范圍內的IP地址不能被路由到Internet骨干網上;Internet路由器將丟棄該私有地址。
使用私有地址將網絡連至Internet,需要將私有地址轉換為公有地址。這個轉換過程稱為網絡地址轉換(Network Address Translation,NAT),通常使用路由器來執行NAT轉換。
實際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下:D類地址稱為廣播地址,供特殊協議向選定的節點發送信息時用。E類地址保留給將來使用。
連接到Internet上的每臺計算機,不論其IP地址屬于哪類都與網絡中的其它計算機處于平等地位,因為只有IP地址才是區別計算機的唯一標識。所以,以上IP地址的分類只適用于網絡分類。
在Internet中,一臺計算機可以有一個或多個IP地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計算機卻不能共享一個IP地址。如果有兩臺計算機的IP地址相同,則會引起異?,F象,無論哪臺計算機都將無法正常工作。