1,TCP協(xié)議和UDP協(xié)議的區(qū)別 2,,TCP協(xié)議傳輸速度慢,,UDP協(xié)議傳輸速度快 3,TCP協(xié)議保證數(shù)據(jù)順序,,UDP協(xié)議不保證 4,,TCP協(xié)議保證數(shù)據(jù)正確性,UDP協(xié)議可能丟包 5,,TCP協(xié)議對(duì)系統(tǒng)資源要求多,,UDP協(xié)議要求少 2,I P分片: 把一份I P數(shù)據(jù)報(bào)分片以后,,只有到達(dá)目的地才進(jìn)行重新組裝(這里的重新組裝與其他網(wǎng)絡(luò)協(xié)議不同,,它們要求在下一站就進(jìn)行進(jìn)行重新組裝,而不是在最終的目的地),。重 新組裝由目的端的I P層來完成,,其目的是使分片和重新組裝過程對(duì)運(yùn)輸層( T C P和U D P)是透明的,除了某些可能的越級(jí)操作外,。已經(jīng)分片過的數(shù)據(jù)報(bào)有可能會(huì)再次進(jìn)行分片(可能不止一次),。I P首部中包含的數(shù)據(jù)為分片和重新組裝提供了足夠的信息 3,數(shù)據(jù)包的封裝 4,TCP段格式
中間的標(biāo)志位就是用于協(xié)議的一些機(jī)制的實(shí)現(xiàn)的比特位大家可以看到有6比特,它們依次如下:
源端口和目的端口:各為16比特,用于表示應(yīng)用層的連接,。源端口表示產(chǎn)生數(shù)據(jù)包的應(yīng)用層進(jìn)程,,而目的端口則表示數(shù)據(jù)包所要到達(dá)的目的進(jìn)程。 序列號(hào):為32比特,,表示數(shù)據(jù)流中的字節(jié)數(shù),。序列號(hào)為首字節(jié)在整個(gè)數(shù)據(jù)流中的位置。初始序列號(hào)隨機(jī)產(chǎn)生,,并在連接建立階段予以同步,。 確認(rèn)號(hào):表示序號(hào)為確認(rèn)號(hào)減去1的數(shù)據(jù)包及其以前的所有數(shù)據(jù)包已經(jīng)正確接收,也就是說他相當(dāng)于下一個(gè)準(zhǔn)備接收的字節(jié)的序號(hào),。 頭部信息:4比特,用于指示數(shù)據(jù)起始位置,。由于TCP包頭中可選項(xiàng)的長(zhǎng)度可變,,因此整個(gè)包頭的長(zhǎng)度不固定。如果沒有附加字段,,則TCP數(shù)據(jù)包基本長(zhǎng)度為20字節(jié),。 窗口:16位,表示源端主機(jī)在請(qǐng)求接收端等待確認(rèn)之前需要接收的字節(jié)數(shù),。它用于流量控制,,窗口大小根據(jù)網(wǎng)絡(luò)擁塞情況和資源可用性進(jìn)行增減。 校驗(yàn)位:16位,。用于檢查TCP數(shù)據(jù)包頭和數(shù)據(jù)的一致性,。 緊急指針:16位。當(dāng)URG碼有效時(shí)只向緊急數(shù)據(jù)字節(jié),。 可選項(xiàng):存在時(shí)表示TCP包頭后還有另外的4字節(jié)數(shù)據(jù),。TCP常用的選項(xiàng)為最大數(shù)據(jù)包(并非整個(gè) TCP報(bào)文)MSS,。每一個(gè)TCP段都包含一個(gè)固定的20字節(jié)的段頭。TCP段頭由20字節(jié)固定頭和一些可選項(xiàng)組成,。實(shí)際數(shù)據(jù)部分最多可以有 65495(65535-20-20=65495)字節(jié),。
IPv4首部一般是20字節(jié)長(zhǎng),。在以太網(wǎng)幀中,,IPv4包首部緊跟著以太網(wǎng)幀首部,同時(shí)以太網(wǎng)幀首部中的協(xié)議類型值設(shè)置為080016,。 IPv4提供不同,,大部分是很少用的選項(xiàng),使得IPv4包首部最長(zhǎng)可擴(kuò)展到60字節(jié)(總是4個(gè)字節(jié)4個(gè)字節(jié)的擴(kuò)展)
IP包頭字段說明版本:4位,,指定IP協(xié)議的版本號(hào),。 包頭長(zhǎng)度(IHL):4位,IP協(xié)議包頭的長(zhǎng)度,,指明IPv4協(xié)議包頭長(zhǎng)度的字節(jié)數(shù)包含多少個(gè)32位,。由于IPv4的包頭可能包含可變數(shù)量的可選 項(xiàng),所以這個(gè)字段可以用來確定IPv4數(shù)據(jù)報(bào)中數(shù)據(jù)部分的偏移位置,。IPv4包頭的最小長(zhǎng)度是20個(gè)字節(jié),,因此IHL這個(gè)字段的最小值用十進(jìn)制表示就是5 (5x4 = 20字節(jié))。就是說,,它表示的是包頭的總字節(jié)數(shù)是4字節(jié)的倍數(shù),。 服務(wù)類型:定義IP協(xié)議包的處理方法,它包含如下子字段
長(zhǎng)度:IP包的總長(zhǎng) 認(rèn)證: 標(biāo)志:是一個(gè)3位的控制字段,包含:
TTL:表示數(shù)據(jù)包在網(wǎng)絡(luò)上生存多久,,每通過一個(gè)路由器該值減一,為0時(shí)將被路由器丟棄,。TTL<64 協(xié)議:8位,這個(gè)字段定義了IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分使用的協(xié)議類型,。常用的協(xié)議及其十進(jìn)制數(shù)值包括ICMP(1),、TCP(6)、UDP(17),。 校驗(yàn)和:16位,,是IPv4數(shù)據(jù)報(bào)包頭的校驗(yàn)和。 源IP地址: 目的IP地址: 7,幀結(jié)構(gòu): 在TCP/IP的頭域部分,,就能知道發(fā)送的是一個(gè)數(shù)據(jù)報(bào)文,,還是一個(gè)確認(rèn)報(bào)文 【經(jīng)驗(yàn)之談】由于該字段長(zhǎng)16比特,所以IP數(shù)據(jù)報(bào)最長(zhǎng)可達(dá)65535字節(jié),。盡管可以傳送一個(gè)長(zhǎng)達(dá)65535字節(jié)的IP數(shù)據(jù)報(bào),,但是大多數(shù)的鏈路層都會(huì)對(duì)它進(jìn)行分段。而且,,主機(jī)也要求不能接收超過576字節(jié)的數(shù)據(jù)報(bào),。由于TCP把用戶數(shù)據(jù)分成若干段,因此一般來說這個(gè)限制不會(huì)影響TCP,。UDP的應(yīng)用(如RIP,、TFTP,、BOOTP,、DNS、SNMP等),,都限制用戶數(shù)據(jù)報(bào)長(zhǎng)度為512字節(jié),,小于576字節(jié)。但是,,事實(shí)上現(xiàn)在大多數(shù)的實(shí)現(xiàn)允許超過8192字節(jié)的IP數(shù)據(jù)報(bào),。
總長(zhǎng)度字段是IP首部中必要的內(nèi)容,,因?yàn)橐恍?shù)據(jù)鏈路(如以太網(wǎng))需要填充一些數(shù)據(jù)以達(dá)到最小長(zhǎng)度。盡管以太網(wǎng)的最小幀長(zhǎng)為46個(gè)字節(jié)(將在本章后面介紹),,但是IP數(shù)據(jù)可能會(huì)更短,。如果沒有總長(zhǎng)度字段,那么IP層就不知道46字節(jié)中有多少是IP數(shù)據(jù)報(bào)的內(nèi)容,。
【經(jīng)驗(yàn)之談】首部檢驗(yàn)和字段是根據(jù)IP首部計(jì)算的檢驗(yàn)和碼,,不對(duì)首部后面的數(shù)據(jù)進(jìn)行計(jì)算。ICMP,、IGMP,、UDP和TCP協(xié)議在它們各自的首部中均含有同時(shí)覆蓋首部和數(shù)據(jù)檢驗(yàn)和碼。
為了計(jì)算一份數(shù)據(jù)報(bào)的IP檢驗(yàn)和,,首先把檢驗(yàn)和字段置為0,。然后,對(duì)首部中每個(gè)16位進(jìn)行二進(jìn)制反碼求和(整個(gè)首部看成是由一串16位的字組成),,結(jié)果存在檢驗(yàn)和字段中,。當(dāng)接收端收到一份IP數(shù)據(jù)報(bào)后,同樣對(duì)首部中每個(gè)16 位進(jìn)行二進(jìn)制反碼的求和,。由于接收方在計(jì)算過程中包含了發(fā)送方存在首部中的檢驗(yàn)和,,因此,如果首部在傳輸過程中沒有發(fā)生任何差錯(cuò),,那么接收方計(jì)算的結(jié)果應(yīng)該為全1,。如果結(jié)果不是全1(即檢驗(yàn)和錯(cuò)誤),那么IP就丟棄收到的數(shù)據(jù)報(bào),。但是不生成差錯(cuò)消息,,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報(bào)并進(jìn)行重傳。
ICMP,、IGMP,、UDP和TCP都采用相同的檢驗(yàn)和算法,盡管TCP和UDP除了本身的首部和數(shù)據(jù)外,,在IP首部中還包含不同的字段,。由于路由器經(jīng)常只修改TTL字段(減1),因此當(dāng)路由器轉(zhuǎn)發(fā)一份消息時(shí)可以增加它的檢驗(yàn)和,,而不需要對(duì)IP整個(gè)首部進(jìn)行重新計(jì)算,。
|
|