用sniffer抓icmp包來分析。
1。ping 192.168.1.1 -l 0
ping一個(gè)ip,指定攜帶的數(shù)據(jù)長(zhǎng)度為0
抓包分析如圖:
從圖上的1處我們可以看到這個(gè)數(shù)據(jù)總大小是:60byte
從2處看到ip數(shù)據(jù)總長(zhǎng)度:28byte
ip數(shù)據(jù)為什么是28byte?
因?yàn)閕p頭部是20個(gè)字節(jié)(4處標(biāo)記的),而icmp頭部是8個(gè)字節(jié),因?yàn)槲覀兊膒ing是指定數(shù)據(jù)長(zhǎng)度為0的 ,所以icmp里不帶額外數(shù)據(jù),即:
28=20+8
而我們知道以太網(wǎng)類型幀頭部是 6個(gè)字節(jié)源地址+6個(gè)字節(jié)目標(biāo)地址+2個(gè)字節(jié)類型=14字節(jié)
以太網(wǎng)幀頭部+ip數(shù)據(jù)總長(zhǎng)度=14+28=42
注重3處標(biāo)記的,填充了18個(gè)字節(jié)。
42+18=60
剛好等于總長(zhǎng)度,其實(shí)這里我們需要注重到這里捕捉到幀不含4個(gè)字節(jié)的尾部校驗(yàn),假如加上4字節(jié)尾部校驗(yàn),正好等于64!
64恰好是以太類型幀最小大小。
在圖中我們還可以看到 這個(gè)幀沒有分割,flags=0x,因?yàn)椴恍枰指睢?/P>
再分析一個(gè)
ping 192.168.1.1 -l 64
以太網(wǎng)幀實(shí)際承載數(shù)據(jù)部分最大為1500,這里面還包含其他協(xié)議的報(bào)頭,所以實(shí)際承載數(shù)據(jù)肯定小于1500,假如ping 192.168.1.1 -l 1500,那么數(shù)據(jù)必要會(huì)被分割,但計(jì)算方法還是一樣的,只是需要非凡注重,后續(xù)幀無需包含第一個(gè)幀所包含的icmp報(bào)頭。
所以第一個(gè)幀的大小會(huì)是 1500(實(shí)際數(shù)據(jù)部分大小,含ip和icmp報(bào)頭)+14(以太類型幀頭部)=1514,在第一個(gè)幀里實(shí)際攜帶了多少數(shù)據(jù)的是1500-20(IP 報(bào)頭)-8(icmp報(bào)頭)=1472,剩余28bytes數(shù)據(jù)會(huì)在后續(xù)幀中
后續(xù)幀大小:14(以太類型頭)+20(ip頭)+28(實(shí)際數(shù)據(jù))=62
注重上面的計(jì)算我們都不計(jì)算尾部4字節(jié)校驗(yàn)的。可以實(shí)際抓包驗(yàn)證上面的分析。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注