爲什麼以太網最短幀爲64字節

       以太網是不可靠的,這意味着它並不知道對方有沒有收到自己發出的數據包,但如果他發出的數據包發生錯誤,他會進行重傳。以太網的錯誤主要是發生碰撞,碰撞是指兩臺機器同時監聽到網絡是空閒的,同時發送數據,就會發生碰撞,碰撞對於以太網來說是正常的。
  我們來看一下,假設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數據。
    注:爲什麼以太網的爭用期是51.2us?
    在極限條件下,一個局域網中兩個收發器間(允許接4箇中繼器)的最大距離爲2500m,往返5000m,同軸電纜的時延特性爲5us/km,即如遇衝突,端到端往返時延爲25us。然而這是理想的時延,考慮到中繼器的額外時延,最壞情況下取估計時延爲45us,再加上強化衝突需發送48bit,接受方要接受到48bit後才確認衝突,即在增加4.8us,共49.8us,所以通常以太網取51.2us爲爭用期的時間長度(傳輸512bit,即64字節時間),即幀的長度至少爲64字節。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章