10mbの時の結果が納得できず。
ネットワークネゴシエーションまわりの設定を見直す。それでもNGなら情報収集する
直結とスイッチ経由でRTTにどれだけ差がでるか?を確認。
以下の接続でホストA→ホストBにPING(サイズ703バイトと1472バイト)を送信して、それぞれ10Mb/s、100Mb/s、1000Mb/sの速度の場合のRTTを確認。
・ホストA→スイッチ→ホストB(スイッチ経由)
・ホストA→ホストB(直結)
※ホストAのIPは192.168.0.250、ホストAのIPは192.168.0.252
※1472バイトは最大MTUサイズを想定。703バイトにした理由は後述。
想定
RTTは、1リンクあたりにかかる時間が加算され決定される。
スイッチ経由の場合はリンク数2個、直結の場合はリンク数1個
データ転送速度は、各リンクの速度・PINGサイズ毎に異なる。
速度 | 703バイト | 1472バイト |
---|---|---|
10Mb/s | 0.615233ms | 1.230466ms |
100Mb/s | 0.0615233ms | 0.1230466ms |
1000Mb/s | 0.00615233ms | 0.01230466ms |
※上記の根拠は以下URLを参照。
NWスループットについて - pikesaku’s blog
・703バイトにした理由は、1フレーム転送にかかる時間が1472バイトの場合の半分にする為。
・上りと下りにかかる時間も考慮する必要あり。
想定イメージ
例) 10Mb/s、1472バイトの場合
検証結果
※pingを300個で平均RTTを記載。ログは後述。
接続 | PINGサイズ | スイッチ経由 | 直結 | 差異(結果) | 差異(想定) |
---|---|---|---|---|---|
10Mbs/s | 703バイト | 5.484 | 4.276 | 1.208 | 1.230466(0.615233*2) |
10Mbs/s | 1472バイト | 10.496 | 7.986 | 2.51 | 2.460932(1.230466*2) |
100Mbs/s | 703バイト | 0.977 | 0.853 | 0.124 | 0.1230466(0.0615233*2) |
100Mbs/s | 1472バイト | 1.331 | 1.095 | 0.236 | 0.2460932(0.1230466*2) |
1000Mbs/s | 703バイト | 0.314 | 0.265 | 0.049 | 0.01230466(0.00615233*2) |
1000Mbs/s | 1472バイト | 0.358 | 0.303 | 0.055 | 0.02460932(0.01230466*2) |
考察
・10,100Mb/sでは、想定通り。
・1000Mb/sだと、数字が合わないが、0.0Xmsレベルの違いになる為、考え方としては誤りはないと想定される。
https://www.slideshare.net/junkato1272/ss-70431661
https://www.n-study.com/qos-fundamentals/endtoend-delay/
上記URLに遅延の考え方の記載あり。
・処理遅延
受信、ルーティングやスイッチング処理、出力IFにパケットをキューイングするまでの時間
・キューイング遅延
パケットが出力インタフェースのキューに入っている時間
Qosは、この時間を制御して実現
・シリアル化遅延
パケットをインタフェースから送信するために電気信号や光信号、電波など物理的な信号に変換するための時間
シリアル化遅延=パケットサイズ/帯域幅
※正確には、パケットサイズにプリアンブル・最小フレーム間隔も含めた方が良いのかな?
検証してるたの、まさしくこれ!
・伝搬遅延
物理的な信号が伝送媒体を通って次のデバイスまで到達するために必要な時間
伝送媒体によって異なる
目安として100マイルあたり1ms
1kmあたり約6μs
ノーマルユースでは、無視してOKな小ささ。
ただし、国際間や衛星通信など非常に長距離な通信を行うときには伝搬遅延は大きくなる
検証結果ログ
スイッチ経由
・10Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299472ms rtt min/avg/max/mdev = 5.379/5.484/5.574/0.040 ms
・10Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299463ms rtt min/avg/max/mdev = 10.336/10.496/10.557/0.026 ms
・100Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299350ms rtt min/avg/max/mdev = 0.863/0.977/1.037/0.022 ms
・100Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299429ms rtt min/avg/max/mdev = 1.263/1.331/1.398/0.023 ms
・1000Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 306188ms rtt min/avg/max/mdev = 0.241/0.314/0.386/0.026 ms root@black:~#
・1000Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 306169ms rtt min/avg/max/mdev = 0.274/0.358/0.424/0.027 ms
直結
・10Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299407ms rtt min/avg/max/mdev = 4.059/4.276/4.374/0.059 ms
・10Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299405ms rtt min/avg/max/mdev = 7.794/7.986/8.116/0.086 ms
・100Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 306185ms rtt min/avg/max/mdev = 0.786/0.853/0.903/0.021 ms
・100Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 tail -2 300 packets transmitted, 300 received, 0% packet loss, time 299361ms rtt min/avg/max/mdev = 1.038/1.095/1.172/0.022 ms
・1000Mb/s・703バイト
# ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 306152ms rtt min/avg/max/mdev = 0.140/0.265/0.335/0.028 ms
・1000Mb/s・1472バイト
# ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2 300 packets transmitted, 300 received, 0% packet loss, time 306167ms rtt min/avg/max/mdev = 0.232/0.303/0.376/0.028 ms
利用したコマンド
ethtool -s enp0s25 speed 10 duplex full autoneg off ethtool -s enp0s25 speed 100 duplex full autoneg off ethtool -s enp0s25 autoneg on ping -s 703 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 703 192.168.0.252 -c 300 | tail -2 ping -s 1472 192.168.0.252 -c 1 > /dev/null 2>&1 && ping -s 1472 192.168.0.252 -c 300 | tail -2