推測含みます!
参考
【図解】NW遅延とゆらぎ(ジッタ)の違いと発生原因と調査~realtime(音声/動画)とbulkでの考え方~ | SEの道標
【図解】初心者向けQoSとキューの仕組み〜優先制御/帯域制御やToS/CoS,shaping/policingの違い, HW/SWキュー~ | SEの道標
ネットワークでなぜ遅延が生じるのか
遅延
NWレイヤでの遅延の種類
項目 | 説明 |
---|---|
伝搬遅延 (Propagation Delay) | 伝搬する電気や光が、媒体 (メタルケーブルや光ケーブル) を進むために必要な時間 処理時間はケーブルの長さ / 伝搬速度 伝搬速度例)ガラスの中の光は一般に190,000 km/s 前後 |
処理遅延 (Processing Delay) | NW 機器の NIC に入ってきたパケットのヘッダを書き換え、出力 NIC 用の Output Queueに格納するまでに掛かる時間 |
キューイング遅延 (Queuing Delay) | Output Queue (ソフトウェアキュー) に格納されたパケットが tx-ring (ハードウェアキュー) に到達するまで待つ時間 |
シリアル化遅延 (Serialization Delay) | 出力用 NIC がパケットを出力し始めてから出力し終わるまでに掛かる時間(電気信号に変換) 処理時間はパケットサイズ / インタフェース速度 |
補足情報
伝搬遅延の理論値
ネットワークでなぜ遅延が生じるのか
より引用
ジッタ(jitter)
・ジッタは遅延時間の変化度合い
・リアルタイムの音声・動画通信で影響大
リアルタイムの音声・動画通信システムは、音声/動画パケットを一定時間バッファに溜め、それから出力 (再生) することで遅延の影響を吸収する。
遅延が大きい場合→レスポンスは遅くなるが、音声/動画自体は品質良い(クリア)
ジッタが大きい場合→バッファが最適に制御できず音声/動画自体は品質悪化
シリアル化遅延
最大フレーム(1518バイト)の場合
帯域(Mb/s) | 遅延(ms) |
---|---|
1 | 12.304 |
10 | 1.2304 |
100 | 0.12304 |
1000 | 0.012304 |
10000 | 0.0012304 |
※計算式は以下
1518バイト+8バイト(プリアンブル)+12バイト(最小フレーム間隔)=1538バイト
1538÷(帯域[Mb/s]÷8×1000×1000)×1000
検証してみる!
10Mb/s,100Mb/s,1Gb/sで直結のサーバA,B間のPINGのRTTを確認する。PINGサイズを703バイトと1472バイトで確認する。
シリアル化遅延は以下の通り。
速度 | 703バイト | 1472バイト |
---|---|---|
10Mb/s | 0.615233ms | 1.230466ms |
100Mb/s | 0.0615233ms | 0.1230466ms |
1000Mb/s | 0.00615233ms | 0.01230466ms |
環境
結果
minの値
速度 | 703バイト | 1472バイト |
---|---|---|
10Mbs/s | 4.112 | 7.989 |
100Mbs/s | 0.783 | 1.011 |
1Gbs/s | 0.159 | 0.178 |
ログ
10Mb/s
# ping -s 1472 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 1472 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29141ms rtt min/avg/max/mdev = 7.989/8.002/8.029/0.011 ms # ping -s 703 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 703 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29150ms rtt min/avg/max/mdev = 4.112/4.213/4.330/0.064 ms
100Mb/s
# ping -s 1472 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 1472 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29148ms rtt min/avg/max/mdev = 1.011/1.027/1.091/0.018 ms # ping -s 703 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 703 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29677ms rtt min/avg/max/mdev = 0.783/0.803/0.863/0.015 ms
1Gb/s
# ping -s 1472 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 1472 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29680ms rtt min/avg/max/mdev = 0.178/0.209/0.258/0.021 ms # ping -s 703 192.168.0.251 -c 1 > /dev/null 2>&1 && nice -20 ping -s 703 192.168.0.251 -c 30 | tail -2 30 packets transmitted, 30 received, 0% packet loss, time 29674ms rtt min/avg/max/mdev = 0.159/0.199/0.249/0.022 ms
利用コマンド
# 10Mb/sに設定 ethtool -s enp0s25 speed 10 duplex full autoneg off # 1Gb/sに戻す時 ethtool -s enp0s25 autoneg on