Last-modified: 2016-12-18 (日) 15:00:44
iperf3/チートシート

サーバー側

待ち受け

Everything is expanded.Everything is shortened.
  1
  2
-
!
# TCP
iperf3 -s

クライアント側

送信

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
-
!
 
-
!
 
-
!
# TCP
iperf3 -c <ホスト> -p <ポート(変更していれば)>
 
# UDP
iperf3 -c <ホスト> -p <ポート(変更していれば)> -u
 
# 送信サイズ指定(デフォルト値: TCP 128KB, UDP 8KB)
iperf3 -c <ホスト> -l <送信サイズ>

クライアント送信時点でIPフラグメントする閾値を確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
|
!
 
 
-
|
!
 
-
!
# クライアントサイドの話しなので、自身のMTUを確認すれば済むが...
# e.g, 
netsh interface ipv4 show interfaces
ip addr
 
# iperf3を使う場合は、送信サイズを調整して試行していく(例ではUDPだがTCPでも可能)
# 確認は、クライアント側のパケットモニタか、クライアント側のnetstat -sによるレポート
iperf3 -c example.com -u -l 1450
 
# e.g, wiresharkのフィルタ
ip.addr == <IP> and udp

こんな感じでIPフラグメントが発生していることもわかるし、自動でマージしたのも表示してくれる

2016-12-18 13_34_05-フォト.png

サーバー到達時点でIPフラグメントしてくる閾値を確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
-
|
|
|
!
 
-
!
-
!
 
 
# 経路上のMTUが分からないときに、IPフラグメントする目安を確認
# iperf3の使い方自体は、クライアント送信時点でIPフラグメントする閾値を確認と同様
# 送信サイズを調整して試行していく
# 確認は、サーバー側のパケットモニタか、サーバー側のnetstat -sによるレポート
iperf3 -c example.com -u -l 1450
 
# e.g,
tcpdump host <IP> -v
# 出力例
04:39:38.156122 IP (tos 0x0, ttl 115, id 26808, offset 0, flags [+], proto UDP (17), length 1452)
    example.com.54332 > 10.0.0.50.5201: UDP, length 8192