怎么查看數(shù)據(jù)包被分片了 一個(gè)數(shù)據(jù)包的大小是好多?
一個(gè)數(shù)據(jù)包的大小是好多?1.數(shù)據(jù)鏈路層對(duì)數(shù)據(jù)幀的長(zhǎng)度有限制,即鏈路層所能承受的最大數(shù)據(jù)長(zhǎng)度。這個(gè)值它被稱為最大傳輸單位,即MTU。以以太網(wǎng)為例,這個(gè)值通常是1500字節(jié)。2.對(duì)于IP數(shù)據(jù)包,也有一個(gè)長(zhǎng)
一個(gè)數(shù)據(jù)包的大小是好多?
1.數(shù)據(jù)鏈路層對(duì)數(shù)據(jù)幀的長(zhǎng)度有限制,即鏈路層所能承受的最大數(shù)據(jù)長(zhǎng)度。這個(gè)值
它被稱為最大傳輸單位,即MTU。以以太網(wǎng)為例,這個(gè)值通常是1500字節(jié)。
2.對(duì)于IP數(shù)據(jù)包,也有一個(gè)長(zhǎng)度。在IP報(bào)頭中,IP分組的長(zhǎng)度由16比特描述,也就是說(shuō),
一個(gè)IP包,最長(zhǎng)可能是65535字節(jié)。
3.綜合以上兩個(gè)概念,第一個(gè)重要結(jié)論就出來(lái)了。如果IP數(shù)據(jù)包的大小超過(guò)了MTU值,則有必要。
分片,也就是把一個(gè)IP包分成多個(gè)部分,非常容易理解。一輛載重5T的貨車要拉10T的貨。
當(dāng)然我也只是進(jìn)了幾次拉。
4.許多材料中經(jīng)常提到IP碎片化,但我不。;我不認(rèn)為它 it'把它分開(kāi)很重要。重要的是另一件事。一個(gè)
數(shù)據(jù)包經(jīng)過(guò)一個(gè)很大的網(wǎng)絡(luò),會(huì)經(jīng)過(guò)多個(gè)網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)的MTU值都不一樣。我們可以想象如果
接收方/發(fā)送方都是以太網(wǎng),他們的MTU是1500。我們假設(shè)發(fā)送時(shí),數(shù)據(jù)包會(huì)用1500封裝。然而,
可惜傳輸中有一個(gè)X.25網(wǎng)絡(luò),它的MTU是576。會(huì)發(fā)生什么?我覺(jué)得這才是我們關(guān)心的。
當(dāng)然結(jié)論很明顯,這個(gè)數(shù)據(jù)包又要切片了,我們就開(kāi)始拉火車了。在路上,不會(huì)有火車,只有汽車。
那輛車將被分成許多輛車...那個(gè) 這就是全部。更重要的是,在這種情況下,如果用 "沒(méi)有碎片標(biāo)志 ",那么
會(huì)發(fā)生什么?是的,數(shù)據(jù)包將被丟棄,但我收到了一個(gè)ICMP不可達(dá)錯(cuò)誤,告訴你它需要被分段!
該網(wǎng)絡(luò)中最小的MTU值稱為路徑MTU。我們應(yīng)該有一個(gè)有效的手段來(lái)求這個(gè)值,最笨的方法可能是第一個(gè)。
使用traceroute查看所有節(jié)點(diǎn),然后逐一ping……...
5.在傳輸層,也會(huì)有一個(gè)最大限制。當(dāng)然,對(duì)于UDP,它只發(fā)送而不 I don'我不在乎其他任何事情,這已經(jīng)不是我們討論的問(wèn)題了。這里
談?wù)揟CP協(xié)議。說(shuō)到尺寸,可能會(huì)讓人想起TCP 著名的滑動(dòng)窗口,它與收發(fā)器兩端的緩存有關(guān),在這里討論。
是傳輸?shù)淖畲髷?shù)據(jù)包大小,因此不進(jìn)行討論。
在TCP的option字段中,有一個(gè)最大消息段長(zhǎng)度(MSS),表示TCP向另一端傳輸?shù)淖畲髷?shù)據(jù)的長(zhǎng)度。當(dāng)一個(gè)連接被建立時(shí),它被連接。
雙方都要公布自己的MSS,也就是說(shuō)和TCP的SYN logo一起。當(dāng)然,對(duì)于傳輸來(lái)說(shuō),總是希望MSS越大越好。
現(xiàn)在超載這么嚴(yán)重,誰(shuí)不 我不想拉更多的貨...但是MSS對(duì)于以太網(wǎng)總是有一個(gè)限制,就是MTU-IP頭長(zhǎng)度-TCP頭長(zhǎng)度。
塔通經(jīng)常是1500-20-201460。雖然它總是被期望很大(比如1460),但是大多數(shù)BSD實(shí)現(xiàn)都是512的倍數(shù),比如1024...
6.回到切片。例如,在Win2000下執(zhí)行以下命令:
平192.168.0.1 -l 1473
按照我剛才說(shuō)的,1473 20(ip頭)8(icmp頭)1501比1500好,會(huì)碎片化,但是我們關(guān)心的是:
這個(gè)包怎么分?
你可以猜到,第一個(gè)包是
以太網(wǎng)IP報(bào)頭ICMP報(bào)頭1427的數(shù)據(jù);
第二個(gè)切片包呢?
它可以是:
以太網(wǎng)IP報(bào)頭ICMP的第一個(gè)1字節(jié)的數(shù)據(jù)
或者:
以太網(wǎng)IP第一個(gè)字節(jié)的數(shù)據(jù)
也就是說(shuō)省略了ICMP頭的封裝。當(dāng)然不能省略IP頭,不然怎么傳輸...
其實(shí)TCP/IP協(xié)議采用的是后一種封裝,一次可以節(jié)省8個(gè)字節(jié)。在IP報(bào)頭中,有三個(gè)標(biāo)志用于描述分段的數(shù)據(jù)包:
1.分片標(biāo)志:如果一個(gè)包是分片的,則設(shè)置為1,除了最后一個(gè)分片;——這樣,對(duì)于接收端來(lái)說(shuō),標(biāo)志位可以作為重組權(quán)重。
基地之一;
2.碎片偏移標(biāo)志:只有一個(gè)標(biāo)志位表示你是否是碎片包是不夠的。偏移標(biāo)志位指示您的片段在原始數(shù)據(jù)報(bào)中的位置。
顯然,這兩個(gè)標(biāo)志一旦結(jié)合起來(lái),就很容易把支離破碎的包裝重新組織起來(lái)。
3.不允許分片標(biāo)志:如果這個(gè)標(biāo)志是為數(shù)據(jù)包強(qiáng)制設(shè)置的,那么在需要分片的時(shí)候,……
LWIP協(xié)議怎么提高UDP速度?
首先物理層要支持。比如支持10Mbps的以太網(wǎng)最快可以傳輸1M/S,支持100Mbps的以太網(wǎng)可以傳輸10M/
s其次,物理層支持的速度很高,你的板卡處理能力也要跟上。如果你用的是Cort:1500字節(jié)),所以不適合大數(shù)據(jù)量的以太網(wǎng)傳輸。