日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

MTU MSS(TCP) IP分片技術(shù)概述

 syden1981 2011-01-20

MTU MSS(TCP) IP分片技術(shù)概述

協(xié)議 2009-06-11 14:00:42 閱讀451 評(píng)論0   字號(hào): 訂閱

在應(yīng)用程序中,必須關(guān)心IP數(shù)據(jù)的長(zhǎng)度。如果它超過網(wǎng)絡(luò)的MTU,那么就要對(duì)IP數(shù)據(jù)報(bào)進(jìn)行分片。如果需要,源目的端之間的每個(gè)網(wǎng)絡(luò)都要進(jìn)行分片,并不只是發(fā)送端主機(jī)連接第一個(gè)網(wǎng)絡(luò)才這樣做。在此文中,將討論IP分片的一些原理及其在分片中所需要的幾個(gè)元素(此文只討論MTU最大傳輸單位和MSS最大數(shù)據(jù)分段),本文對(duì)以太網(wǎng)的例子作了初略的分解。

關(guān)鍵字:IP分片,MTU,MSS

引言

分片是分組交換的思想體現(xiàn),也是IP 協(xié)議解決的兩個(gè)主

要問題之一。在IP 協(xié)議中的分片算法主要解決異種網(wǎng)最大

傳輸單元(MTU) 的不同.但是分組在傳輸過程中不斷地分片和重組會(huì)帶來(lái)很大的工作量還會(huì)增加一些不安全的因素。

正文:

一、什么是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分片

通常要傳輸?shù)?span>IP報(bào)文的大小超過最大傳輸單位MTU(Maximum Transmission Unit)時(shí)就會(huì)產(chǎn)生IP分片情況。IP分片通常發(fā)生在網(wǎng)絡(luò)環(huán)境中。比如說,在以太網(wǎng)(Ethernet)環(huán)境中可傳輸最大IP報(bào)文大?。?span>MTU)為1500字節(jié)。而傳輸?shù)膱?bào)文大小要比1500字節(jié)大,這個(gè)時(shí)候就需要利用到分片技術(shù),經(jīng)分片后才能傳輸此報(bào)文。另外,使用UDP很容易導(dǎo)致IP分片,而很難強(qiáng)迫TCP發(fā)送一個(gè)需要進(jìn)行分片的報(bào)文。

三、IP分片原理及分析

分片和重新組裝的過程對(duì)傳輸層是透明的,其原因是當(dāng)IP數(shù)據(jù)報(bào)進(jìn)行分片之后,只有當(dāng)它到達(dá)下一站時(shí),才可進(jìn)行重新組裝,且它是由目的端的IP層來(lái)完成的。分片之后的數(shù)據(jù)報(bào)根據(jù)需要也可以再次進(jìn)行分片。

IP分片和完整IP報(bào)文差不多擁有相同的IP頭,ID域?qū)τ诿總€(gè)分片都是一致的,這樣才能在重新組裝的時(shí)候識(shí)別出來(lái)自同一個(gè)IP報(bào)文的分片。在IP頭里面,16位識(shí)別號(hào)唯一記錄了一個(gè)IP包的ID,具有同一個(gè)IDIP分片將會(huì)重新組裝;而13位片偏移則記錄了某IP片相對(duì)整個(gè)包的位置;而這兩個(gè)表中間的3位標(biāo)志則標(biāo)志著該分片后面是否還有新的分片。這三個(gè)標(biāo)志就組成了IP分片的所有信息,接受方就可以利用這些信息對(duì)IP數(shù)據(jù)進(jìn)行重新組織。

1、標(biāo)志字段的作用

標(biāo)志字段在分片數(shù)據(jù)報(bào)中起了很大作用,在數(shù)據(jù)報(bào)分片時(shí)把它的值復(fù)制到每片中。標(biāo)志字段的其中一個(gè)比特稱作“不分片”位,用其中一個(gè)比特來(lái)表示“更多的片”。除了最后一片外,其他每個(gè)組成數(shù)據(jù)報(bào)的片都要把該比特置1。片偏移字段指的是該片偏移原始數(shù)據(jù)報(bào)開始處的位置。另外,當(dāng)數(shù)據(jù)報(bào)被分片后,每個(gè)片的總長(zhǎng)度值要改為該片的長(zhǎng)度值。如果將標(biāo)志字段的比特置1,則IP將不對(duì)數(shù)據(jù)報(bào)進(jìn)行分片。相反把數(shù)據(jù)報(bào)丟棄并發(fā)送一個(gè)I C M P差錯(cuò)報(bào)文并通知源主機(jī)廢棄的原因。如果不是特殊需要,則不應(yīng)該置1;最右比特置1表示該報(bào)文不是最后一個(gè)IP分片。

    故意發(fā)送部分IP分片而不是全部,則會(huì)導(dǎo)致目標(biāo)主機(jī)總是等待分片消耗并占用系統(tǒng)資源。某些分片風(fēng)暴攻擊就是這種原理。

這里以以太網(wǎng)為例,由于以太網(wǎng)傳輸電氣方面的限制,每個(gè)以太網(wǎng)幀都有最小的大小64bytes最大不能超過1518bytes, 拋去以太網(wǎng)幀的幀頭(DMAC目的MAC地址48bit=6Bytes+SMACMAC地址48bit=6Bytes+Type2bytes)14Bytes和幀尾CRC校驗(yàn)部分4Bytes,那么剩下承載上層協(xié)議的地方也就是Data域最大就只能有1500Bytes,這就是前面所說的MTU的值。這個(gè)也是網(wǎng)絡(luò)層協(xié)議非常關(guān)心的地方,因?yàn)榫W(wǎng)絡(luò)層的IP協(xié)議會(huì)根據(jù)這個(gè)值來(lái)決定是否把上層傳達(dá)下來(lái)的數(shù)據(jù)進(jìn)行分片。就好比一個(gè)盒子沒法裝下一大塊面包,我們需要把面包切成片,裝在多個(gè)盒子里面一樣的道理。

2、MTU原理
  當(dāng)兩臺(tái)遠(yuǎn)程PC互聯(lián)的時(shí)候,它們的數(shù)據(jù)需要穿過很多的路由器和各種各樣的網(wǎng)絡(luò)媒介才能到達(dá)對(duì)端,網(wǎng)絡(luò)中不同媒介的MTU各不相同,就好比一長(zhǎng)段的水管,由不同粗細(xì)的水管組成(MTU不同 )通過這段水管最大水量就要由中間最細(xì)的水管決定。
  對(duì)于網(wǎng)絡(luò)層的上層協(xié)議而言(這里以TCP/IP協(xié)議族為例)它們對(duì)水管粗細(xì)不在意它們認(rèn)為這個(gè)是網(wǎng)絡(luò)層的事情。網(wǎng)絡(luò)層IP協(xié)議會(huì)檢查每個(gè)從上層協(xié)議下來(lái)的數(shù)據(jù)包的大小,并根據(jù)本機(jī)MTU的大小決定是否作分片處理。分片最大的壞處就是降低了傳輸性能,本來(lái)一次可以搞定的事情,分成多次搞定,所以在網(wǎng)絡(luò)層更高一層(就是傳輸層)的實(shí)現(xiàn)中往往會(huì)對(duì)此加以注意!有些高層因?yàn)槟承┰蚓蜁?huì)要求我這個(gè)面包不能切片,我要完整地面包,所以會(huì)在IP數(shù)據(jù)包包頭里面加上一個(gè)標(biāo)簽:DF(Donot Fragment)。這樣當(dāng)這個(gè)IP數(shù)據(jù)包在一大段網(wǎng)絡(luò)(水管里面)傳輸?shù)臅r(shí)候,如果遇到MTU小于IP數(shù)據(jù)包的情況,轉(zhuǎn)發(fā)設(shè)備就會(huì)根據(jù)要求丟棄這個(gè)數(shù)據(jù)包。然后返回一個(gè)錯(cuò)誤信息給發(fā)送者。這樣往往會(huì)造成某些通訊上的問題,不過幸運(yùn)的是大部分網(wǎng)絡(luò)鏈路MTU都是1500或者大于1500。

  對(duì)于UDP協(xié)議而言,這個(gè)協(xié)議本身是無(wú)連接的協(xié)議,對(duì)數(shù)據(jù)包的到達(dá)順序以及是否正確到達(dá)不甚關(guān)心,所以一般UDP應(yīng)用對(duì)分片沒有特殊要求。

  對(duì)于TCP協(xié)議而言就不一樣了,這個(gè)協(xié)議是面向連接的協(xié)議,對(duì)于TCP協(xié)議而言它非常在意數(shù)據(jù)包的到達(dá)順序以及是否傳輸中有錯(cuò)誤發(fā)生。所以有些TCP應(yīng)用對(duì)分片有要求---不能分片(DF)。

3MSS的原理

  MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段。為了達(dá)到最佳的傳輸效能TCP協(xié)議在建立連接的時(shí)候通常要協(xié)商雙方的MSS值,這個(gè)值TCP協(xié)議在實(shí)現(xiàn)的時(shí)候往往用MTU值代替(需要減去IP數(shù)據(jù)包包頭的大小20BytesTCP數(shù)據(jù)段的包頭20Bytes)所以往往MSS1460。通訊雙方會(huì)根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。

    當(dāng)IP數(shù)據(jù)報(bào)被分片后,每一片都成為一個(gè)分組,具有自己的IP首部,并在選擇路由時(shí)與其他分組獨(dú)立。這樣,當(dāng)數(shù)據(jù)報(bào)的這些片到達(dá)目的端時(shí)有可能會(huì)失序,但是在IP首部中有足夠的信息讓接收端能正確組裝這些數(shù)據(jù)報(bào)片。

    盡管IP分片過程看起來(lái)是透明的,但有一點(diǎn)讓人不想使用它:即使只丟失一片數(shù)據(jù)也要重傳整個(gè)數(shù)據(jù)報(bào)。因?yàn)?span>IP層本身沒有超時(shí)重傳的機(jī)制——由更高層來(lái)負(fù)責(zé)超時(shí)和重傳(T C P有超時(shí)和重傳機(jī)制,但UDP沒有。一些UDP應(yīng)用程序本身也執(zhí)行超時(shí)和重傳)。當(dāng)來(lái)自T C P報(bào)文段的某一片丟失后,T C P在超時(shí)后會(huì)重發(fā)整個(gè)T C P報(bào)文段,該報(bào)文段對(duì)應(yīng)于一份IP數(shù)據(jù)報(bào)。沒有辦法只重傳數(shù)據(jù)報(bào)中的一個(gè)數(shù)據(jù)報(bào)片。事實(shí)上,如果對(duì)數(shù)據(jù)報(bào)分片的是中間路由器,而不是起始端系統(tǒng),那么起始端系統(tǒng)就無(wú)法知道數(shù)據(jù)報(bào)是如何被分片的。就這個(gè)原因,經(jīng)常要避免分片。

五、IP分片算法的原理

    分片重組是IP層一個(gè)最重要的工作,其處理的主要思想:當(dāng)數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)A進(jìn)入另一個(gè)網(wǎng)絡(luò)B時(shí),若原網(wǎng)絡(luò)的數(shù)據(jù)包大于另一個(gè)網(wǎng)絡(luò)的最大數(shù)據(jù)包的長(zhǎng)度,必須進(jìn)行分片。因而在IP數(shù)據(jù)包的報(bào)頭有若干標(biāo)識(shí)域注明分片包的共同標(biāo)識(shí)號(hào)、分片的偏移量、是否最后一片及是否允許分片。傳輸途中的網(wǎng)關(guān)利用這些標(biāo)識(shí)域進(jìn)行分片,目有主機(jī)把收到的分片進(jìn)行重組以恢重?cái)?shù)據(jù)。因此,分片包在經(jīng)過網(wǎng)絡(luò)監(jiān)測(cè)設(shè)備、安全設(shè)備、系統(tǒng)管理設(shè)備時(shí),為了獲取信息、處理數(shù)據(jù),都必須完成數(shù)據(jù)包的分片或重組。

Identification

R

DF

MF

Fragment Offset

                               

R:保留未用;DFDont Fragment,“不分片”位,如果將這一比特置1IP 層將不對(duì)數(shù)據(jù)報(bào)進(jìn)行分片;MFMore Fragment,“更多的片”,除了最后一片外,其它每個(gè)組成數(shù)據(jù)報(bào)的片都要把比特置1;Fragment Offset:該片偏移原始數(shù)據(jù)包開始處的位置。偏移的字節(jié)數(shù)是該值乘以8。

六、總結(jié)

此論文闡述了什么是IP分片,并舉例說明了IP的分片現(xiàn)像及其特點(diǎn)。簡(jiǎn)單論述了IP分片的原理。并加以重點(diǎn)分析了MTU,闡述了MTUIP分片技術(shù)中所起的作用,簡(jiǎn)略討論了ICMP不可達(dá)差錯(cuò),利用UDP觀察路徑MTU發(fā)現(xiàn)過程。簡(jiǎn)述了MSS的作用以及其值是怎樣得來(lái)的。本文只是對(duì)IP分片作了一個(gè)小小的論述。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多