helloworlds

not a noun, it's a verb

【TCP/IP】マスタリングTCP/IP メモ

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

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

o21o21.hatenablog.jp

ネットワーク基礎知識

スタンドアロンからネットワーク利用へ

従来、コンピュータは単体で使われていた。その利用形態を スタンドアロン という。

しかし、コンピュータが進化するにつれ複数で利用されるようになる。

コンピュータネットワークを、LANWAN などに分類することができる。

  • LAN

1つの建物や会社など、限られた狭い地域でのネットワーク

  • WAN

都市など、離れた地域のコンピュータやLAN同士を接続したネットワーク

初期のコンピュータネットワークは、プライベートなネットワークを構成していたが、 公共ネットワークとしてインターネットが利用されるようになる。

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

  • バッチ処理(Batch Processing) 1950年代
  • タイムシェアリングシステム(TSS) 1960年代
  • コンピュータ間通信 1970年代
  • コンピュータネットワークの登場 1980年代
  • インターネットの普及 1990年代
  • インターネット技術中心の時代 2000年代
  • 「単につなぐ」時代から「安全につなぐ」時代へ 2010年代

プロトコルとは

さまざまなプロトコルを体系的にまとめたものを、ネットワークアーキテクチャ ということがある。

現在は大きくの機器でTCP/IPが利用できるが、Novel社のIPX/SPX、Apple社のAppleTalkIBM社のSNAなどTCP/IP以外のネットワークアーキテクチャを利用した機器や環境もある。 また、LANで使用されていたIPX、SPXといったプロトコルもあります。

プロトコルが必要な理由

プロトコルは、コンピュータ同士がネットワークを利用して通信するために決められた 約束ごと という意味になる。

メーカーやOSが異なるコンピュータ同士でも、同じプロトコルを使えば互いに通信することができる。 つまり、両者(異なるコンピュータ、メーカーなど)は、同じプロトコルを理解し、処理しなければならないことになります。

パケット(Packet)交換

パケット交換 とは、大きなデータをパケットと呼ばれる単位に分割して送信する方法。

f:id:o21o21:20190129171823p:plain:h250:w350

大きなデータをいくつかのパケットに分ける場合、元のデータのどの部分だったのかを示す番号が書き込まれる。 受け取り側は、この番号を調べることで、小分けされていたデータから元のデータへと組み立てることが可能となる。

通信プロトコルでは、ヘッダ に書き込まれる情報や、その情報がをどのように処理するかを定めている。 つまり、コンピュータはプロトコルに従って、ヘッダを作成したり、ヘッダ内部を解読して処理を行っている。

プロトコルはどこの誰が決めたことが疑問ですが、これついては割愛する。 より詳しく知りたい場合は、ISO(国際標準化機構)やOSIIETFなどと調べればわかりそうです。 とりあえず、現状世界共通で標準化されているということです。

OSI参照モデル

機能 機能イメージ
7 アプリケーション層 特定のアプリケーションに特化したプロトコル
6 プレゼンテーション層 機器固有のデータフォーマットと、ネットワーク共通のデータフォーマットの交換 文字列や画像、音声などの情報の多い表現の違いを吸収。
5 セッション層 通信の管理。コネクションの確率/切断。 いつ切断して、いくつ張る?
4 トランスポート層 両端ノード間のデータ転送の管理。信頼性の提供。 データに抜けがないか
3 ネットワーク層 アドレスの管理と経路の選択。 どの経路で宛先まで届ける?
2 データリンク層 直接接続された機器間でのデータフレームの識別と転送。 フレームとビット列の変換
1 物理層 0と1を電圧の高低や光の点滅を変換。 ビット列と信号の変換

セッション層はコネクションを確立するタイミングやデータを転送するタイミングの管理をしているだけで、 実際にデータを転送する機能はありません。そして、トランスポート層では、データ転送の信頼性を保証する役割をもっています。 なので、実際データを相手に届ける処理は、ネットワーク層ということになります。

(しかし、TCP/IPでは、ネットワーク層トランスポート層が一緒に働くことでパケットを送信することになる。 理由は、データが途中で消失したり、順番が入れ替わったりする可能性があるからである。)

通信方式

ネットワークのデータの配送には、大きく コネクション型コネクションレス に分けることができる。

  • コネクション型

データの送信を開始する前に、送信ホストと受信ホスト間での回線を接続する。

コネクションの確立や切断処理はない。 なので、受信する側は、データを受け取ってないかどうかを常に確認する必要がある。

パケット交換について

現在のネットワークでは、大きく2つの 通信方法 が利用されています。

1つは、回線交換 です。

回線交換では、交換器 がデータの中継処理を行う。コンピュータは、交換機に接続され、交換期間は複数の通信回線で接続される。 1度コネクションが確立されると、コネクションが切断されるまで、その回線は占領される。 問題は、複数のコンピュータを接続し、相互にデータのやり取りを行おうとすると、特定のコンピュータが回線を占領してしまうことである。

そこで、回線に接続しているコンピュータが送信するデータを、複数の小包 に分けて、転送の順番を待つ行列に並べる方法が考え出された。

これを パケット交換 という。

小包みというのは、パケット のことで、細分化される。それぞれのパケットには、ヘッダ があり、そこには自分のアドレスや送信先のアドレスが書き込まれているので、 効率的にデータの送受信を行うことができる。

パケット交換では、ルーター(パケット交換機) によって通信回路が結ばれる。 ルーターの中には、バッファ と呼ばれる記憶領域がある。流れてきたパケットは、バッファに格納される。 パケット交換の場合、コンピュータやルーター間には通常 1つの回線 しかなく共有利用されるため、 ネットワークの混雑度によってパケットの到着間隔が左右される。

アドレスとは

通信の送信元と送信先は、アドレス によって特定される。

コンピュータ通信では、MACアドレスIPアドレスポート番号 などが利用される。電話では、電話番号がアドレスにあたる。 アドレスは通常、ユニーク(唯一) でなければならない。

アドレスは、その総数が多くなると階層性をとらなければなりません。

コンピュータ通信において、MACアドレスIPアドレスは、両方とも唯一性はあるものの、階層性はIPアドレスのみにある。

MACアドレスは、ネットワークインターフェイスカードごとに製造者識別子と製造者内の製品番号、製品のごとの連番が付けられている。 ユニークではあるが、どのネットワークインターフェイスカードが、世界中のどこで使用されるかは特定する手段はない。

なので、IPアドレスが必要になると考えることが可能です。

IPアドレスは、ネットワーク部ホスト部 という部分から構成されている。

f:id:o21o21:20190129171601p:plain

こうすることで階層性が成り立ち、組織やグループなどに接続しやすいようになっている。 また、MACアドレス転送表 を、IPアドレス経路制御表(ルーティングテーブル) を元にして通過点では行き先を特定していく。

ネットワークの構成要素

リピーター

リピーター は、OSI参照モデルの第1層物理層で、ネットワークを延長する機器 である。

ケーブル上を流れてきた電気や光の信号を受信し、増幅や波形の整形などする。 また、通信媒体を変換できるリピーターも存在する。同軸ケーブル光ファイバーの間の信号を変換する。

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

ブリッジ は、OSI参照モデルの第2層データリンク層で、ネットワーク同士を接続する装置 である。

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

ルーター は、OSI参照モデルの第3層ネットワーク層で、ネットワークとネットワークを接続して。パケットを中継する装置のこと である。

ルーターは、ネットワーク層のアドレスで処理を行う。(TP/IPであれば、IPアドレスになる) また、ルーターはネットワークの負荷も仕切ったり、セキュリティ機能も備えてたりする。

レイヤ4-7スイッチ

レイヤ4-7スイッチ は、OSI参照モデルトランスポート層〜アプリケーション層の情報に基いて配送処理を行う

イメージしやすいのは、ロードバランサーである。 負荷分散や音声通話のような即応性が求められる通信を優先したり、不正なアクセス防止のためのファイアウォールなどで利用される。

ゲートウェイ

ゲートウェイ は、OSI参照モデルトランスポート層〜アプリケーション層の階層で、データを交換して中継する装置のこと である。

レイヤ4-7スイッチのようにパケットを処理しデータの中継だけでなく、データを変換する役割があります。 (特にインターネットの電子メールと携帯電話の電子メールの交換するサービスは有名である。)

携帯電話による通信

一般的に携帯電話に電源を入れると、最寄りの 基地局 と通信が行われる。基地局には、契約しているキャリアの携帯電話用アンテナが設置されている。 基地局に集められた情報が エッジ(局舎) に集約され、エッジ間の基幹ネットワークに接続されているという構成は、インターネット接続と同様である。

TCP/IP 基礎知識

インターネットとは、全世界を接続しているコンピュータネットワークのこと。 インターネットのプロトコルといえばTCP/IP で、TCP/IPといえば インターネットプロトコル である。

f:id:o21o21:20190206115422p:plain:h250:w450

書籍や記事によって、TCP/IP階層モデルは4つだったり5つだったりすることもあるでしょう。 ここでは、4つに分けてモデルの図を書きました。

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

実際、最下位層には物理的にデータを転送してくれるハードを置いているす。このハードとは、電話回線やイーサネットのこと。(物理層)

ネットワークインターフェイス は、イーサネットなどのデータリンクを利用して通信するためのインターフェイスとなる階層である。

つまり、NICを動かすデバイスドライバとして考えても問題ない。

インターネット層

インターネット層 では、IPプロトコル が使用される。

IPプロトコルは、IPアドレスを元にパケットを転送する。

インターネット層トランスポート層 は、一般にホストOSに組み込まれていることを想定している。 よって、インターネットに接続されるすべてのホストやルーターは、必ずIPの機能を実装しなkればならない。

トランスポート層

トランスポート層 の最も重要な役割は、アプリケーションプログラム間の通信を実現すること。

コンピュータでは、複数のプログラムが同時に処理されているのは当たり前です。なので、どのプログラムが通信しているかを識別する必要があります。 アプリケーションのプログラムの識別には、ポート番号 があります。

アプリケーション層

(OSI参照モデルのセッション層,プレゼンテーション層,アプリケーション層は)アプリケーションプログラムの中で実現される。

パケットヘッダ

f:id:o21o21:20190206115101p:plain:h250:w350

各階層では、送信されるデータに対して、ヘッダ という情報が付与される。 その階層で必要とされる情報が組み込まれるので(送信元,送信先など)、プロトコルのための情報ということ。

例えば、トランスポート層ではTCPヘッダが付与され、インターネット層でIPヘッダが付与されるといった具合です。

データリンク

データリンク というとOSI参照モデルデータリンク層を指す場合もあるが、具体的な通信手段(イーサネット無線LANなど) を指してこの用語使う場合もある。

データリンク層プロトコルは、通信媒体で直接接続された機器k何で通信するための仕様を定めている。 通信媒体は、以下のようなものがある。

また、スイッチやブリッジ、リピーターが機器間で中継する場合もある。

実際に機器間の通信を行う場合、データリンク層物理層がともに必要になる。 データは2進数の0と1で表現されるが、実際の通信媒体でやり取りされるのは電圧の変化や光の点滅、電波の強弱など。 この2進数を変換させるのは、物理層の仕事になる。データリンク層は、単なる0と1の列でなく、フレーム というかたまりにまとめて相手の機器に伝える。

データリンクは、ネットワークの 最小単位 といってもいい。 インターネットによる通信は、細かくみるとデータリンクが集まったデータリンクの集合体とみることができる。 例えば、1つのリピーターを介して2つのケーブルで接続したとき(2つのデータリンクは)、 ネットワーク層からみると1つのネットワークで、物理層からみると2つのセグメント。

イーサネット

現在もっとも普及しているのが、Ethernet(イーサネット) である。

もともとは、Xerix社と旧DEC社が考案した通信方式で、Ethernet命名された。 その後、IEEE802.3委員会によって規格化され、フレームのフォーマットが異なる。なので、802.3Ethernetは、IEEE802.3委員会で規格化された方を指す。

制御の仕組みが単純まため、NICデバイスドライバが作りやすいという特徴がある。 LANの普及期に他のNICより安価で販売されていたことも、普及した理由の1つである。

Ethernetには、通信ケーブルや速度の違う多くの種類が存在する。

例、10BASE5

  • 10 -> 伝送速度
  • 5 -> 媒体

無線通信

無線通信ではk電波や赤外線、レーザー光線などで利用する。(ケーブルは不要)

以下、無線通信の種類。

分類 通信距離 規格化団体など 技術名称
短距離無線 数m 個別 RF-ID
無線PAN 10m前後 IEEE802.15 Bluetooth
無線LAN 100m前後 IEEE802.11 Wi-Fi
無線MAN 数km〜100km IEEE802.16,IEEE802.20 WiMAX
無線RAN 200km〜700km IEEE802.22
無線WAN - GSM,CDMA2000,W-CDMA 3G,LTE,4G

無線LAN IEEE802.11

IEEE802.11 は、無線LANプロトコル物理層とデータリンクリンク層の一部(MAC層)を定義した規格。

f:id:o21o21:20190206115140p:plain:h250:w550

VPN (Virtual Private Network)

IPネットワーク(インターネット)VPNを構築します。

MPLS は、ラベルと呼ばれる情報をIPパケットに付加して通信を制御します。 このラベルを、顧客ごとに異なるように設定し、MPLS網を通過するさいに、このラベルで宛先の判断を行う。 これにより、複数の顧客のVPNを1つのMPLS網上で区別し、保護されて閉じた形のプライベートなネットワークとして利用する。

IPプロトコル

TCP/IPの要 インターネット層。主に IPとICMP という2つのプロトコルから構成される。

OSI参照モデルネットワーク層に相当する。 終点ノード間の通信を実現する (end-to-end) ことが役割である。 データリンクを超えた通信をするためには、ネットワーク層が必要である。

※ ホスト(IPが付けられた機器)とルーター(IPが付けられていて経路制御を行う機器)を合わせて、ノード という。

2つのブロードキャスト

ローカルブロードキャスト とは、自分が属しているリンク内のブロードキャストのこと。

ダイレクトブロードキャスト とは、異なるIPネットワークへのブロードキャストには、ダイレクトブロードキャストアドレスを指定。

プライベートアドレス

インターネットの急速な普及により、IPアドレスが不足している。 そこで、すべてのルーターやホストにユニークなIPアドレスを割り当てることをやめて、必要なところに必要なだけ割り振るということにした。 しかし、個々のネットワークで好きなIPアドレスを割り振っていては、問題を引き起こす可能性がある。

そこで、プライベートアドレス が誕生した。

以下、プライベートアドレスの範囲。

範囲 クラス
10.0.0.0 〜 10.255.255.255 10/8 クラスA
172.16.0.0 〜 172.31.255.255 172.16/12 クラスB
192.168.0.0 〜 192.168.255.255 192.168/16 クラスC

この範囲外のIPアドレスは、グローバルIPアドレス になる。

プライベートIPアドレスは、当初、インターネットとの接続を考えない ネットワークで利用されていたが、 グローバルIPアドレスとプライベートIPアドレス間でアドレス交換をする NAT技術 が誕生した。

MTU

最大転送単位 (MTU) は、データリンクによって異なる。

IPはデータリンクの上位層にあって、データリンクのMTUの大きさに左右されることなく利用できなければならない。

参考

  • 引用: マスタリングTCP/IP 入門編 第5版