orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

通信は距離が長くなると遅くなるということを感覚的につかむ

 

 

私は文系の未経験からのIT業界入りなので、あまり工学的な感覚が身に付いていなかった。IT業界あるあるでも、え、どういうことだろ、みたいに立ち止まることも多かった。

その一つに「距離」がある。ネットワーク帯域が100Mbpsと1Gbpsだと、10倍速いんだな、ってことは勉強すればわかる。でも、じゃあグローバル展開するクラウドで、ブラジルのデータセンターと日本のデータセンター、バックボーンは100Gbpsでつながってます、とか言われたときに、じゃあ100Gbps出るのかと思いきや、出ない。

ネットワーク帯域が十分あるのに、実際Windows仮想マシンを両側に立てて、ファイル共有でファイルを転送したりすると、大したスピードが出ないのである。今のOSはそれでも色々と工夫をしているみたいだから昔よりはスピードが出るようになったけど、昔はひどいものだった。

なぜ、十分に帯域があるのに遅いのか。これはネットワークの仕組みに依存する。送りたいデータを相手に向かって垂れ流しているわけじゃなく、パケット、という小さな荷物にして送るのは良く知られている。そのパケットに順番を付けて相手に投げて、相手に届く時は順番がいろいろばらつくので、XX番届いてないよ、みたいなやりとりをする。で、あまりにも荷物を投げつけすぎると受け側の荷物待機所(バッファ、と言われる)が足りなくなるので「おいおいもう送らないでくれ」みたいな制御をして、相手の通信を止めたりする。

で、日本と韓国、くらいの距離だとそのやりとりが速いので次々と荷物を送ったり止めたりができるが、日本とブラジル、までになってくるとこのやり取りに時間がかかる。

極端なことをいえば、1送りました、1受け取りました、みたいな会話の連続が通信だとすると、投げかけて返ってくるまでが遅くなる。昔の国際電話で、話しかけたら遅れて返事が来る感じである。ああやって、荷物の受け渡しに時間がかかることで、どんなにネットワーク帯域、つまり道の幅が広くても、なかなか相手が受け取ったことを確認するのに時間がかかり、荷物を送れないという現象となる。

TCPは相手がきちんと受け取ったかを厳密に判断するので正確だが距離に弱い。UDPはあまり相手が正しく受け取ったかを気にしないので速いが不正確と言われてきた。

UDPにある程度カスタマイズしたプロトコルを付け加えて、TCPの通信を速くする工夫も結構開発されている。

とまあ、距離が長くなると、どんなに帯域の広いネットワーク機器を使っても、通信速度が出ないと言うのは、実際パブリッククラウドでも経験することができる。リモートデスクトップを仮想マシンにすると実際、モッサリする。

だから、例えばデータベースとアプリケーションサーバーの間は距離が短いことが前提となる。アプリケーションサーバーはデータベースにデータの読み書きを頻繁に要求するので、距離が長いとアプリケーション自体がもっさりするから、である。

 

こういう感覚はインフラエンジニアにとっても重要なのだが、近未来には常識ごとひっくり返るかもしれないと言う話がある。

 

xtech.nikkei.com

 NTTとNTTデータグループは2024年4月12日、英国と米国の国内で実証実験を実施し、NTTグループが所有する約100キロメートル離れたデータセンター(DC)間を1ミリ秒以下の低遅延で接続することに成功したと発表した。同社の次世代ネットワーク構想「IOWN(Innovative Optical and Wireless Network、アイオン)」の光通信インフラ「オールフォトニクスネットワーク(APN)」を利用して実現した。

 

こういった新技術で、距離が離れても遅延が少なくなると、どんどん場所の制約が少なくなっていく。データベースは自国に置いて、他国でアプリケーションサーバーを構築する、みたいな例もできるようになっていくだろう。

ダメだ、と言われた設計が、こういった新技術でひっくり返って行くのは見ていて楽しいのだが、昨今そういうことが起きにくくなっている。いろんな枯れた技術は、実装実績が多すぎて、新しい技術が中々流行らないるからだ。

IOWNか、がんばっている人たちもいるんだな、と感心する。