為什麼乙太網資料幀最小為64位元組

2021-06-19 07:52:40 字數 2050 閱讀 2671

如果把"乙太網"比作是一棟"房子",這棟房子可以算得上是人類構建的非常了不起的"建築"了,乙太網設計人員制定了一系列的標 準,這些看似有意義似乎又沒有意義的數字、標準構成了乙太網的磚瓦基石,今天我們來看一塊位於這棟"房子"底層的"磚基"——乙太網最小幀長為什麼是64 位元組。

首先我們先來看一下乙太網資料幀的格式:

1、前導碼/幀起始定界符:7位元組0x55,一串1、0間隔,用於訊號同步,1位元組0xd5(10101011),表示一幀開始

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

5、資料:46~1500位元組

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

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

乙太網是無連線的,不可靠的服務,採用盡力傳輸的機制。乙太網csma/cd我就不多講了,我相信大家都了解這個原理。

乙太網是不可靠的,這意味著它並不知道對方有沒有收到自己發出的資料報,但如果他發出的資料報發生錯誤,他會進行重傳。乙太網的錯誤主要是發生碰撞,碰撞是指兩台機器同時監聽到網路是空閒的,同時傳送資料,就會發生碰撞,碰撞對於乙太網來說是正常的。

我們來看一下,假設a檢測到網路是空閒的,開始發資料報,盡力傳輸,當資料報還沒有到達b時,b也監測到網路是空閒的,開始發資料報,這時就會 發生碰撞,b首先發現發生碰撞,開始傳送碰撞訊號,所謂碰撞訊號,就是連續的01010101或者10101010,十六進製制就是55或aa。這個碰撞信 號會返回到a,如果碰撞訊號到達a時,a還沒有發完這個資料報,a就知道這個資料報發生了錯誤,就會重傳這個資料報。但如果碰撞訊號會返回到a時,資料報 已經發完,則a不會重傳這個資料報。

我們先看一下,乙太網為什麼要設計這樣的重傳機制。首先,乙太網不想採用連線機制,因為會降低效率,但他又想有一定的重傳機制,因為乙太網的重 傳是微秒級,而傳輸層的重傳,如tcp的重傳達到毫秒級,應用層的重傳更達到秒級,我們可以看到越底層的重傳,速度越快,所以對於乙太網錯誤,乙太網必須 有重傳機制。

要保證乙太網的重傳,必須保證a收到碰撞訊號的時候,資料報沒有傳完,要實現這一要求,a和b之間的距離很關鍵,也就是說訊號在a和b之間傳輸 的來回時間必須控制在一定範圍之內。ieee定義了這個標準,乙個碰撞域內,最遠的兩台機器之間的round-trip time 要小於512bit time.(來回時間小於512位時,所謂位時就是傳輸乙個位元需要的時間)。這也是我們常說的乙個碰撞域的直徑。

512個位時,也就是64位元組的傳輸時間,如果乙太網資料報大於或等於64個位元組,就能保證碰撞訊號到達a的時候,資料報還沒有傳完。

這就是為什麼乙太網要最小64個位元組,同樣,在正常的情況下,碰撞訊號應該出現在64個位元組之內,這是正常的乙太網碰撞,如果碰撞訊號出現在64個位元組之後,叫 late collision。這是不正常的。

總結:最小資料幀的設計原因和乙太網電纜長度有關,為的是讓兩個相距最遠的站點能夠感知到雙方的資料發生了碰撞;最遠兩端資料的往返時間就是爭用期,乙太網的爭用期是51.2微妙,正好傳送64byte資料。

按照上述:

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

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

**

為什麼乙太網最小幀是64位元組

理解csma cd,主要有三個方面 1 多點接入 2 載波監聽 3 碰撞檢測。這裡值得一提的是,csma cd 使用場景是在乙個站不能同時傳送資料和接收資料,即適用場景為 半雙工通訊。多點接入 就是說這是匯流排型網路,許多計算機接在匯流排上。載波監聽 傳送前先監聽。就是每個計算機在傳送資料前,先要檢...

為什麼乙太網最短幀為64位元組

乙太網是不可靠的,這意味著它並不知道對方有沒有收到自己發出的資料報,但如果他發出的資料報發生錯誤,他會進行重傳。乙太網的錯誤主要是發生碰撞,碰撞是指兩台機器同時監聽到網路是空閒的,同時傳送資料,就會發生碰撞,碰撞對於乙太網來說是正常的。我們來看一下,假設a檢測到網路是空閒的,開始發資料報,盡力傳輸,...

為什麼傳統乙太網最小幀長度是64位元組

這裡說的傳統乙太網是指10mbit s乙太網.下面簡述下乙太網工作原理 乙太網中各工作站 計算機 的工作方式與計算機系統中的匯流排類似,各工作站共享匯流排。假設匯流排上a傳送資料到b,則連線到匯流排上的工作站都會收到a的資料,然後通過匹配幀中的目的位址來判斷是不是傳送給自己的資料,如果是傳送給自己的...