5
有可能使用一些以太網卡的很大的幀。一種情況是9k幀或巨型幀,其他情況是超巨型幀(據我所知,高達64k)。巨型以太網幀和超大型幀的標頭
什麼是用於這種巨大數據包的幀格式?
據我所知,爲正常幀兩種格式廣泛用於:
Preamble Start_byte dest_mac src_mac Ethertype/length Payload CRC Interframe gap
10101010x7 10101011 6 bytes 6 bytes 2 bytes 46–1500 bytes 4 bytes 12 bytes
在一種情況下,以太網類型用於長度,和在第二 - 用於數據包類型。如果這個字段是< 0x0600(十進制1536字節),這是一個長度;如果> = 0x0600 - 它是一種類型。
因此,看起來不可能在這個字段中存儲9000作爲長度。巨型和超巨型幀的長度如何存儲?
所以,巨型幀只能用於L3協議有長度字段或具有固定大小? – osgx
@osgx,沒有什麼能阻止你在L1上創建一個大於Ethertype/length域中指定的以太網幀。但是網絡堆棧不一定會將其解釋爲一個大包。所以基本上,是的,您需要使用支持大型數據包(如IPv4/IPv6)的L3協議。 (ARP會很小)。一個簡單的方法可以做到這一點,假設你正確設置你的接口MTU(並且你的網絡驅動程序配置爲較大的幀),可以使用帶'packetsize'參數的'ping'。 – mpontillo