對於大量小資料包,千兆位元乙太網路理論上可以比 10/100 兆位元乙太網路更快嗎?

對於大量小資料包,千兆位元乙太網路理論上可以比 10/100 兆位元乙太網路更快嗎?

與我合作的軟體供應商需要千兆位元乙太網路連接來進行經典的客戶端-伺服器軟體設定。對於我驚訝的問題為什麼他們需要在客戶端和伺服器之間傳輸如此大量的數據,供應商回答說他們不傳輸任何大數據包,而是傳輸許多小數據包。他告訴我,根據他們的經驗,這在千兆位元連接上比 10 或 100 兆位元連接要快得多。

在將乙太網路理解為串列連接和傳輸速度主要受到介質(光纖、銅線等)限制後,我感到很困惑。對於供應商所解釋的現像是否有我可能遺漏的理論解釋?我的背景並不完全是硬體方面的,所以也許千兆位元標準中有一些優化措施,可以以某種方式針對這種特殊情況進行最佳化。

因此,假設我必須發送 1,000,000 個資料包,每個資料包只有幾個字節,是否有理由解釋為什麼這在千兆位元乙太網路上比 10/100 兆位元乙太網路更快?

答案1

資料包速率 (pps) 是線路速度除以資料包大小的直接結果。因此,它可以擴展線性地以線速度。

乙太網路幀的最小大小為 84 字節,最大大小(不考慮巨型幀)為 1,538 位元組。因此,可能有以下幀速率:

  • 100 Mbit/s:8,127 f/s 至 148,809 f/s
  • 1 GBit/s:81,274 f/s 至 1,488,096 f/s

就吞吐量而言,頻寬越大越好。延遲可能會更糟,並且可能會消耗更多電力。

答案2

如果我有一個 5kb 的資料包,那麼線路能夠傳輸 10、100 或 1000mbit 的資料有什麼關係呢?

線路不是以「兆位元」為單位,以兆位元為單位每秒。它是一種速率單位,同樣適用於任何資料大小,就像「公里每小時」同樣適用於任何距離。 (例如,以 20 公里/小時的速度行駛 10 公尺仍然比以 2 公里/小時的速度行駛 10 倍。)

如果需要,可以縮小單位 - 例如,1 km/h 可以轉換為 ~0.27 m/s。同樣,1 Gb/s 可以轉換為 1 kb/μs。這仍然是相同的值,但您可以看到以 1 kb/μs (1 Gb/s) 的速度傳輸 5 kb 需要 5 微秒 – 比 50 µs 快十倍。

[我當然希望我的數學是對的]

因此,假設我必須發送 1'000'000 個每個僅幾個位元組的包,是否有理由解釋為什麼這在千兆位元乙太網路上比兆位元乙太網路更快?

它被稱為“千兆位元乙太網路”,因為它的資料傳輸速率為 1 Gbps(千兆位元每秒)。這其實不是一種能力,而是一種固定時脈頻率。例如,如果您發送 1 GB,它將在一秒內以 1 Gbps 的速度傳輸。但如果你發送 10 兆比特,它們將在 0.01 秒內傳輸,仍為 1 Gbps,並且該連結將在剩餘的 0.99 秒內保持空閒狀態。

換句話說,它不會根據資料包大小來改變齒輪。無論您發送由大數據包組成的 X Gb,還是由小數據包組成的 X Gb,它們都是總是以相同的 1 Gbps 速率發送,始終比 100 Mbps 快 10 倍。

將乙太網路理解為串列連接,小資料包的傳輸速度主要受到介質(光纖、銅纜等)的限制,

並非所有串行連接的工作方式都相同。透過相同媒體可以獲得的位元率可能會有所不同,具體取決於編碼調製您可以使用它來將這些位元連接到電線上。 (還有很多我不知道的其他事情。)除此之外,千兆位元乙太網路(以及類似的USB 3.2、PCI-e、SATA 和許多其他串行鏈路)使用多個通道同時發送多個資料塊。

相關內容