フレッツ光のIPoE接続で速度が出ない気がするのでLANケーブルのパフォーマンスを測ってみる
インターネット向けのスループットは次のようなサイトで計測できますが、IPoE IPv6接続の場合は有線なら通常は100Mbitを超える速度が出ると思います。
しかし実測値が100Mbitを下回る場合はLANケーブルが足を引っ張っているかもしれません。ONUとルータの間のケーブルが古いままだとギガビットの速度でリンクされないことがあり、この場合は本来の速度が発揮されません。
そこで、LANケーブルのスループットを実測してみる方法を考えてやってみました。
実測する
macOS or Linuxをインストールした2台のPCがある場合は、dd, nc, pv コマンドを組み合わせてスループットを実測できます。
まず、受け側は次のように実行します。UDP 8080のパケットフィルタリングを accept にしておく必要がある点に注意してください。
nc -l -u 8080 > /dev/null
送り側は次のように実行します。IPアドレスは受け側のIPアドレスです。イーサネットの場合は受け側のリンクローカルアドレスを指定するか、または明示的に固定のPriveteアドレスを受け側、送り側に設定してください。WiFiの場合も受け側のIPアドレスを確認して指定します。
dd if=/dev/zero | pv | nc -u 169.254.58.245 8080
受け側、送り側の順番にコマンドを実行すると、送り側のターミナルには次のように速度が表示されます。
1.38GiB 0:00:28 [50.3MiB/s] [ <=> ]
この数値は単位がメビバイトなので、メビビットに変換するには8倍してみると、50.3MiB*8 = 402.4Mibit ですね。実測値がこれくらい出ていれば問題ないと思います。
しかしリンク速度が100BaseTになると、この数値がさらに1/10とかに下がッタリするワケなので、そんな速度しか出ないケーブルをONUとルータの間に使っていると、それがインターネット側速度のボトルネックになります。IPoE接続しているのに速度が出ない場合は、ケーブルのスペックを確認したり、実測したりしてみて、不適切なケーブルは交換するのが良いでしょう。
手元の環境では実際にケーブルが古かったので、交換したところ160Mibitくらいの速度が出るようになりました。(交換前は80Mibitくらい)
参考:イーサネットのリンク速度を確認する
実測しない場合でも、イーサネット(有線LAN)の場合は接続のリンク速度は確認できます。
ただしケーブルのスペック上の速度と実際のリンク速度は必ず一致するわけではなく、CAT5のケーブルでも1000baseTでリンクする場合があるようです。手元で調べた範囲では、WindowsのRealtekのNICだとケーブルのスペック通りにリンクするみたいですが、macOSだとCAT5のケーブルで1000baseTでリンクする場合もありました。このため、リンク速度がGbEだからといって安心してはいけないかもしれません。
macOS
macOSの場合は ifconfig でリンク速度を確認できます。
$ ifconfig en4 en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=40b<RXCSUM,TXCSUM,VLAN_HWTAGGING,CHANNEL_IO> ether 34:95:db:xx:xx:xx inet6 fe80::c4f:xxxx:xxxx:xxxx%en4 prefixlen 64 optimistic secured scopeid 0x4 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active
Windows10
設定アプリの「ネットワークとインターネット」→「イーサネット」の「プロパティ」にリンク速度が表示されています。
PowerShellで取得したい場合はこちら
Linux
ethtoolがあれば ethtool "デバイス名" でリンク速度を確認できますが、なくても dmesg の内容から確認できます。
$ dmesg | grep -i "link" | grep -i "up" [75454.820345] eth1: link up (1000Mbps/Full duplex)