百度站長(zhǎng)平臺(tái)申請(qǐng)?zhí)峤绘溄雍蟬eo服務(wù)
?在tcp層將數(shù)據(jù)打包封裝向下傳遞后,網(wǎng)絡(luò)層將其整個(gè)看為一個(gè)數(shù)據(jù),然后對(duì)其數(shù)據(jù)加網(wǎng)絡(luò)報(bào)頭操作,在網(wǎng)絡(luò)層最具有代表的協(xié)議就是ip協(xié)議。在這里我們探究ipv4的報(bào)頭。
ip報(bào)頭
4位版本:指定ip的版本號(hào),對(duì)于ipv4來(lái)說(shuō)就是4。
4位首部長(zhǎng)度:和tcp報(bào)頭一樣,15個(gè)單位,每個(gè)單位代表4個(gè)字節(jié)。
8位服務(wù)類型:3位棄用,1位待用,還有4位分別標(biāo)識(shí):: 最小延時(shí), 最大吞吐量, 最高可靠性, 最小成本,僅能存在一位被設(shè)置,假設(shè)是打游戲那就要設(shè)置最小延遲,如果是文件傳輸就要最大吞吐量,如果是銀行轉(zhuǎn)賬就是最高可靠性。這是給路由器看的位。
16位報(bào)文長(zhǎng)度:顧名思義,就是報(bào)文的大小
16位標(biāo)識(shí)、3位標(biāo)識(shí)位、13位偏移我們等等再嘮。
8位生存時(shí)間:就是個(gè)計(jì)數(shù)器,防止報(bào)文長(zhǎng)時(shí)間占用網(wǎng)絡(luò)。
16位首部檢驗(yàn)和:防止數(shù)據(jù)丟失篡改等等。
32位源ip地址:就是發(fā)送方的ip。
32位目的ip地址:該報(bào)文要去的目的機(jī)器ip。
報(bào)文切片組裝
由于在網(wǎng)絡(luò)中流動(dòng)的報(bào)文是有大小限制的,一般而言,在ethernet默認(rèn)MTU值為1500字節(jié),我們就以1500字節(jié)討論這個(gè)切片問(wèn)題。
當(dāng)傳輸層tcp協(xié)議向下傳遞了一個(gè)2980字節(jié)的數(shù)據(jù)幀。
在網(wǎng)絡(luò)層中如果報(bào)文過(guò)大,必須將其做分片操作。
介紹報(bào)頭第二行設(shè)置
16位標(biāo)識(shí):每一個(gè)在網(wǎng)絡(luò)層組裝的報(bào)文都是不同的16位標(biāo)識(shí),類似于tcp層的32位序列號(hào),這個(gè)序列號(hào)是區(qū)分不同報(bào)文的序列號(hào),如果從網(wǎng)絡(luò)得到相同的16位標(biāo)識(shí)的報(bào)文,那么報(bào)文就是被切片了。
3位標(biāo)識(shí):1位待用,1位禁止切片的標(biāo)識(shí),如果某個(gè)報(bào)文該位被設(shè)置,但是又過(guò)大,那么就直接將其報(bào)文丟棄。1位更多分片標(biāo)志位,如果有報(bào)文該位被設(shè)置1,那么其報(bào)文之后一定還有報(bào)文在路上,如果被標(biāo)識(shí)為0,原可能未被分片,或者是分片的最后一片。
13位分片位置:就是該分片在原報(bào)文中的起始位置。
5個(gè)問(wèn)題:
- 分片好嗎?
- 如何識(shí)別ip報(bào)文的不同
- 如何識(shí)別分片
- 如何分片。
- 如何對(duì)獲得的分片組合
- 異常處理
1、分片并不是主流,分片增加了網(wǎng)絡(luò)負(fù)擔(dān),并且升高了丟包率。
2、依托ip報(bào)頭中的16位標(biāo)識(shí),區(qū)分報(bào)文,原報(bào)文不同的情況下,報(bào)文取得16位標(biāo)識(shí)是一定不同的
3、如果發(fā)現(xiàn)接收多個(gè)ip報(bào)文16標(biāo)識(shí)相同說(shuō)明報(bào)文被分片,當(dāng)然不同標(biāo)識(shí)也不是未被分片。如果發(fā)現(xiàn)3位標(biāo)識(shí)的“更多分片”被設(shè)置為1,那么就說(shuō)明被分片了(最后一個(gè)分片設(shè)置為0)。如果偏移設(shè)置不為0,說(shuō)明被分片了(第一個(gè)分片的分片偏移為1)。
4、分片過(guò)程:
分片后必須為其他報(bào)文增加新的ip報(bào)頭。每次切分后需要設(shè)置新舊報(bào)頭的3個(gè)標(biāo)識(shí):報(bào)文總大小,更多分片,13為分片偏移。
5、分片組合
6、異常處理,如果接收到多個(gè)分片報(bào)文,會(huì)留存分片報(bào)文到最大網(wǎng)絡(luò)傳輸時(shí)間,如果在時(shí)間后仍然分片報(bào)文為齊全,則將該全部16為標(biāo)識(shí)相同的分片報(bào)文全部丟棄。?