PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

2台のPCを、LANケーブル1本でつないで大きなファイルを送る話

USBメモリを抜き差ししたり、クラウドに上げて落としたりしなくても、近くにある2台のコンピュータならEthernetケーブル1本で直接つないでファイルを渡せる、というのが元記事の話だ。しかも必要なのは難しい専用機材ではなく、ふつうのpatch cableと、少しのIP設定だけだという。記事はかなり短いが、ファイル転送の「当たり前」を見直す内容として面白い。ネットワークはインターネット接続のためだけではない、と筆者は言いたいのだと思う。

Ethernet 直結で IPv6 を振って、socat で流すだけの転送手順

元記事がまず示しているのは、2台のPCをEthernetで直結し、両方にIPv6アドレスを手で設定するやり方だ。送信側には fd42:dead:beef::1/48、受信側には fd42:dead:beef::2/48eth0 に割り当て、両方とも ip link set dev eth0 up でリンクを上げる。数秒待てば ping fd42:dead:beef::1 が通るので、ここで疎通確認ができる。記事には、icmp_seq=1 から 4 までの応答が 0.649 ms などのごく短い遅延で返ってくる例が載っている。

そのうえで、ファイル転送は socatdd を組み合わせて行う。受信側では socat - TCP6-LISTEN:1234 | dd status=progress > big_file.tar.gz を実行し、送信側では socat - 'TCP6-CONNECT:[fd42:dead:beef::2]:1234' < big_file.tar.gz を流す。要するに、受信側でポート1234を待ち受け、その標準入力に入ってきたバイト列をそのままファイルに書き込む。送信側は元ファイルを接続先へ送るだけだ。記事はこれがLinux向けのコマンド例だと断ったうえで、「このトリックはどこでも動く」としている。

速度についても具体的だ。ありふれたpatch cableとEthernetジャックでも、およそ900 Mbits/secondは出せるはずだとしていて、これは1分あたり6.7 GBに相当すると説明している。さらに高性能なNICなら桁違いに速くなるが、それでもUSBフラッシュメモリやクラウドストレージよりはずっと速い、と筆者は評価する。

記事はこの方法と他の転送手段も比較している。クラウド経由は、ネット回線の速度やクラウド事業者の帯域制限でかなり遅くなりがちで、しかもアップロードとダウンロードの2回ネットワークを通るので時間が倍になる。加えて、サーバーを用意していなければ費用もかかる。Wi‑Fiは直接TCPでつなぐ方法よりはいいが、実際の家庭環境では壁や干渉、距離の影響で、多くの「数ギガビット」級の宣伝ほどは出ない。リムーバブルストレージも速くないし、高速なものは高価で、しかもUSBはホスト/デバイスの区別があるため、ふつうはPC同士をただつないでもうまくいかない。

ただし記事の最後では、LinuxがUSB-C経由での接続に対応したらしいと追記している。ThunderboltかUSB 4に対応する2台のLinux機をつないで /dev/tbstreamX を使える可能性がある、という話だが、筆者は手元に完全対応のUSB-C機が1台しかなく未検証だと書いている。

そのうえで筆者は、結局のところEthernetこそが、安価なケーブルで、見知らぬ2台の機器同士を安定してギガビット級で結べる、いちばん普通の手段だと結論づける。しかもEthernetはトランスを使った真の差動伝送なので、RFIやグラウンド電位差にも強い。さらにTCP/IPスタックすら必須ではなく、スイッチのあるLAN上でも生のlink-layer frameでやり取りできるので、マイコンとのデータ移動にも向く、と筆者は見ている。

1分あたり6.7 GBという数字が示す、ローカル転送の強さ

この文章でまず印象に残るのは、意外なほど「地味な方法」が、実はかなり強いという点だと思う。クラウドやWi‑Fiの話になると、つい新しいサービスや高価な機器のほうに目が行く。けれどこの記事が押し出すのは、昔からあるEthernetを2本のPCの間に直接挿すだけでいい、という発想だ。しかも900 Mbits/second、1分で6.7 GBという目安は、感覚的にもかなり速い。大きな動画、VMイメージ、バックアップ、学習データの持ち運びなら、これで十分どころかかなり快適だろう。

ここで面白いのは、筆者が「ネットワーク=インターネット」という前提を外していることだ。多くの人にとってEthernetは家庭内LANの一部でしかないが、この記事では点と点を結ぶ単なる高速ケーブルとして扱われている。これは考えてみれば当たり前で、ケーブルはルータを通るためのものではない。ただ、日常ではあまり意識しない。その当たり前を、具体的なコマンドと速度感で再提示しているのがうまいと思う。

クラウドより速く、USBより素直という微妙に重要な位置

筆者はクラウド、Wi‑Fi、USBストレージを順に退けていくが、ここにはかなり実務的な感覚がある。クラウドは遠回りだし、帯域制限もある。Wi‑Fiは便利だが、安定して大容量を流す用途には向かない。USBストレージは一見手軽でも、実際には製品ごとの差が大きく、ケーブル品質やポート相性に左右される。しかもコピー元とコピー先の両方で読み書きするので、実効速度は半分になりやすい。筆者はこの「思ったより遅い」をかなり嫌っているように読める。

ここでEthernetの良さは、速度そのものだけではない。挙動が読みやすいことだと思う。リンクが上がる、pingが通る、TCPで流す。やることが単純で、変な例外が少ない。高価な機材を買う前に、まずケーブルを1本挟むだけでよい。技術的には古い手法でも、日常の面倒を減らす力は今でも強い。特に、たまに数十GBを移すだけの人にとっては、クラウドの設定や外付けドライブの管理よりずっと気楽だろう。

ただのネットワークではなく、機器同士をつなぐ共通言語としてのEthernet

もう一つ重要なのは、筆者がEthernetを「PC同士の転送」に閉じず、マイコンまで視野に入れている点だ。TCP/IPは便利だが、必須ではない。link-layer frameを直接やり取りできるなら、ソフトウェアの層を少し削って、より単純な仕組みでデータを運べる。これは組み込み機器や実験用の装置を触る人にはかなり効く考え方だと思う。ネットワーク技術を、Webアクセスのための道具ではなく、機械同士が話すための共通言語として見る視点がある。

さらに、Ethernetが差動伝送でトランス付きだという説明も地味に大きい。机の上でたまたまつないだ2台が、ノイズやグラウンドのズレに強く、安定して動く。派手さはないが、現場ではこういう「雑に扱っても壊れにくい」ことが一番ありがたい。筆者がEthernetを過小評価されていると感じているのも納得できる。新しい規格の話題は盛り上がりやすいが、実際に手を動かすと、最後に頼れるのはこうした素朴な仕組みだったりする。

この記事が刺さるのは、たまに大きなファイルを運ぶ人だと思う

このメモは、恒常的なネットワーク設計の話ではない。むしろ、「大容量ファイルを今すぐ向こう側へ移したい」人向けの実用メモだ。しかも対象は、家の中や机の上で数メートル離れた2台のマシンのような、いちばん身近な場面だろう。そういう場面でわざわざクラウドを経由したり、外付けドライブを買い足したりするより、Ethernetケーブル1本で済ませるほうが合理的だ、というのが筆者の立場だ。

同時に、この文章は「今ある道具の別の使い道」を見つける楽しさも伝えている。Ethernetは古い、と思っている人ほど見落としやすいが、実際には速く、安く、堅い。最新の技術を追うだけではなく、既存のインフラを別の目的に使い直す発想は、かなり実践的だと思う。特に、家庭内でちょっとしたデータを動かすだけなのに、毎回手間をかけていた人には、かなり響くはずだ。


参考: Technical note: transfer files over an ethernet patch cable

同じ著者の記事