目錄
一、什么是IP分片
二,為什么要進(jìn)行IP分片
三、IP分片原理及分析
標(biāo)志字段的作用
?下面是標(biāo)志位在IP首部中的格式以及各個(gè)標(biāo)志的意義:
?TTL
?Protocol 協(xié)議號
分片包文示例:
分片偏移量計(jì)算方法:
?第一個(gè)分片:
?第二個(gè)分片:
?第三個(gè)分片:
一、什么是IP分片
IP分片是網(wǎng)絡(luò)上傳輸IP報(bào)文的一種技術(shù)手段。IP協(xié)議在傳輸數(shù)據(jù)包時(shí),將數(shù)據(jù)報(bào)文分為若千分片進(jìn)行傳輸,并在目標(biāo)系統(tǒng)中進(jìn)行重組,這一過程稱為分片(fragmentation).
二,為什么要進(jìn)行IP分片
(1500) 6+6+2+4以太網(wǎng)技術(shù)支持幀大小最大為1518字節(jié)。通常以太網(wǎng)接口默認(rèn)的鏈路MTU通常被設(shè)置1500字節(jié)。1500---》1482
每一種物理網(wǎng)絡(luò)都會規(guī)定鏈路層數(shù)據(jù)幀的最大長度,稱為蟭路層MTU(Maximum Transmission Unit) IP協(xié)議在傳輸數(shù)據(jù)包時(shí),若IP數(shù)據(jù)報(bào)加上數(shù)據(jù)幀頭部后長度大于鏈路MTU,則將數(shù)據(jù)報(bào)文分為若干分片進(jìn)行傳輸,并在目標(biāo)系統(tǒng)中進(jìn)行重組。比如說,在以太網(wǎng)環(huán)境中可傳輸最大IP報(bào)文大小(MTU)為1500字節(jié)。如果要傳輸?shù)臄?shù)據(jù)幀大小超過1500字節(jié),即IP數(shù)據(jù)報(bào)負(fù)載長度大于1472(1500-20(IP) -(UDP)=1472,普通數(shù)據(jù)報(bào))字節(jié),則需要分片之后進(jìn)行傳輸。
三、IP分片原理及分析
分片和重新組裝的過程對傳輸層是透明的,其原因是當(dāng)IP數(shù)據(jù)報(bào)進(jìn)行分片之后,只有當(dāng)它到達(dá)目的站時(shí),才可進(jìn)行重新組裝,且它是由目的端的IP層來完成的。分片之后的數(shù)據(jù)報(bào)根據(jù)需要也可以再次進(jìn)行分片。
IP分片和完整IP報(bào)文差不多擁有相同的IP頭,ID域?qū)τ诿總€(gè)分片都是一致的,這樣才能在重新組裝的時(shí)候識別出來自同一個(gè)IP報(bào)文的分片。在IP頭里面,16位識別號唯一記錄了一個(gè)IP包的ID,具有同一個(gè)ID的IP分片將會重新組裝;而13位片偏移則記錄了某IP片相對整個(gè)包的位置;而這兩個(gè)表中間的3位標(biāo)志則標(biāo)志著該分片后面是否還有新的分片。這三個(gè)標(biāo)志就組成了IP分片的所有信息(將在后面介紹),接受方就可以利用這些信息對IP數(shù)據(jù)進(jìn)行重新組織。
標(biāo)志字段的作用
標(biāo)志字段在分片數(shù)據(jù)報(bào)中起了很大作用,在數(shù)據(jù)報(bào)分片時(shí)把它的值復(fù)制到每片中的標(biāo)志字段的其中一個(gè)比特稱作"不分片"位,用其中一個(gè)比特來表示更多的片”。除了最后一片外,其他每個(gè)組成數(shù)據(jù)報(bào)的片都要把該比特置1。片偏移字段指的是該片偏移原始數(shù)據(jù)報(bào)開始處的位置。
另外,當(dāng)數(shù)據(jù)報(bào)被分片后,每個(gè)片的總長度值要改為該片的長度值。如果將標(biāo)志字段的比特置1,則IP將不對數(shù)據(jù)報(bào)進(jìn)行分片,若在某個(gè)中間路由器上需要對其分片,則僅僅把數(shù)據(jù)報(bào)丟棄并發(fā)送一個(gè)ICMP不可達(dá)差錯(cuò)報(bào)文給源主機(jī)。
如果不是特殊需要,則不應(yīng)該置1;最右比特置1表示該報(bào)文不是最后一個(gè)IP分片。故意發(fā)送部分IP分片而不是全部,則會導(dǎo)致目標(biāo)主機(jī)總是等待分片消耗并占用系統(tǒng)資源。某些分片風(fēng)暴攻擊就是這種原理。這里以以太網(wǎng)為例,由于以太網(wǎng)傳輸電氣方面的限制,每個(gè)以太網(wǎng)幀都有最小的大小64bytes最大不能超過1518bytes,拋去以太網(wǎng)幀的幀頭(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和幀尾CRC校驗(yàn)部分4Bytes,那么剩下承載上層協(xié)議的地方也就是Data域最大就只能有1500Bytes,這就是前面所說的MTU的值。這個(gè)也是網(wǎng)絡(luò)層協(xié)議非常關(guān)心的地方,因?yàn)榫W(wǎng)絡(luò)層的IP協(xié)議會根據(jù)這個(gè)值來決定是否把上層傳達(dá)下來的數(shù)據(jù)進(jìn)行分片。就好比一個(gè)盒子沒法裝下一大塊面包,我們需要把面包切成片,裝在多個(gè)盒子里是一個(gè)道理。
?下面是標(biāo)志位在IP首部中的格式以及各個(gè)標(biāo)志的意義:
ldentification? ? 標(biāo)識號
flag:? ?R DF MF
R? ? ? 保留,沒有定義用途
DF? ? (不分片位)??1代表不允許對此數(shù)據(jù)包做分片,0代表可以分片
MF? ?1?我是分片,但我不是最后一個(gè)分片,0我是分片,并且是最后的分片(M=more 更多的意思)
Fragment Offset? ? (分偏移量)
R:? ? ?保留未用;DF: Don't Fragment,"不分片"位,如果將這一比特置1,IP層將不對數(shù)據(jù)報(bào)進(jìn)行分片;MF: More
Fragment,"更多的片”,除了最后一片外,其它每個(gè)組成數(shù)據(jù)報(bào)的片都要把比特置1;
Fragment Offset:該片偏移原始數(shù)據(jù)包開始處的位置。偏移的字節(jié)數(shù)是該值乘以8。
?TTL
TTL :?防止報(bào)文在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)的環(huán)路,數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)次數(shù)。每次轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文被下個(gè)設(shè)備接收時(shí),TTL值減一。當(dāng)下一個(gè)接收設(shè)備發(fā)現(xiàn)TTL值等于0時(shí),就不會再把這個(gè)數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā),而是丟棄這個(gè)數(shù)據(jù)報(bào)文。
TTL取值范圍:0~255?(8個(gè)bit)
?Protocol 協(xié)議號
標(biāo)明數(shù)據(jù)報(bào)文使用的什么傳輸層協(xié)議
Protocol: 8 bit, 協(xié)議:下一層協(xié)議。指出此數(shù)據(jù)包攜帶的數(shù)據(jù)使用何種協(xié)議,以便目的主機(jī)的IP層將數(shù)據(jù)部分上交給哪個(gè)進(jìn)程處理?!こR娭?
-1:? ? ICMP? ,Internet Control Message;
-2:? ? IGMP? ,Internet Group Management;
6:? ? ?TCP? ?.Transmission Control Protocol;
17:? ? UDP? ,User Datagram Protocol.?
Protocol為-1即是ICMP協(xié)議,為17就是UDP協(xié)議:
Header Checksum:? ? 16 bit,? ?首部檢驗(yàn)和。
Source IP Address:? ? ? ? ? ??32 bit,源IP地址。
Destination IP Address:? ? ? 32 bit,目的IP地址。
Options:? ? 可變,選項(xiàng)字段。
Paddina:? ? 可變填充字段,全填0
分片包文示例:
只有第一個(gè)分片才會攜帶傳輸層字段(TCP/UDP),非第一個(gè)字段不攜帶傳輸層字段。
分片偏移量計(jì)算方法:
offset:第一個(gè)分片的(傳輸層大小+PDU)/8=?第二個(gè)分片的偏移量
? ? ? ? ? ? ?第一個(gè)分片的((傳輸層大小+PDU)+第二個(gè)分片的PDU)?/8 =?第三個(gè)分片的偏移量。
后續(xù)分片的偏移量以此類推
?第一個(gè)分片:
每個(gè)分片的長度一定是8字節(jié)(64位)的整數(shù)倍
?第二個(gè)分片:
文章來源:http://www.zghlxwxcb.cn/news/detail-782904.html
?第三個(gè)分片:
文章來源地址http://www.zghlxwxcb.cn/news/detail-782904.html
到了這里,關(guān)于TCP/IP協(xié)議中分包與重組原理介紹、分片偏移量的計(jì)算方法、IPv4報(bào)文格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!