汉中舜倭家庭服务有限公司

分享到:

TCP/IP協(xié)議詳解

日期:2016-12-26 21:24:00     閱讀:891     文章來源:源美網絡     標簽:深圳網站建設,深圳網頁設計

TCP/IP協(xié)議族

現(xiàn)在Internet(因特網)使用的主流協(xié)議族是TCP/IP協(xié)議族,它是一個分層、多協(xié)議的通信體系。本章簡要討論TCP/IP協(xié)議族各層包含的主要協(xié)議,以及它們之間是如何協(xié)作完成網絡通信的。

TCP/IP協(xié)議族包含眾多協(xié)議,我們無法一一討論。本書將在后續(xù)章節(jié)詳細討論IP協(xié)議和TCP協(xié)議,因為它們對編寫網絡應用程序具有最直接的影響。本章則簡單介紹其中幾個相關協(xié)議:ICMP協(xié)議、ARP協(xié)議和DNS協(xié)議,學習它們對于理解網絡通信很有幫助。讀者如果想要系統(tǒng)地學習網絡協(xié)議,那么RFC(Request For Comments,評論請求)文檔無疑是首選資料。


TCP/IP協(xié)議族體系結構以及主要協(xié)議

TCP/IP協(xié)議族是一個四層協(xié)議系統(tǒng),自底而上分別是數(shù)據(jù)鏈路層、網絡層、傳輸層和應用層。每一層完成不同的功能,且通過若干協(xié)議來實現(xiàn),上層協(xié)議使用下層協(xié)議提供的服務,如下圖:

blob.png

封裝

上層協(xié)議是如何使用下層協(xié)議提供的服務的呢?其實這是通過封裝(encapsulation)實現(xiàn)的。應用程序數(shù)據(jù)在發(fā)送到物理網絡上之前,將沿著協(xié)議棧從上往下依次傳遞。每層協(xié)議都將在上層數(shù)據(jù)的基礎上加上自己的頭部信息(有時還包括尾部信息),以實現(xiàn)該層的功能,這個過程就稱為封裝,如下圖:

blob.png

經過TCP封裝后的數(shù)據(jù)稱為TCP報文段(TCP message segment),或者簡稱TCP段。前文提到,TCP協(xié)議為通信雙方維持一個連接,并且在內核中存儲相關數(shù)據(jù)。這部分數(shù)據(jù)中的TCP頭部信息和TCP內核緩沖區(qū)(發(fā)送緩沖區(qū)或接收緩沖區(qū))數(shù)據(jù)一起構成了TCP報文段,如下圖:

blob.png

當發(fā)送端應用程序使用send(或者write)函數(shù)向一個TCP連接寫入數(shù)據(jù)時,內核中的TCP模塊首先把這些數(shù)據(jù)復制到與該連接對應的TCP內核發(fā)送緩沖區(qū)中,然后TCP模塊調用IP模塊提供的服務,傳遞的參數(shù)包括TCP頭部信息和TCP發(fā)送緩沖區(qū)中的數(shù)據(jù),即TCP報文段。

經過UDP封裝后的數(shù)據(jù)稱為UDP數(shù)據(jù)報(UDP datagram)。UDP對應用程序數(shù)據(jù)的封裝與TCP類似。不同的是,UDP無須為應用層數(shù)據(jù)保存副本,因為它提供的服務是不可靠的。當一個UDP數(shù)據(jù)報被成功發(fā)送之后,UDP內核緩沖區(qū)中的該數(shù)據(jù)報就被丟棄了。如果應用程序檢測到該數(shù)據(jù)報未能被接收端正確接收,并打算重發(fā)這個數(shù)據(jù)報,則應用程序需要重新從用戶空間將該數(shù)據(jù)報拷貝到UDP內核發(fā)送緩沖區(qū)中。

經過IP封裝后的數(shù)據(jù)稱為IP數(shù)據(jù)報(IP datagram)。IP數(shù)據(jù)報也包括頭部信息和數(shù)據(jù)部分,其中數(shù)據(jù)部分就是一個TCP報文段、UDP數(shù)據(jù)報或者ICMP報文。我們將在第2章詳細討論IP數(shù)據(jù)報的頭部信息。

經過數(shù)據(jù)鏈路層封裝的數(shù)據(jù)稱為幀(frame)。傳輸媒介不同,幀的類型也不同。比如,以太網上傳輸?shù)氖且蕴W幀(ethernet frame),而令牌環(huán)網絡上傳輸?shù)膭t是令牌環(huán)幀(token ring frame)。以以太網幀為例,其封裝格式如下圖:

blob.png

以太網幀使用6字節(jié)的目的物理地址和6字節(jié)的源物理地址來表示通信的雙方。關于類型(type)字段,我們將在后面討論。4字節(jié)CRC字段對幀的其他部分提供循環(huán)冗余校驗。

幀的最大傳輸單元(Max Transmit Unit,MTU),即幀最多能攜帶多少上層協(xié)議數(shù)據(jù)(比如IP數(shù)據(jù)報),通常受到網絡類型的限制。圖1-6所示的以太網幀的MTU是1500字節(jié)。正因為如此,過長的IP數(shù)據(jù)報可能需要被分片(fragment)傳輸。

幀才是最終在物理網絡上傳送的字節(jié)序列。至此,封裝過程完成。



文章引用:http://www.xhjcyz.com/new/182.html

本站文章為深圳網站建設·源美網絡原創(chuàng)策劃,如有版權糾紛或者違規(guī)問題,請聯(lián)系我們刪除,謝謝!

上一篇: 查看Linux服務器的CPU詳細情況

下一篇: “互聯(lián)網+”為什么會成為國家戰(zhàn)略?

返回列表
最新案例
OUR ADVANTAGE WORKS

售后保障

承諾任何問題1小時內解決

數(shù)據(jù)備份

更安全、更高效、更穩(wěn)定

價格公道精準

項目經理精準報價不弄虛作假

合作無風險

重合同講信譽,無效全額退款