すのふら

日々の備忘録

日経ネットワークの「インターネットができるまで」メモその1

日経ネットワーク2018年5月号の「インターネットができるまで」がよくまとまっており学びがあったので、学んだところをメモする。

構成としては以下となっている。

  1. プロローグ:たった4拠点から始まった
  2. TCP/IP:データを小包に分けて送る
  3. IPアドレス:みんなが自分だけの住所を持つ
  4. ルーティング:事故が起こったら道順を変える
  5. DNS:通信相手を名前で指定する
  6. Web:世界中で情報を共有する

1についてはインターネットの歴史、2~6についてはOSI参照モデルネットワーク層トランスポート層とアプリケーション層について書かれている。


プロローグ:たった4拠点から始まった

ここではインターネットの起源であるAPRANET*1についてと、回線交換とパケット交換の違いについて、現在のインターネットについて書かれている。


読んだ感想

回線交換とパケット交換の違いについてはイラストが分かりやすかった。

回線交換方式はひとつの端末が通信を独占してしまって、使ってないときもその通信回線が独占されっぱなしでもったいない。
だからデータをパケットという小さい範囲で区切って送れば無駄な時間なくなっていいんじゃないかみたいな考え方。
そうすることで異なる端末からパラレルで送信できるし、あて先が同じパケットを別経路で送ったっていい。冗長化も生まれてきた。

今までパケット交換方式のことは知っていたけど、回線交換方式を知っておくことで歴史の流れから特徴がうまくつかめた気がした。


輻輳について

輻輳というワードいつも忘れがちなのでしっかりメモしておく。

輻輳とは、さまざまな物が1カ所に集中することで、通信分野では、電話回線やインターネット回線にアクセスが集中することをいう。輻輳が起きると回線がつながりにくくなったり、集中した通信システムがダウンするといった現象が起きる。システムのダウンを避けるために、輻輳が起きそうになった場合には通信を制限する輻輳制御という措置が取られる

輻輳 | 用語集 | KDDI株式会社


俺たちがときどき感じてるネットつながんねえな感じが輻輳状態ということ。しっかり覚えておく。

でもって、輻輳に関連して、フロー制御と輻輳制御がある。ともにトランスポート層

フロー制御

データをパケットという塊で相手に送るが、送信側がパケットを投げまくるけど受信側がさばききれないという場合もある。
さばききれないと取りこぼしてしまうのでTCPの場合、後でもう1度再送してもらわないといけない。

イメージ的には工場のラインで、流れてくるものがすごい多かった場合そりゃさばけるわけない。だけど、さばかなきゃいけないので漏らしたものはあとでまた流しなおしてもらわなければいけない。

それって正直無駄。
なので、受信側が送信側に受信可能なデータサイズを送るようになっている。これがウィンドウサイズ。
このウィンドウサイズによって送る量をコントロールするっていうのがフロー制御。


輻輳制御

輻輳制御っていうのが、通信開始したときにじゃあパケット送るかって大量のデータを送り付けてもネットワークが混んでいる可能性がある。

2車線道路で道路が混雑しているときに2車線すべて使う車が来たとしたら、クソ迷惑。
それやめましょうねってTCPだとスロースタートというアルゴリズムで通信量は少なくしている。

また、何らかの原因でネットワークが混雑している可能性があるので、その時にも通信量を少し抑えましょうねっていうのが輻輳制御。

詳細は『マスタリングTCP/IP 入門編』を参照のこと

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版


インターネットの歴史がいまいちわからなかったので整理

登場用語

まず用語。
ISPはInternet Service Providerの略。ドコモとかauとかのこと。
ISPはその規模によってTier1とTier2で分けられていた。日本のTier1はNTTコミュニケーションズのみ*2
Tier1とTier2の間はIX(Internet eXchange Point)がいる。ISP通しの中継をやっているもので、各プロバイダ間、プロバイダ(Tier2)とNTT(Tier1)の中継を行っている。*3


インターネットの歴史について

以前10年位前まではTire1とTire2で明確に階層構造となっており、Tire2同士の接続は無償で相互接続を行える(ピアリング)。Tire2からTire1に対しては了以金を支払って接続(トランジット)していた。

最近はこの階層後続が崩れ始めている状態。

原因は米グーグルや米Akamai、米Facebookなど大手のトラフィックを持つハイパージャイアントと呼ばれる企業がCDN(Contents Delivery Network)をやり始めたから。

CDNというのは、たくさんの人がインターネットを使うようになってアクセスも増えてくる。そうしたときに当然サーバにアクセスが集中するんだけど、輻輳制御とかいちいちやっていたのでは遅くてしょうがない。
なので、CDNとしてサーバを分散させたほうがアクセスが集中しないでいいよねっていう考え方。*4*5

ハイパージャイアントが何を変えたかというと、Tier2はわざわざ金払ってTier1にトランジットしなくても、グーグルとかAkamaiとかCDNに直接ピアリングでよくなったということ。

この点でいいところはピアリング、つまり金払わなくていいということ。ハイパージャイアントの収入はコンテンツホルダだったり広告費だったり。
逆にハイパージャイアントのネットワークが落ちた場合、ウェブサイトに接続できないという大規模障害は発生する可能性がある。

[参考]
https://www.janog.gr.jp/meeting/janog33/doc/janog33-traffic-kamei-1.pdf
大規模な接続障害、Googleが謝罪 「ネットワークの誤設定」原因 - ITmedia NEWS
大規模ネット障害になっても不思議じゃない?「BGP」の仕組みとリスク | 日経 xTECH(クロステック)


ながくなったので、次で「TCP/IP:データを小包に分けて送る」以降の学びをメモしていく。