TCP/IP詳解

Intemet採用TCP/IP協議。TCP/IP是一種網際互聯通信協議,它包括兩個核心協議TCP和IP。TCP稱爲傳輸控制協議,IP稱爲互聯網絡協議。

TCP/IP的基本工作原理[2]

  TCP/IP模型有四層(應用層、傳輸層、網際層、網絡接口層),每層分別具有不同的協議和功能,TCP/IP協議族是一組在不同層上的多個協議的組合。各層在實現自身的功能時,使用它的直接下層提供的服務,同時也爲它的直接上層提供服務。下面說明這些協議進行協調工作的基本原理。

  1.TCP/IP協議族中各協議之間的關係

  TCP/IP協議族中有很多協議,這些協議處於不同的層,它們之間的關係如下圖所示。

  Image:TCP/IP協議族中各協議之間的關係.jpg

  每個應用層協議都是爲了解決某一類應用問題而定義的,各種應用進程就是通過不同的應用層協議來使用網絡所提供的服務。圖1-4中的應用進程代表實現不同應用層協議功能的進程。例如,實現文件傳輸協議的FTP應用進程可以爲用戶提供計算機之間的文件傳輸服務,實現超文本傳輸協議的HTTP應用進程可以爲用戶提供瀏覽Web網頁的功能等。

  TCP和UDP是兩個傳輸層協議。一般地,應用進程可以選擇使用TCP或者UDP協議。如果應用層協議要求傳輸層提供可靠的服務,則應該選擇TCP協議;否則,如果應用層協議要求較高的數據傳輸速率,但是可以容忍一定的數據丟失,則可以選擇UDP協議。TCP協議的數據單元稱爲TCP報文段或簡稱TCP段(TCPsegment),UDP協議的數據單元稱爲UDP數據報(UDPdatagram)。

  IP協議是網際層上的一個主要協議。TCP和UDP協議都可以直接使用IP協議所提供的服務。IP協議的數據傳送單位稱爲IP數據報或IP分組。TCP報文段或UDP數據報都可以封裝在IP數據報中,以便在互聯網上傳輸。除IP協議外,網際層還有其他協議,例如ICMP協議用於報告差錯和其他重要信息;IGMP是多播組管理協議,是一個與多播有關的協議;ARP(地址解析協議)和RARP(逆向地址解析協議)用於提供ⅡP地址與物理地址的映射功能。IP數據報可以在不同的物理網絡上進行傳送。通過以太網傳送的數據單元稱爲以太網幀,或簡稱爲幀(frame)。

  2.封裝和拆封

  在發送方(也稱爲源主機),當應用程序使用TCP或UDP傳送用戶數據時,將用戶數據送人TCP/IP協議棧,然後自上而下地逐個通過每一層,直到被當做一串比特流送入網絡。其中每一層對收到的數據都需要增加一些首部信息,有時還需要增加尾部信息。這些操作過程稱爲封裝,如圖所示。

  Image:2.數據進入TCP/IP協議棧時的封裝過程.jpg

  TCP、UDP、ICMP和IGMP等協議都要使用IP數據報傳送數據,所以必須在IP數據報的首部加入某種標識,以說明是哪個協議的數據封裝到了IP數據報中。IP數據報首部定義的一個8位的“協議”宇段就是爲此目的而設置的。協議宇段的值爲1表示ICMP,爲2表示IGMP,爲6表示TCP,爲17表示UDP。

  類似地,許多應用進程使用TCP或UDP傳送數據,則需要在TCP段或UDP數據報首部定義一個應用程序標識符。TCP和UDP都使用一個16位的端口號來標識不同的應用程序,TCP和UDP把“源端口號”和“目的端口號”分別存人TCP段首部和UDP數據報首部。網絡接口分別發送和接收IP、ARP、RARP的數據,同理,也必須在以太網(假定物理網絡是一個以太網)的首部加入一個字段,用來說明是哪個協議的數據。爲此,以太網幀首部定義了一個16位的“類型”字段。當接收方(也稱目的主機)收到一個以太網幀時,數據就開始在協議棧中自下而上傳送。各層協議利用報文首部所攜帶的協議控制信息做相應的處理,然後去掉各層協議數據單元的首部,將封裝的數據交給上層協議。每層協議都要檢查協議首部中的協議標識,以確定讓哪一個協議接收數據,這個過程稱爲拆封。下圖說明了以太網數據幀的拆封過程。

  Image:3.以太網數據幀的拆封過程.jpg

  總而言之,發送數據時需要自上而下,層層封裝。接收數據時需要自下而上,層層拆封。

  3.兩個端系統的TCP/IP通信

  兩個端系統的通信會涉及不同層的協議。如下圖所示,主機A和主機B在同一個局域網(以太網)上,兩臺主機都運行實現FTP協議的應用進程,它們的通信過程所涉及到的主要協議都標識在下圖中。

  Image:4.局域網上運行FTP的兩臺主機.jpg

  主機A主機B大多數網絡應用程序都設計成客戶—服務器方式,客戶是服務請求方,服務器是服務提供方,服務器爲客戶提供某種服務。例如,FTP服務器允許客戶訪問FTP服務器所在主機上的文件,WWW服務器允許客戶(瀏覽器)訪問WWW服務器所在主機上的網頁,等等。在兩個端系統的同一層上,雙方都有對應的一個或多個協議進行通信。例如傳輸層利用TCP或UDP等進行通信,網際層利用IP進行通信。

  上圖局域網上運行FTP的兩臺主機從前面的講述可知,應用進程的數據要經過主機A(源主機)自上而下的封裝,然後在網絡中傳輸,最後在主機B(目的主機)經過自下而上的拆封這樣複雜的處理過程,才能到達目的主機的應用進程。但是,對用戶來說,這些複雜的處理過程都屏蔽掉了,好像是主機A的應用進程直接把數據交給了主機B的應用進程。同理,我們可以認爲,任何兩個對等層(peerlayer),例如傳輸層、網際層、網絡接口層之間的通信,如同上圖中標識的一樣,好像是將數據通過水平虛線直接傳遞給對方,這就是所謂的對等層之間的通信。實際上,協議就是在兩個對等層之間傳遞數據時的各種規定。由此可以這樣認爲:實際通信是按垂直方向進行的,層與層之間經過封裝和拆封這樣的操作實現物理通信。但是邏輯上,卻是在水平方向上利用協議進行的對等層通信。在協議的控制下,對等層的通信使得本層能夠向上層提供服務。爲了實現本層協議,還需要使用下面一層所提供的服務。如果兩個端系統不在同一個網絡上,例如它們分別是在路由器連接起來的兩個不同的網絡上,主機A在以太網上,主機B在令牌環網上,通過一個路由器使這兩個網絡連接起來。以太網上的任何主機都可以與令牌環網上的任何主機進行通信,如下圖所示。

  Image:5.通過路由器連接的兩個網絡.jpg

  應用層和傳輸層使用端到端(end-to-end)協議,路由器中沒有這兩層協議,只有端系統纔有這兩層協議。網際層是逐跳(hop-by-hop)協議,端系統和路由器都有網際層協議。一個路由器具有兩個或多個網絡接口,這樣才能連接兩個或多個網絡。互聯網的目的之一是在應用程序中屏蔽所有的物理網絡細節。在上圖中,應用層不需要關心一個端系統是在以太網上還是在令牌環網上,它們通過路由器進行通信。隨着不同類型物理網絡的增加,互聯網的規模變得越來越大,也需要增加路由器,但是應用層仍然是一樣的。物理網絡細節的屏蔽使得互聯網功能非常強大,也非常有用。

發佈了20 篇原創文章 · 獲贊 22 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章