如何在 Linux 上模擬延遲和丟包?


為了模擬延遲或丟棄的資料包,我們可以使用 **netem**,它提供網路模擬功能,有助於測試協議。

**netem** 的工作原理是透過模擬廣域網的特性來測試協議。

**netem** 有不同的版本,當前的穩定版本允許我們模擬資料包的可變延遲、丟失、重新排序和複製。

我們可以使用網路模擬器兩種方式,第一種是最基本的方式,我們可以透過以下簡單的步驟啟用 **netem** 核心元件。

Networking ->
   Networking Options ->
      QoS and/or fair queuing ->
         Network emulator

或者我們可以使用命令列,因為命令列工具 **‘tc’** 用於 **netem** 核心。

讓我們探索一些命令列工具 **tc** 的不同示例,我們將首先模擬廣域網路延遲,然後討論資料包丟失。

模擬廣域網路延遲

命令

# tc qdisc add dev eth0 root netem delay 100ms

現在,如果我們對本地網路上的主機進行簡單的 ping 測試,我們會看到延遲增加了 100 毫秒。延遲通常受核心時鐘解析度 (HZ) 的限制。

我們也可以在不更改 **qdisc** 的情況下導致延遲,為此請考慮以下所示的命令:

# tc qdisc change dev eth0 root netem delay 100ms 10ms

上述命令將導致新增的延遲為 100ms ± 10ms。

資料包丟失

我們可以使用百分比在 ‘tc’ 命令中指定資料包丟失。

考慮以下所示的模擬相同情況的命令:

命令

# tc qdisc change dev eth0 root netem loss 0.1%

上述命令將導致 1/1000(即 1/10 個百分點)的資料包被隨機丟棄。

更新於:2021-07-31

562 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.