IP數(shù)據(jù)包長(zhǎng)度問(wèn)題_第1頁(yè)
IP數(shù)據(jù)包長(zhǎng)度問(wèn)題_第2頁(yè)
IP數(shù)據(jù)包長(zhǎng)度問(wèn)題_第3頁(yè)
IP數(shù)據(jù)包長(zhǎng)度問(wèn)題_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IP分類:Linux總結(jié)2011-11-1912:4754人閱讀評(píng)論(0)收藏舉報(bào)首先要看協(xié)議,涉及到四層:鏈路層,網(wǎng)絡(luò)層,傳輸層,應(yīng)用層。其中以太網(wǎng)()的數(shù)據(jù)幀在鏈路層包在網(wǎng)絡(luò)層或包在傳輸層或中的數(shù)據(jù)(在應(yīng)用層它們的關(guān)系是數(shù)據(jù)幀包或包在應(yīng)用程序中我們用到的我們從下到上分析一下:在應(yīng)用程序中我們用到的我們從下到上分析一下:的長(zhǎng)度最大是多少,直接取決于底層的限制。0018),0不0包括幀頭和幀尾),0018),0不0包括幀頭和幀尾),在網(wǎng)絡(luò)層,因?yàn)樵趥鬏攲樱瑢?duì)于所以,在應(yīng)用層,你的,包的首部要占用包的首部要占用最大長(zhǎng)度為0字節(jié),所以這的字節(jié),所以這的7(當(dāng)我們的為-=為-=包,中的數(shù)據(jù)多于時(shí),發(fā)

2、送方的層需要分片進(jìn)行傳輸,而在接收方層則需要進(jìn)行數(shù).在鏈路層,由以太網(wǎng)的物理特性決定了數(shù)據(jù)幀的長(zhǎng)度為(461)8(其中的18是數(shù)據(jù)幀的頭和尾,也就是說(shuō)數(shù)據(jù)幀的內(nèi)容最大為據(jù)報(bào)重組,由于是不可靠的傳輸協(xié)議,如果分片丟失導(dǎo)致重組失敗,將導(dǎo)致數(shù)據(jù)包被丟棄)。從上面的分析來(lái)看,在普通的局域網(wǎng)環(huán)境下,的數(shù)據(jù)最大為字節(jié)最好(避免分片重組)。但在網(wǎng)絡(luò)編程中,中的路由器可能有設(shè)置成不同的值(小于默認(rèn)值),TOC o 1-5 h z上的標(biāo)準(zhǔn)值為,所以的編程時(shí)數(shù)據(jù)長(zhǎng)度最好在=字節(jié)以內(nèi)。對(duì)我們的編程很重要,那如何查看路由的值呢?對(duì)于如:如果提示:則表明小于,不斷改小值,可以最終測(cè)算出的值;對(duì)于如:如果提示則表明小于,

3、可以再測(cè)以推算的T,因?yàn)樵诎^中用個(gè)字節(jié)描述報(bào)文長(zhǎng)度,因?yàn)樵诎^中用個(gè)字節(jié)描述報(bào)文長(zhǎng)度,個(gè)字節(jié)所能表達(dá)的最大數(shù)字就是由于協(xié)議提供為上層協(xié)議分割和重組報(bào)文的功能,因此傳輸層協(xié)議的數(shù)據(jù)包長(zhǎng)度原則上來(lái)說(shuō)沒(méi)有限制。實(shí)際上限制還是有的,因?yàn)榘臉?biāo)識(shí)字段終究不可能無(wú)限長(zhǎng),按照,好像上限應(yīng)該是K依靠這種機(jī)制,包頭中就沒(méi)有“包長(zhǎng)度”字段,而完全依靠層去處理分幀。這就是為什么常常被稱作一種“流協(xié)議”的原因,開(kāi)發(fā)者在使用服務(wù)的時(shí)候,不必去關(guān)心數(shù)據(jù)包的大小,只需講看作一條數(shù)據(jù)流的入口,往里面放數(shù)據(jù)就是了,協(xié)議本身會(huì)進(jìn)行擁塞流量控制。則與不同,包頭內(nèi)有總長(zhǎng)度字段,同樣為兩個(gè)字節(jié),因此數(shù)據(jù)包的總長(zhǎng)度被限制為5這樣恰好可

4、以放進(jìn)一個(gè)包內(nèi),使得協(xié)議棧的實(shí)現(xiàn)非常簡(jiǎn)單和高效。再減去頭本身所占據(jù)的個(gè)字節(jié),服務(wù)中的最大有效載荷長(zhǎng)度僅為5這個(gè)值也就是你在調(diào)用時(shí)指定所得到返回值,任何使用屬性的,一次的數(shù)據(jù)都不能超過(guò)這個(gè)值,否則必然得到一個(gè)錯(cuò)誤。那么,包提交給下層協(xié)議時(shí)將會(huì)得到怎樣的處理呢?這就取決于數(shù)據(jù)鏈路層協(xié)議了,一般的數(shù)據(jù)鏈路層協(xié)議都會(huì)負(fù)責(zé)將包分割成更小的幀,然后在目的端重組它。在上,e攵據(jù)鏈路幀的大小如以上幾位大俠所言。而如果是,則包將被切分成一個(gè)一個(gè)的,大小為字節(jié)。*提供的是一種面向連接的,可靠的字節(jié)流服務(wù),提供可靠性的一種重要的方式就是。通過(guò),應(yīng)用數(shù)據(jù)被分割成認(rèn)為最適合發(fā)送的數(shù)據(jù)塊,由傳遞給的信息單位稱為報(bào)文段或段

5、。代表一個(gè)的結(jié)構(gòu)體中有多個(gè)成員用于確定應(yīng)用數(shù)據(jù)被分割成最。代表一個(gè)的結(jié)構(gòu)體中有多個(gè)成員用于確定應(yīng)用數(shù)據(jù)被分割成最大為多大的數(shù)據(jù)塊較為合適(最大報(bào)文段長(zhǎng)度我們不難聯(lián)想到,跟最大報(bào)文段長(zhǎng)度最為相關(guān)的一個(gè)參數(shù)是網(wǎng)絡(luò)設(shè)備接口的,以太網(wǎng)的是基本首部長(zhǎng)度為首部是,所以的值可達(dá)不包括協(xié)議首部,只包含應(yīng)用數(shù)據(jù)。基本首部長(zhǎng)度為首部是,所以的值可達(dá)不包括協(xié)議首部,只包含應(yīng)用數(shù)據(jù)。前面的三次握手協(xié)議中我們看到,通訊的雙方都通過(guò)選項(xiàng)通告了自己期望接收的值,該值直接來(lái)源于的成員k而這個(gè)值直接取自于網(wǎng)絡(luò)設(shè)備接口的值直接來(lái)源于的成員k而這個(gè)值直接取自于網(wǎng)絡(luò)設(shè)備接口的減去首部和首部的長(zhǎng)度。在本地以太網(wǎng)中可達(dá)如果首部都不含選項(xiàng)

6、的話,而成員是一個(gè)結(jié)構(gòu)體首部的長(zhǎng)度。在本地以太網(wǎng)中可達(dá)如果首部都不含選項(xiàng)的話,而成員是一個(gè)結(jié)構(gòu)體,它記錄的是來(lái)自對(duì)端的選項(xiàng)通告,其成員表示的上限值,其來(lái)源就是對(duì)端的通告,而是用戶設(shè)置的其優(yōu)先級(jí)最高,如果有,它記錄的是來(lái)自對(duì)端的選項(xiàng)通告,其成員表示的上限值,其來(lái)源就是對(duì)端的通告,而是用戶設(shè)置的其優(yōu)先級(jí)最高,如果有_,則使而用而忽略其它。從上面我們可以看到,是可以通過(guò)段進(jìn)行協(xié)商的選項(xiàng)只能出現(xiàn)在報(bào)文段中,但它并忽略其它。從上面我們可以看到,是可以通過(guò)段進(jìn)行協(xié)商的選項(xiàng)只能出現(xiàn)在報(bào)文段中,但它并不是任何條件下都可以協(xié)商的,如果一方不接受來(lái)自另一方的值,并且沒(méi)有就定為不是任何條件下都可以協(xié)商的,如果一方不

7、接受來(lái)自另一方的值,并且沒(méi)有就定為默認(rèn)值字節(jié)(加上首部,允許字節(jié)的數(shù)據(jù)報(bào)。實(shí)際上,的初始值就定為,等收到來(lái)自對(duì)端的通告后,才進(jìn)行修改。而結(jié)構(gòu)體的成員TOC o 1-5 h z用于緩存上次的有效的,其初始值也被定為。函數(shù)為一個(gè)中的相關(guān)的成員進(jìn)行數(shù)據(jù)同步,其基本的一個(gè)算法是:、當(dāng)前的正常情況下應(yīng)該為首部首部不包括選項(xiàng))、,2truc中含有對(duì)端通告的能夠接受的值,如果該值小于第一步計(jì)算所得到的,則以該值為準(zhǔn)。、首部如果帶有選項(xiàng),則中要減去選項(xiàng)長(zhǎng)度。TOC o 1-5 h z、如果已經(jīng)小于了,則令其等于8、減去首部中選項(xiàng)的長(zhǎng)度。、如果當(dāng)前已經(jīng)大于滑動(dòng)窗口大小的,則取滑動(dòng)窗口大小的作為值但不能小于。、成

8、員用于緩存下剛剛計(jì)算所得的。所以,說(shuō)本地以太網(wǎng)中為的說(shuō)法并不正確,它還會(huì)動(dòng)態(tài)變化,如果首部和首部中出現(xiàn)選項(xiàng),則要相應(yīng)的減小,一般首部中會(huì)有字節(jié)的時(shí)間戳選項(xiàng)外加兩字節(jié)的填充選項(xiàng),這時(shí)的就等于4的主要作用是限制另一端主機(jī)發(fā)送的數(shù)據(jù)的長(zhǎng)度,同時(shí),主機(jī)本身也控制自己發(fā)送數(shù)據(jù)報(bào)的長(zhǎng)度,這將使以較小連接到一個(gè)網(wǎng)絡(luò)上的主機(jī)避免分段。有一個(gè)成員,用于記錄該發(fā)送數(shù)據(jù)報(bào)時(shí)的的大小,一般情況下它的值就等于特殊情況有例外,以后再分析,網(wǎng)關(guān)經(jīng)過(guò)測(cè)試為1472字節(jié)。測(cè)試方法為:ping-f-l1472192.168.0.1以太網(wǎng)(IEEE802.3)幀格式:1、前導(dǎo)碼:7字節(jié)0 x55,串1、0間隔,用于信號(hào)同步2、幀起

9、始定界符:1字節(jié)0 xD5(10101011),表示一幀開(kāi)始3、DA(目的MAC):6字節(jié)4、SA(源MAC):6字節(jié)5、類型/長(zhǎng)度:2字節(jié),01500保留為長(zhǎng)度域值,153665535保留為類型域值(0 x06000 xFFFF)6、數(shù)據(jù):461500字節(jié)7、幀校驗(yàn)序列(FCS):4字節(jié),使用CRC計(jì)算從目的MAC到數(shù)據(jù)域這部分內(nèi)容而得到的校驗(yàn)和。以CSMA/CD作為MAC算法的一類LAN稱為以太網(wǎng)。CSMA/CD沖突避免的方法:先聽(tīng)后發(fā)、邊聽(tīng)邊發(fā)、隨機(jī)延遲后重發(fā)。一旦發(fā)生沖突,必須讓每臺(tái)主機(jī)都能檢測(cè)到。關(guān)于最小發(fā)送間隙和最小幀長(zhǎng)的規(guī)定也是為了避免沖突??紤]如下的情況,主機(jī)發(fā)送的幀很小,而兩

10、臺(tái)沖突主機(jī)相距很遠(yuǎn)。在主機(jī)A發(fā)送的幀傳輸?shù)紹的前一刻,B開(kāi)始發(fā)送幀。這樣,當(dāng)A的幀到達(dá)B時(shí),B檢測(cè)到?jīng)_突,于是發(fā)送沖突信號(hào)。假如在B的沖突信號(hào)傳輸?shù)紸之前,A的幀已經(jīng)發(fā)送完畢,那么A將檢測(cè)不到?jīng)_突而誤認(rèn)為已發(fā)送成功。由于信號(hào)傳播是有時(shí)延的,因此檢測(cè)沖突也需要一定的時(shí)間。這也是為什么必須有個(gè)最小幀長(zhǎng)的限制。按照標(biāo)準(zhǔn),10Mbps以太網(wǎng)采用中繼器時(shí),連接的最大長(zhǎng)度是2500米,最多經(jīng)過(guò)4個(gè)中繼器,因此規(guī)定對(duì)10Mbps以太網(wǎng)一幀的最小發(fā)送時(shí)間為51.2微秒。這段時(shí)間所能傳輸?shù)臄?shù)據(jù)為512位,因此也稱該時(shí)間為512位時(shí)。這個(gè)時(shí)間定義為以太網(wǎng)時(shí)隙,或沖突時(shí)槽。512位=64字節(jié),這就是以太網(wǎng)幀最小64

11、字節(jié)的原因。512位時(shí)是主機(jī)捕獲信道的時(shí)間。如果某主機(jī)發(fā)送一個(gè)幀的64字節(jié)仍無(wú)沖突,以后也就不會(huì)再發(fā)生沖突了,稱此主機(jī)捕獲了信道。由于信道是所有主機(jī)共享的,如果數(shù)據(jù)幀太長(zhǎng)就會(huì)出現(xiàn)有的主機(jī)長(zhǎng)時(shí)間不能發(fā)送數(shù)據(jù),而且有的發(fā)送數(shù)據(jù)可能超出接收端的緩沖區(qū)大小,造成緩沖溢出。為避免單一主機(jī)占用信道時(shí)間過(guò)長(zhǎng),規(guī)定了以太網(wǎng)幀的最大幀長(zhǎng)為1500。100Mbps以太網(wǎng)的時(shí)隙仍為512位時(shí),以太網(wǎng)規(guī)定一幀的最小發(fā)送時(shí)間必須為5.12ps。1000Mbps以太網(wǎng)的時(shí)隙增至512字節(jié),即4096位時(shí),4.096ps。*MTU的含義:MAC幀內(nèi)的數(shù)據(jù)(Payload)字段的最大長(zhǎng)度我們使用Ping命令時(shí),-I參數(shù)所指定

12、的數(shù)據(jù)包大小,是指的ICMP報(bào)文中的ICMPData字段的長(zhǎng)度,不包括ICMPHeader,更不包括IPHeader.以太網(wǎng)封裝IP數(shù)據(jù)包的最大長(zhǎng)度是1500字節(jié),也就是說(shuō)以太網(wǎng)最大幀長(zhǎng)應(yīng)該是以太網(wǎng)首部加上1500,再加上7字節(jié)的前導(dǎo)同步碼和1字節(jié)的幀開(kāi)始定界符,具體就是:7字節(jié)前導(dǎo)同步嗎1字節(jié)幀開(kāi)始定界符+6字節(jié)的目的MAC+6字節(jié)的源MAC+2字節(jié)的幀類型+1500+4字節(jié)的FCS。按照上述,最大幀應(yīng)該是1526字節(jié),但是實(shí)際上我們抓包得到的最大幀是1514字節(jié),為什么不是1526字節(jié)呢?原因是當(dāng)數(shù)據(jù)幀到達(dá)網(wǎng)卡時(shí),在物理層上網(wǎng)卡要先去掉前導(dǎo)同步碼和幀開(kāi)始定界符,然后對(duì)幀進(jìn)行CRC檢驗(yàn),如果

13、幀校驗(yàn)和錯(cuò),就丟棄此幀。如果校驗(yàn)和正確,就判斷幀的目的硬件地址是否符合自己的接收條件(目的地址是自己的物理硬件地址、廣播地址、可接收的多播硬件地址等),如果符合,就將幀交“設(shè)備驅(qū)動(dòng)程序”做進(jìn)一步處理。這時(shí)我們的抓包軟件才能抓到數(shù)據(jù),因此,抓包軟件抓到的是去掉前導(dǎo)同步碼、幀開(kāi)始分界符、FCS之外的數(shù)據(jù),其最大值是6+6+2+1500=1514。以太網(wǎng)規(guī)定,以太網(wǎng)幀數(shù)據(jù)域部分最小為46字節(jié),也就是以太網(wǎng)幀最小是6+6+2+46+4=64。除去4個(gè)字節(jié)的FCS,因此,抓包時(shí)就是60字節(jié)。當(dāng)數(shù)據(jù)字段的長(zhǎng)度小于46字節(jié)時(shí),MAC子層就會(huì)在數(shù)據(jù)字段的后面填充以滿足數(shù)據(jù)幀長(zhǎng)不小于64字節(jié)。由于填充數(shù)據(jù)是由MAC子層負(fù)責(zé),也就是設(shè)備驅(qū)動(dòng)程序。不同的抓包程序和設(shè)備驅(qū)動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論