相信很多人在公司或者家裡早就用上了千兆區域網,按照我們老生常談的公式,從Mbps換算成MB/s要除以8,這樣算出來,千兆網路的理論傳輸速度上限應該是125MB/s才對,但在實際應用場景中,我們從來就沒看到過這個數字,為什麼呢?這是因為在理論與實際之間,除了有傳輸線材物理上的損耗和協議層開銷外,在底層上面還有20%的校驗開銷。
在我們的觀念中,透過網線傳輸的就是“000011111”這樣子沒有經過任何“包裝”的二進位制流,但實際上為了保證資料傳輸過程中的穩定可靠,在底層上面就已經設計了相應的編碼機制。千兆網路使用的是8b/10b的編碼方式,其實就是以前USB、PCIe等協議使用的編碼方式,在傳輸時,每8bit實際資料附帶2個bit的校驗位,這2個bit的校驗碼有時還有其他諸如控制、同步等作用。8b/10b編碼將原始的8bit資料分成5bit和3bit兩部分,然後透過提前規定好的編碼表將其轉換成6bit+4bit、共10bit帶校驗的資料。在物理鏈路上面傳輸的,就是經過8b/10b編碼之後的資料,也就是說,它的效率為80%。
所以千兆網路的實際傳輸頻寬也就是1000Mbps × 80% = 800Mbps,這裡再算上各種損耗,最終我們看到的就是100MB/s都不到的實際傳輸速度。
8b/10b編碼非常成熟可靠,在很多地方都有相關的應用,但它有一個問題,那就是80%的效率太低了。於是,標準制定者在8b/10b編碼思路的基礎上面進行擴充,搞出了64b/66b、128b/132b這樣的編碼,保證資料傳輸安全可靠的同時大幅度提升了編碼效率,比如已經在PCIe上面應用多年的128b/132b的效率為96.97%;而千兆網路的更高階——萬兆網路採用的就是64b/66b的編碼,效率提升比較明顯。
相信很多人在公司或者家裡早就用上了千兆區域網,按照我們老生常談的公式,從Mbps換算成MB/s要除以8,這樣算出來,千兆網路的理論傳輸速度上限應該是125MB/s才對,但在實際應用場景中,我們從來就沒看到過這個數字,為什麼呢?這是因為在理論與實際之間,除了有傳輸線材物理上的損耗和協議層開銷外,在底層上面還有20%的校驗開銷。
在我們的觀念中,透過網線傳輸的就是“000011111”這樣子沒有經過任何“包裝”的二進位制流,但實際上為了保證資料傳輸過程中的穩定可靠,在底層上面就已經設計了相應的編碼機制。千兆網路使用的是8b/10b的編碼方式,其實就是以前USB、PCIe等協議使用的編碼方式,在傳輸時,每8bit實際資料附帶2個bit的校驗位,這2個bit的校驗碼有時還有其他諸如控制、同步等作用。8b/10b編碼將原始的8bit資料分成5bit和3bit兩部分,然後透過提前規定好的編碼表將其轉換成6bit+4bit、共10bit帶校驗的資料。在物理鏈路上面傳輸的,就是經過8b/10b編碼之後的資料,也就是說,它的效率為80%。
所以千兆網路的實際傳輸頻寬也就是1000Mbps × 80% = 800Mbps,這裡再算上各種損耗,最終我們看到的就是100MB/s都不到的實際傳輸速度。
8b/10b編碼非常成熟可靠,在很多地方都有相關的應用,但它有一個問題,那就是80%的效率太低了。於是,標準制定者在8b/10b編碼思路的基礎上面進行擴充,搞出了64b/66b、128b/132b這樣的編碼,保證資料傳輸安全可靠的同時大幅度提升了編碼效率,比如已經在PCIe上面應用多年的128b/132b的效率為96.97%;而千兆網路的更高階——萬兆網路採用的就是64b/66b的編碼,效率提升比較明顯。