Webエンジニアのブログ

「マスタリングTCP/IP 入門編」要約 第1章「ネットワーク基礎知識」


マスタリングTCP/IP 入門編 第5版」の第1章の要約です。

コンピューターネットワークの登場の背景

コンピュータの普及

コンピュータをネットワークに接続せず、コンピュータ単独で使用する状態のことをスタンドアロンといいます。

しかしコンピュータが進化するにつれ、スタンドアロンではなく、複数のコンピュータを互いに接続して使うコンピュータネットワークが考え出されました。 これによって、個々のコンピュータに格納されている情報を複数のコンピュータで共有することができます。

コンピュータネットワークは、ネットワークの規模によってWANやLANなどに分類されることがあります。 WAN(Wide Area Network)とは、地理的に離れた広範囲に及ぶネットワークのことです。 LAN(Local Area Network)とは、フロア内や1つの建物の中など、比較的狭い地域の中でのネットワークのことです。

情報通信環境

初期のコンピュータネットワークは、管理者が指定した特定のコンピュータ同士を接続したものでした。 つまり、同じ会社や研究所が所有するコンピュータ同士を接続するなどの私的な(プライベートな)ネットワークでした。

これらの私的なネットワークを相互に接続することが活発になり、公共ネットワークとしてインターネットが利用されるようなると、ネットワークの利用環境に劇的な変化が訪れました。

こうした流れで、インターネットという世界規模のコンピュータネットワークが構築され、現在の統合的な情報通信環境が実現されました。

コンピュータとネットワーク発展の7つの段階

TCP/IPを考える時、コンピュータとネットワークの発展を抜きにして考えることはできません。

バッチ処理

多くの人々にコンピュータが利用されるようになるためには、バッチ処理形式のコンピュータが登場する必要がありました。 バッチ処理というのは、処理するプログラムやデータなどを、まとめて一括で処理する方式です。

この頃のコンピュータはとても高価で巨大であったため、コンピュータはコンピュータの管理や運用を専門に行う計算機センターにあるのが一般的でした。 そのため、ユーザーがプログラムを実行したい場合は、プログラムやデータを打ち込んだカードやテープを持って計算機センターに行かなければなりませんでした。

タイムシェアリングシステム(TSS)

バッチ処理の次に登場したのが、1960年台に現れたタイムシェアリングシステムです。 TSSは、1台のコンピュータに複数の端末を接続し、複数のユーザーが同時にコンピュータを利用できるようにしたシステムです。

この頃に、コンピュータはインタラクティブ(対話的)な操作が可能になり、格段に使い勝手が向上しました。 また小型のミニコンピュータも登場し、オフィスや工場などに少しずつ導入されていきました。

コンピュータ間通信

TSSでは、コンピュータと端末が回線で結ばれただけで、コンピュータとコンピュータが接続されたわけではありません。

1970年台になると、コンピュータの性能向上や小型化が進み、価格も急激に安くなりました。 その結果、研究機関だけでなく一般の企業にもコンピュータが導入されるようになってきました。 そしてコンピュータで事務処理を行うために、コンピュータとコンピュータの間で通信を行う技術が生み出されました。

これまではデータの移動はフロッピーディスクなどの外部記録媒体に保存して、それを物理的に輸送しなければなりませんでした。 しかしコンピュータ間通信を可能にする技術が登場すると、複数コンピュータ間で分散して処理をしたり結果をまとめることもできるようになりました。 また利用者の目的や規模に合わせた柔軟なシステムの構築や運用ができるようになりました。

コンピュータネットワークの登場

1970年代の初期にはパケット交換技術によるコンピュータネットワークの実験が開始され、1980年代になるといろいろな種類のコンピュータを相互に接続できるコンピュータネットワークが登場しました。

この頃にウィンドウシステムが登場し、コンピュータの画面上で複数のウィンドウを開くことができるようになりました。 ウィンドウシステムとコンピュータネットワークが結びついたことにより、私達はひとつのコンピュータでネットワークの中のあちこちにある資源を活用できるようになりました。

インターネットの普及

1990年代はじめには、情報処理に力を注ぐ企業や大学にて一人に1台ずつコンピュータが割り当てられ、ユーザーがコンピュータを専有して使用できる環境になってきました。

その頃、マルチベンダ接続という色々なメーカーの機器やソフトウェアを組み合わせ、ネットワークを構成することが流行しました。 この流行の流れは、メーカーが異なるコンピュータを相互に接続して、安価にシステムを構築しようというものでした。 この異機種の機器を接続するために使われたのがインターネットの通信技術、特にTCP/IPが注目を集めました。

同じ時期、インターネットメールの利用と、WWW(World Wite Web)による情報発信のブームが起こり、企業や一般家庭にインターネットが普及し始めました。 この流れを受けて、各コンピューターメーカーはこれまで自社製品で独自のネットワーク技術を使っていたものを、インターネット技術に対応させるようになりました。

その頃に一般家庭向けのネットワーク接続サービスや各種のネットワーク製品が登場するようになりました。

インターネット技術中心の時代へ

インターネットは、別々に発展してきた多くの技術を全て取り込む方向に進んでいます。

単につなぐ時代から安全につなぐ時代へ

インターネットは全世界の人々がつながる唯一のネットワークへと進化を遂げました。 しかしコンピュータウィルスによる被害や個人情報の漏洩、詐欺事件などのトラブルが増えています。 そのため現在では安全につなぐ、ということが強く求められています。

プロトコルとは

コンピュータネットワークや情報通信の世界ではプロトコルという言葉がよく使われます。 プロトコルとは、コンピュータ同士がネットワークを利用して通信するために決められた約束ごとという意味です。 代表的なプロトコルは、インターネットでも利用されているIP、TCP、HTTPなどです。

さまざまなプロトコルを体系的にまとめたものをネットワークアーキテクチャということがあります。TCP/IPも、IP、TCP、HTTPなどのプロトコルの集合体です。

パケット交換でのプロトコル

パケット交換とは、大きなデータをパケットと呼ばれる単位に分割して送信する方法です。 パケット(Packet)は日本語で小包という意味です。

コンピュータ通信ではデータを分割した1つのパケットを作り、そこに送信元コンピュータと宛先コンピュータのアドレスを書き込んで、通信回線に送り込みます。 アドレスが書き込まれる部分を、パケットのヘッダと呼びます。

また大きなデータをいくつかのパケットに分けた場合には、それぞれのパケットにもとのデータのどの部分であるかを示す番号も書き込まれます。

プロトコルは誰が決める?

コンピュータ通信が始まった当初は、体系化や標準化が考えられていませんでした。 1970年代から各コンピュータメーカーが独自のネットワークアーキテクチャを発表していましたが、異なるメーカーの製品では互換性がなく、通信することができませんでした。

このような問題を解決するため、ISO(国際標準化機構)は、国際標準としてOSI(Open Systems Interconnection、開放型システム間相互通信)と呼ばれる通信体型を標準化しました。 現在OSIの定めるプロトコルは普及していませんが、OSIプロトコルを設計する際の指針として提唱されたOSI参照モデルはネットワークを考えるときによく使われます。

本書で説明するTCP/IPはISOの国際標準ではありません。TCP/IPは、IETF(Internet Engineering Task Force)で提案や標準化作業が行われているプロトコルです。 大学などの研究機関やコンピュータ業界が中心となって標準化されてきました。

TCP/IPはインターネット上のデファクトスタンダード(事実上の標準)として世界中でもっとも広く使われている通信プロトコルです。 標準化されていることによって、今ではこれに準拠すれば全ての機器が相互に通信することが可能になります。

プロトコルの階層化とOSI参照モデル

ISOが提唱した指針であるOSI参照モデルでは、複雑なネットワークプロトコルを7つの階層に分け、機能を分割しました。

各階層は、階層から特定のサービスを受け、上位層に特定のサービスを提供します。 上位層と下位層の間でやり取りするときの約束ごとをインターフェースと呼び、通信相手の同じ階層とやりとりするときの約束ごとをプロトコルと呼びます。

階層化をすることで、各階層を独立なものとして扱うことができ、責任の分岐点も明確になるという利点があります。

OSI参照モデルの各層の役割

7. アプリケーション層

利用されるアプリケーションの中で通信に関係する部分を定めています。 ファイル転送や電子メールなどを実現するためのプロトコルがあります。

6. プレゼンテーション層

アプリケーションが扱う情報を通信に適したデータ形式にしたり、下位層から来たデータを上位層が処理できるデータ形式にするなど、データ形式に関する責任を持ちます。

5. セッション層

コネクションの確率や切断、転送するデータの切れ目の設定など、データ転送に関する管理を行います。

4. トランスポート層

宛先のアプリケーションにデータを確実に届ける役目があります。

3. ネットワーク層

宛先までデータを届ける役割を持ちます。 宛先は複数のネットワークがルーターでつながった先にある場合もあります。そのためのアドレス体系決めやどの経路を使うかなどの経路選択の役割を持ちます。

2. データリンク層

物理層で直接接続されたノード間での通信を可能にします。 0と1の数字の列を意味のあるかたまり(フレーム)に分けて、相手に伝えます。

1. 物理層

ビットの列(0と1の数字の列)を電圧の高低や光の点滅に変換したり、逆に電圧の高低などをビットの列に変換したりします。

通信方式の種類

ネットワークや通信は、データの配送方式によって分類できます。

コネクション型とコネクションレス型

コネクション型では、データの送信を開始する前に、送信ホストと受信ホストの間で回線の接続をします。 通信の前後にコネクションの確立と切断の処理を行う必要がありますが、相手が通信不可能な場合にはむだなデータを送らずにすみます。

コネクションレス型では、コネクションの確立や切断処理がありません。 送信したいコンピュータはいつでもデータを送信することができます。 コネクションレス型では通信相手がいるかどうかの確認は行われないので、相手がいない場合にもデータを送信することができます。これによって送受信側ともに処理の不可を軽減することが可能です。

回線交換とパケット交換

回線交換は従来の電話で利用されてきた方式で歴史が長く、交換機がデータの中継処理をします。交換機間は複数の通信回線で接続され、一度コネクションを確立するとコネクションが切断されるまで、その回線は占有利用されます。 2台のコンピュータ同士であれば回線を占有しても問題にはなりませんが、複数のコンピュータが相互にデータをやりとりする場合には問題が発生します。

そこでパケット交換というデータを複数の小包に分け、転送の順番を待つ行列に並べる方法が考え出されました。

パケット交換ではパケット交換機(ルーター)によって通信回線が結ばれます。ルーターの中にはバッファと呼ばれる記憶領域があり、流れてきたバケットはこのバッファにいったん格納されて、順番に転送されていきます。 ネットワークの混雑度によってパケットの到着間隔が短くなったり長くなったりします。 またバッファがあふれるほど大量のパケットが流れると、パケットが喪失して相手に届かなることがあります。

通信相手の数による通信方式の分類

ユニキャスト

1を意味するUniと、投げるを意味するCastの組み合わせであることから分かるように、ユニキャストは1:1通信を指します。従来の電話は、ユニキャスト通信の代表です。

ブロードキャスト

放送の意味があるBroadcastでは、1台のホストから、接続されるすべてのホストへ向けて情報を発信します。ブロードキャストで通信できる範囲(届く範囲)のことを、ブロードキャストドメインと呼びます。

マルチキャスト

マルチキャストはブロードキャストと同様に複数のホストへ通信を行いますが、通信先を特定のグループに限定しています。 ブロードキャストをテレビ放送だとすると、マルチキャストはビデオ会議のようなイメージです。

エニーキャスト

エニーキャストは特定の複数台へ向けて問いかけを行う仕組みです。 特定の複数台のうちからネットワーク上で最適な条件を持つ対象が1つ選別され、その対象1つにだけ送られます。 DNSのルートネームサーバーなどで使われている通信方式です。

アドレスとは

通信の送信元と受信先は、アドレスによって特定されます。 コンピュータ通信では、プロトコルの各層で、異なるアドレスが使われています。 TCP/IPでの通信を例にとると、MACアドレス、IPアドレス、ポート番号などが利用されます。 これらのアドレスにはユニークであることが求められます。

アドレスの階層性

アドレスの数が多くなると、そのアドレスをどうやって探すかが問題になります。そこで必要になるのが階層性です。 階層性とは、電話番号でいえば国番号や局番号、住所でいえば国名や都道府県名などにあたります。

MACアドレスとIPアドレスは両方とも唯一性がありますが、階層性はIPアドレスだけにあります。 MACアドレスはネットワークインターフェースカード(NIC)ごとに製造者識別子や製品番号によって唯一性が担保されています。 一見階層性があるように思えますが、どのNICが世界中のどこで使われるかを特定する手段がないため、アドレスを探すときの役には立ちません。

一方IPアドレスは、ネットワーク部とホスト部という2つの部分から構成されており、ホスト部が異なるIPアドレスでも、同じネットワーク部を持つものは必ず同じ組織やグループに接続されています。 またネットワーク部は、組織、プロバイダ、地域などで集約可能になっており、アドレスを探しやすくなっています。

ルーティング

ネットワークの途中にある通過点では、各パケットの宛先アドレスを見て、どのネットワークインターフェースから送り出すかを決めます。 そのためにアドレスごとに送出したインターフェースを記したテーブルを参照します。 MACアドレスの場合は、転送表(フォワーディングテーブル)、IPアドレスの場合は経路制御表(ルーティングテーブル)といいます。

ネットワークの構成要素

通信媒体とデータリンク

コンピュータネットワークとは、コンピュータ同士を接続することです。 実際に接続するケーブルとしては、ツイストペアケーブルや光ファイバーケーブル、同軸ケーブル、シリアルケーブルなどが利用されます。 利用するデータリンク(接続された機器間で通信するためのプロトコルやネットワークのこと)の種類によって、利用するケーブルが違ってきます。 媒体として電波やマイクロ波などの電磁波が利用される場合もあります。

伝送速度とスループット

データが流れる物理的な速度を伝送速度といいます。単位はbps(Bits Per Second)で表されます。 媒体中を流れる信号の速さは一定であり、伝送速度は短い時間でより多くのデータを送ることができるようになれば速くなります。 伝送速度は帯域とも呼ばれ、道路を例にすると車線の数だといえます。

実際にホスト間でやり取りされる転送速度をスループットと呼びます。 スループットは帯域だけでなく、ホストのCPUやネットワークの混雑度なども考慮した実効転送速度を意味します。

ネットワークインターフェース

コンピュータをネットワークに接続するためには、ネットワークインターフェースが必要になります。 このインターフェースは、ネットワークインターフェースカード(LANを使うための機能が集約された部品)や、ネットワークアダプタ、LANカードと呼ばれます。

リピーター

リピーター(Repeater)は、OSI参照モデルの第1層の物理層でネットワークを延長する機器です。 ケーブル状を流れてきた電気屋皮下の信号を受信し、増幅や波形の整形などをしたのちに別の側へ再生する機器です。

通信媒体を変換できるリピータも存在します。これは単純に、信号の0と1を置き換えているだけです。 またリピーターによる延長では、リピータの接続段数に制限がある場合があります。 例えば10Mbpsのイーサネットでは最大4つのリピーターを多段接続できますが、100Mbpsだと最大2つのリピーターしか接続できません。

ブリッジ/レイヤ2スイッチ

ブリッジは、OSI参照モデルの第2層、データリンク層でネットワーク同士を接続する装置です。 データリンクのフレーム(パケットとほぼ同じ意味で使われるが、データリンク層ではパケットをフレームと表現するのが一般的)を認識してブリッジ内部のメモリに蓄積し、相手側のネットワークに新たなフレームとして送出します。

データリンクのフレームには、フレームが正しく届いたかどうかをチェックするFCS(Frame Check Sequence)と呼ばれるフィールドがあります。 ブリッジはこのフィールドをチェックして、壊れたフレームを他のネットワークへ送信しないようにする働きがあります。 またアドレスの学習機能とフィルタリング機能により、むだなトラフィック(ネットワークに流れるパケットの量)を流さないように制御します。 ここでいうアドレスは、MACアドレスと呼ばれるNICに付けられているアドレスのことです。

ルーター/レイヤ3スイッチ

ルーターは、OIS参照モデルの第3層、ネットワーク層の処理を行います。 ルーターはネットワークとネットワークを接続して、パケットを中継する装置のことです。 ネットワーク層のアドレス、つまりIPアドレスで処理を行います。 ルーターはネットワークの負荷を仕切ったり、セキュリティの機能を備えたりします。

レイヤ4-7スイッチ

レイヤ4-7スイッチは、OSI参照モデルのトランスポート層からアプリケーション層の情報に基づいて配送処理を行います。 例えばWebサイトの負荷分散のため、各サーバーの手前にレイヤ4-7スイッチであるロードバランサーを設置する場合があります。 その他にも不正アクセス防止のためのファイアウォールなど、用途に応じた様々なものが利用されています。

ゲートウェイ

ゲートウェイは、レイヤ4-7スイッチと同じく、トランスポート層以上の情報を見てパケットを処理します。 ゲートウェイにはデータ中継だけでなく、データを変換する役割があります。 例えば、インターネットの電子メールと、携帯電話の電子メールを変換するなどです。

また代理サーバー(プロキシサーバー)もゲートウェイの一種で、アプリケーションゲートウェイとも呼ばれます。 クライアントはWebサーバーと直接コネクションを確立せず、代理サーバーとコネクションを確立するため、代理サーバーにより様々な制御を行えます。

第1章 終わり

以上がネットワークの基礎知識とTCP/IPの関係です。 この本で扱う内容は初歩的な内容ですが、ネットワークに関連する技術者の基本となるものです。


{ "name": "hareku", "job": "Software Engineer" }