乙太網幀格式和幀大小

2021-06-18 19:42:32 字數 885 閱讀 8921

乙太網(ieee 802.3)幀格式:

1、前導碼:7位元組0x55,一串1、0間隔,用於訊號同步

2、幀起始定界符:1位元組0xd5(10101011),表示一幀開始

3、da(目的mac):6位元組

4、sa(源mac):6位元組

5、型別/長度:2位元組,0~1500保留為長度域值,1536~65535保留為型別域值(0x0600~0xffff)

6、資料:46~1500位元組

7、幀校驗序列(fcs):4位元組,使用crc計算從目的mac到資料域這部分內容而得到的校驗和。

據rfc894的說明,乙太網封裝ip資料報的最大長度是1500位元組,也就是說乙太網最大幀長應該是乙太網首部加上1500,再加上7位元組的前導同步碼和1位元組的幀開始定界符,具體就是:7位元組前導同步嗎+1位元組幀開始定界符+6位元組的目的mac+6位元組的源mac+2位元組的幀型別+1500+4位元組的fcs。

按照上述,最大幀應該是1526位元組,但是實際上我們抓包得到的最大幀是1514位元組,為什麼不是1526位元組呢?原因是當資料幀到達網絡卡時,在物理層上網絡卡要先去掉前導同步碼和幀開始定界符,然後對幀進行crc檢驗,如果幀校驗和錯,就丟棄此幀。如果校驗和正確,就判斷幀的目的硬體位址是否符合自己的接收條件(目的位址是自己的物理硬體位址、廣播位址、可接收的多播硬體位址等),如果符合,就將幀交「裝置驅動程式」做進一步處理。這時我們的抓包軟體才能抓到資料,因此,抓包軟體抓到的是去掉前導同步碼、幀開始分界符、fcs之外的資料,其最大值是6+6+2+1500=1514。

乙太網規定,乙太網幀資料域部分最小為46位元組,也就是乙太網幀最小是6+6+2+46+4=64。除去4個位元組的fcs,因此,抓包時就是60位元組。當資料字段的長度小於46位元組時,mac子層就會在資料字段的後面填充以滿足資料幀長不小於64位元組。由於填充資料是由mac子層負責,也就是裝置驅動程式。

乙太網幀格式

一 ethernet位址 為了標識乙太網上的每台主機,需要給每台主機上的網路介面卡 網路介面卡 分配乙個唯一的通訊位址,即ethernet位址或稱為網絡卡的實體地址 mac位址。ieee負責為網路介面卡製造廠商分配ethernet位址塊,各廠商為自己生產的每塊網路介面卡分配乙個唯一的ethernet...

乙太網幀格式

乙太網幀格式,即在乙太網幀頭 幀尾中用於實現乙太網功能的域。圖2 ieee802.3以太幀頭 欄位字段長度 位元組 目的前導碼 preamble 7同步 幀開始符 sfd 1標明下乙個位元組為目的mac欄位 目的mac位址 6指明幀的接受者 源mac位址 6指明幀的傳送者 長度 length 2幀的...

乙太網幀格式

乙太網幀格式,即在乙太網幀頭 幀尾中用於實現乙太網功能的域。圖2 ieee802.3以太幀頭 欄位字段長度 位元組 目的前導碼 preamble 7同步 幀開始符 sfd 1標明下乙個位元組為目的mac欄位 目的mac位址 6指明幀的接受者 源mac位址 6指明幀的傳送者 長度 length 2幀的...