為什么巨型幀會影響延遲?
以下是巨型幀可能會影響延遲的一些方面:
-
9kB巨型幀的大小是最大標准以太網幀(1500字節)的6倍。因此,在相同的誤碼率下,超長幀發生錯誤的幾率高6倍,並且當發生錯誤時,必須重傳整個大6倍的幀。
-
針對以太網幀檢查序列(FCS)中為CRC32算法選擇的多項式,是針對最大1500字節的幀大小進行了調整的。對於較大的幀,它的效果較差,但是(使用)巨型幀的人們並沒有改變多項式。因此,巨型幀中的位錯誤更有可能在MAC層上未被檢測到,而必須稍后在更高的層(對於UDP / IP的情況下可能是應用層)被檢測到,這導致被要求重傳之前的等待時間更長。
-
如果對延遲敏感的數據包在 full-size幀之后排隊等待訪問介質,那么如果full-size是9kB巨型幀而不是標准的1500字節,則等待訪問介質所需的時間是原來的6倍。
-
如果對延遲敏感的協議使用巨型幀以提高帶寬效率,那么在發送到線路之前構造幀,填幀的第一個字節到幀的最后一個字節的時間大大加長。
舉一個極端的例子,某些高效的語音編解碼器可以使用2kbps的比特率,因此單個9k幀可能需要大約36秒的語音。試想一下,在VoIP通話中有36秒的延遲。當然,正如您所指出的那樣,以這種方式設計對延遲敏感的協議實在是太愚蠢了,以至於無法提及。盡管如此,使用巨型幀仍可能會損害延遲。
另請注意,路徑MTU發現是IP層的內容,因此它不是特定於TCP的(so it is not TCP-specific)。因此基於UDP的協議可以從“路徑MTU發現”中“受益”。還要注意,您不必執行PMTUD即可知道本地鏈接的MTU,因此,如果您的發送主機位於巨型幀以太網上,即使不執行PMTUD,它的MTU也將設置為(最多)9000字節。 。關於您寫問題的方式的某些事使我認為您可能不知道這一點。
P.S.是的,因為FCS位於末尾並且是在整個幀中計算的,所以在進行進一步處理之前需要完全接收幀。此外,以太網中沒有錯誤更正,只有檢測。(there is no error correction in Ethernet, only detection.)
https://superuser.com/questions/715590/why-do-jumbo-frames-hurt-latency
帶寬,吞吐量,時延的理解
帶寬指的是網絡設備支持的最高速度
https://zhuanlan.zhihu.com/p/82002106
時延指的是延遲
帶寬的提高改變的是發送時延,傳播時延使用的介質相同不會發生改變。