pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


フレッツ光のIPoE接続で速度が出ない気がするのでLANケーブルのパフォーマンスを測ってみる

インターネット向けのスループットは次のようなサイトで計測できますが、IPoE IPv6接続の場合は有線なら通常は100Mbitを超える速度が出ると思います。

Googleのスピードテスト

Netflixのfast.com

Speedtest.net

しかし実測値が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でリンクする場合があるようです。手元で調べた範囲では、WindowsRealtekNICだとケーブルのスペック通りにリンクするみたいですが、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で取得したい場合はこちら

https://social.technet.microsoft.com/Forums/ja-JP/7ceaab5f-8ac1-48e1-a2a5-594c6e354601/windows71239112289lan123952550932154123731242812390123561242712522?forum=w7itprogeneralja

Linux

ethtoolがあれば ethtool "デバイス名" でリンク速度を確認できますが、なくても dmesg の内容から確認できます。

$ dmesg | grep -i "link" | grep -i "up"
[75454.820345] eth1: link up (1000Mbps/Full duplex)