乙太網資料幀(802 3)最大與最小長度

2021-07-29 03:43:15 字數 1632 閱讀 9604

乙太網(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子層負責,也就是裝置驅動程式。

以csma/cd作為mac演算法的一類lan稱為乙太網。csma/cd衝突避免的方法:先聽後發、邊聽邊發、隨機延遲後重發。一旦發生衝突,必須讓每台主機都能檢測到。關於最小傳送間隙和最小幀長的規定也是為了避免衝突。

考慮如下的情況,主機傳送的幀很小,而兩台衝突主機相距很遠。在主機a傳送的幀傳輸到b的前一刻,b開始傳送幀。這樣,當a的幀到達b時,b檢測到衝突,於是傳送衝突訊號。假如在b的衝突訊號傳輸到a之前,a的幀已經傳送完畢,那麼a將檢測不到衝突而誤認為已傳送成功。由於訊號傳播是有時延的,因此檢測衝突也需要一定的時間。這也是為什麼必須有個最小幀長的限制。

按照標準,10mbps乙太網採用中繼器時,連線的最大長度是2500公尺,最多經過4個中繼器,因此規定對10mbps乙太網一幀的最小傳送時間為51.2微秒。這段時間所能傳輸的資料為512位,因此也稱該時間為512位時。這個時間定義為乙太網時隙,或衝突時槽。512位=64位元組,這就是乙太網幀最小64位元組的原因。

512位時是主機捕獲通道的時間。如果某主機傳送乙個幀的64位元組仍無衝突,以後也就不會再發生衝突了,稱此主機捕獲了通道。

由於通道是所有主機共享的,如果資料幀太長就會出現有的主機長時間不能傳送資料,而且有的傳送資料可能超出接收端的緩衝區大小,造成緩衝溢位。為避免單一主機占用通道時間過長,規定了乙太網幀的最大幀長為1500。

100mbps乙太網的時隙仍為512位時,乙太網規定一幀的最小傳送時間必須為5.12μs。

1000mbps乙太網的時隙增至512位元組,即4096位時,4.096μs。

乙太網 突破最大幀長 乙太網幀最小幀長與最大幀長

討論乙太網的幀長,就不得不先提一下乙太網的大名鼎鼎的csma cd協議。1.1 csma cd協議 csma cd是英文carrier sense multiple access collision detected 的縮寫,可把它翻成 載波監聽多路訪問 衝突檢測 或 帶有衝突檢測的載波偵聽多路訪問...

乙太網最小幀長度 802 3?乙太網?看完你就懂了

關注 星標公眾在tcp ip世界中,乙太網ip資料報的封裝是在rfc894中定義的,ieee802網路的ip資料報封裝是在rfc1042中定義的。最常使用的封裝格式是rfc 894定義的格式。下圖顯示了兩種不同形式的封裝格式。從上圖看到,兩種幀格式都採用48bit 6位元組 的目的位址和源位址。接下...

乙太網幀最小幀長與最大幀長

討論乙太網的幀長,就不得不先提一下乙太網的大名鼎鼎的csma cd協議。1.1 csma cd協議 csma cd是英文carrier sense multiple access collision detected 的縮寫,可把它翻成 載波監聽多路訪問 衝突檢測 或 帶有衝突檢測的載波偵聽多路訪問...