乙太網原理與最小幀長(傻瓜版)

2021-05-22 18:14:36 字數 1946 閱讀 3959

熟悉了最小幀長,可以說就明白了為什麼基於csma/cd協議的乙太網有網段長度限制,同時也掌握了乙太網的精髓。

在這之前,我們應該先了解一下csma/cd協議。

什麼是csma/cd協議(載波偵聽多路訪問/衝突檢測協議)?乙個房間有很多人,如果同時說話,就誰也聽不清楚別人說什麼,於是大家約定了乙個機制:每個人在說話之前先聽一下有沒有其他人說話(載波偵聽),如果有,自己就先不說話,如果沒有,就說話。如果大家同時發現房間裡沒有人說話,則同時開口,此時就產生衝突(衝突檢測),產生衝突後大家都閉嘴,每個人心裡都隨機的選乙個時間開口說話,這樣隨機時間時間最短的那個人就可以說話了,而其他人聽著。在這乙個大房間裡,大家在同乙個空間(共享同乙個介質)裡可以彼此說話(多路訪問。而不僅是只能和某個人說話)。乙太網就是遵循這種方式通訊,鏈結在同一條網線上的多個裝置必須在傳送資料前先偵聽線上有無其他機器在傳輸,如果沒有就傳送,如果遇到衝突就等乙個隨機的時間再傳送。

關鍵的一點是:傳送和接受端如何感知衝突?

假設:a、b兩地間通過乙個傳送帶鏈起來,傳送帶的滾動速度是c(c代表光速),也就是20.3cm/ns(每納秒20.3厘公尺),a點有個人叫a1,他要把一車蘋果分成一小堆一小堆的傳送給b點的那個人b1,現則a1需要抉擇的是:我在傳送蘋果給b1的時,如果b1同時也有蘋果傳給我,這個時候就會產生衝突,而衝突會把傳送中的蘋果撞碎,破碎的蘋果渣會通過傳送帶反送給我,我很想知道是哪一小堆蘋果被撞碎了,如何實現?乙個辦法就是:在我收到蘋果碎片的時候,我仍舊在傳著這堆蘋果!比如有很多堆蘋果,第1堆,第2堆等,當我傳送第3堆蘋果的過程中,收了蘋果碎片,那肯定是第3堆裡先發出的蘋果出現了碰撞,而不是第2堆或第1堆中的蘋果發生碰撞。

為了實現這一點,假如a到b點的距離是2500公尺(250000厘公尺),傳送帶上的蘋果每納秒20.3厘公尺,那麼一堆蘋果中的第乙個蘋果到達b點的用時就是250000除以20.3=12500納秒,在加上碎片返回的時間是12500納秒,等於25000納秒,這個時間就是一堆蘋果必須持續的時間。

體力稍好的人,往傳送帶上放蘋果的時候快,體力不好的就慢。體力稍好的人每秒可以往傳送帶上放100mbit個蘋果,換算一下,也就是說放乙個蘋果用10納秒。體力不好的人每秒鐘只能往傳送帶上放10mbit個,也就是說放乙個蘋果用100納秒。

因為一堆蘋果必須持續的時間25000納秒,那麼對於體力不好的人,25000除以100=250個蘋果,這個結果就是一堆蘋果的數量。所以,理論上乙個10mbit/s的乙太網,最小幀長應該是250bit。但為了確保碰撞切實的被檢測到,最小幀長被定義為512bit(64位元組)。

因為一堆蘋果必須持續的時間25000納秒,對於體力好的人,25000除以10=2500個蘋果,這個結果就是一堆蘋果的數量。所以,理論上乙個100mbit/s的乙太網,最小幀長應該是2500bit。但乙個2500bit的幀又太大了,上層來的資料報不可能這麼大。所以我們只能縮短a點到b點的距離為250公尺,乙個蘋果在傳送帶上往返的時間也變成了2500納秒。這時用2500除以10=250個蘋果,這個結果就是一堆蘋果的數量。所以,理論上乙個100mbit/s的乙太網,最小幀長應該是250bit,網路最大有效距離是250公尺。但為了確保碰撞切實的被檢測到,最小幀長被定義為512bit(64位元組)。

以下動畫演示了傳送端a在把資料傳輸給b時,在將要到達b點的地方出現了碰撞,於是碰撞碎片傳回了a,a就知道正在傳輸的資料出現衝突了。

由此可見,mac層傳送的速度越快,乙太網的最大有效距離就越短。但對於1000mb/s的吉位元乙太網,mac層有兩種選擇,要麼保留csma/cd,要麼不用它。若保留csma/cd協議,必須面臨碰撞檢測問題,這就要再一次減小網路的最大有效傳輸距離到25公尺。當然您可以不縮短網路的距離,而是增加乙個幀的程度,就如我們開始分析100mb/s乙太網那樣,讓乙個幀持續足夠長的時間。但因為上層來的資料沒有這麼多,所以就需要在mac層進行一些無用資料的填充來滿足這個要求。

最後,我們推導出以下比例關係:

最小幀長/傳輸速率

正比於網路最大傳輸距離/光速

乙個網路的最大傳輸距離也稱為衝突域,傳輸乙個最小幀所用的時間(最小幀長/傳輸速率)正比於1位資訊穿越衝突域的時間。

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

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

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

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

乙太網為什麼要限制最小幀長?

乙太網中傳輸的資料幀的長度並不是乙個常數,而是乙個範圍內的,乙太網幀長度最大限制 mtu 是1518位元組,最小長度是64位元組。限制幀的最大長度是為了避免一台裝置長時間占用通道,所以在傳輸過程中一定要有機制強制乙個裝置停止傳輸,讓出通道的使用。那麼為何要限制最小的幀長度呢?乙個過小的資料會讓乙太網...