MkItYs

MkItYs > ネットワークとサーバを作る > 

images

パケット通信(ネットワーク利用の公平性)

images

- 2022.06.18

たくさんのコンピュータやデバイスがネットワークを使ってやり取りするとき、それらが公平にネットを使えるよう、データを短く区切って送るやり方が採用されました。

パケット通信


ネットワークを使うのがただ1組の機器なら、それらをつないでデータを流せばいいだけですーーじっさい、それらがネットワークを占有してもだれも文句を言いません:

images

でも、ネットワークを2組以上の(複数の)機器が使い始めたらどうでしょう? ある組の機器がネットを占有してしまえば、ほかの組から文句が出ます:[※1][※2]

images

※1
この図では、データ(シグナル)が<ゆっくりと流れている>ように描いていますが、正確ではありません(それぞれのシグナルは光速に近い速さで相手に到達するので、伝送にかかる時間はほぼ瞬間的です)。これら黒色の線は、(灰色の線の)伝送路を占有する時間をあらわしていると考えてもらうと、より正確なイメージになります。
※2
伝送速度が光速に近いといっても、ケーブルの場合は媒体中をとおるので、じっさいの速さは空間中の2/3ほどになります(それでも1秒間に地球を5周してしまうほどの速さですが……これは光ケーブルであっても同じです)。なお<通信速度>の違いは、おもに伝送路の帯域幅(周波数の幅)の違いによります(周波数が大きいほど、送信データの<密度>を大きくできます)。

ここで、機器どうしの通信の<公平性をどうするか>、という問題が出てきます。

まず考えられる解決策は、それぞれの組が<応答のあるときだけデータを流す>、というものでしょうか:[※3]

images
images

※3
コンピュータどうしがやり取りする場合、それは(電話のような切れ目のない会話が続くようなものではなく)、途切れ途切れになりがちです(たとえば、あるコンピュータがべつのコンピュータに、ある計算をやってほしいと依頼したとして、それが複雑な計算なら、返事にはそれなりの時間がかかります)。

しかしこれで問題が解決するわけではありませんーーやり取りが短いものならともかく、もし返事がとても長いものだったら……けっきょくほかの組は、その長い返事が終わるまで待つしかありません。そして返事の<長さ>に制限がない場合、ほかの組は、待ち時間がどれくらいになるかも分からない、という状況になります:

images

そこで、データを最初から最後まで流し続けるのでなく、<いくつかの決まった長さに区切る>、という案が出てきました。

そうすることで、送り合うデータの長さに応じて、それぞれの組がネットワークを<公平に>使うことができますーー同じような長さのデータなら、それらを交互に送ることになります。長いデータを送る組と短いデータを送る組があれば、短い組は、長い組の<隙間>をぬって、データを送ることができます:

images
images

この区切られたデータのひとつひとつを、<パケット>と呼びます。そして、このようなデータのやり取りのしかたを、<パケット通信>と呼びます。[※4]

そしてパケット通信は、データのやり取りを仲介する中継機(ルータ)の負担を、軽くしますーーデータのひとつひとつが短いため、最低でもその長さを処理できるだけの性能があればいいからです。

もちろん、パケット通信には欠点もあります。それは、それぞれのパケットが順番に届くとはかぎらず、また途中で失われたり/同じものが届くこともある、ということです(低い信頼性)……ただこの点については、通信の信頼性をどこで確保するかという側面があるので、終端のノードをふくめた全体の信頼性が低くなるということでもありません(これについては、別掲の<エンドツーエンド原理>で説明します)。

いずれにせよ、データを送信するときの公平性、データを処理するときの低負荷、これが、インターネットの拡大に大きく寄与しています。[※5][※6]


※4
1コの伝送路(1本のケーブルや1コの電波帯域)で、同時に複数のデータ(シグナル)を送る技術を多重化といいます。パケット通信は、この多重化技術のひとつに位置づけることができます(非同期の時分割多重化)。電話網などは、またべつの多重化技術を使って、たくさんの利用者がいっぺんに通話することを可能にしています(複数の多重化技術を併用しており、パケット通信もそのうちのひとつです……なお日本のNTT東日本・西日本は、2024年以降、(局内の)固定電話網をすべてIPによるパケット通信に切り替えることを決定しています)。
※5
パケット通信の発案〜採用には、その出自から紆余曲折がありました:
アメリカの空軍が<核戦争にも耐えられるネットワーク>の研究をランド研究所に委託し、1962年にボール・バランが研究結果を報告しています。その解決方法が、現在のパケット通信の原型でした。この報告は1964年に論文として公表されたものの、あまり顧みられなかったようです……
アメリカの国防省は初期のインターネットの研究に出資していましたが(これがARPANET として形になるのは1969年)、ただ戦争に直接かかわる予算として計上したものではなかったようです(局長の思惑は違っていたかもしれませんが)ーーすくなくとも研究者たちの目的は、自分たちの<コミュニケーション向上>でした。
現在のパケット通信は、1965年にドナルド・デービスが<通信のコスト削減>のために考案〜公表したものが元になっています。これが採用されたのは、当時のARPANET の研究者たちの目的に合っていたためでしょう。ただしこのアイデアは、バランの出した結論とほぼ同じものでした。
※6
バランの示した案は、たしかに現在のパケット通信そのものです。ただよく分からないのは、それが耐障害性ーーひとつのところに問題が起きても、べつのところで通信できるようにするーーへの対策として出てきたところです。じっさい(電話網のような)サーキットでも、交換機とネットワークの冗長性から、耐障害性を上げることはできるからです(ルーティングによりパケットを別の経路で送ることができる、というのは、パケット通信のむしろ副次的なものです……バランはそれを「経路がバラバラなのでかりに通信が盗聴されても解読が難しくなる」とも訴えたようですが、それも副次的なものでしょうし)……この点、ネットワーク利用の効率性からパケット通信を考えたドナルド・デービスの案の方が、素直にその道筋を追うことができます(上の紹介のしかたも、デービスの検討の過程に沿ったものです)……バランの案はたしかに先進的なものでしたが、容易に受け入れられなかったのは、目的と対策の対応がよく分からない、という点にもあったような気もします……