IP

IPアドレスによる通信

TCP/IPネットワークに接続されているコンピュータにはネットワーク内でユニークなIPアドレスが割り振られています。通信を行うときはIPアドレスを使って相手を指定します。
※IPアドレスは32ビットの情報で構成されます。

サブネットマスク

サブネットマスク

サブネットマスクは192.168.1.3 255.255.255.0や192.168.1.3/24のようにIPアドレスとペアで表記されます。IPアドレスは前半がネットワーク部、後半がホスト部というように意味を持って分けられます。サブネットマスクはネットワーク部とホスト部がどこで分けられているかを示すものです。

サブネットマスクを2進数表記した時の1と0の境目が、ネットワーク部とホスト部の区切りになります。
ope04_fig02[1]

ネットワーク部とホスト部

IPアドレスはネットワーク部の情報をもとに目的のネットワークまで到達し、そのネットワーク内でホスト部のアドレスを持つコンピュータを探すという手順になっています。

ネットワーク部はどこのネットワークに所属しているかを表す情報です。通信をしようとしたときに自分のIPアドレスと相手のIPアドレスを見て、ネットワーク部の数字が同じならば、相手は同じネットワークに所属していることがわかります。異なる数字であれば相手は異なるネットワークに所属しています。
※同じネットワークのホストを接続するときには、ハブやスイッチを使います。異なるネットワークを接続するときにはネットワークの間にルータを設置し、ルータを経由して通信が行われます。

ネットワークアドレスとブロードキャストアドレス

ネットワークアドレス

ネットワークアドレスはネットワーク全体を表すIPアドレスです。ネットワークアドレスはそのネットワーク内で一番小さいIPアドレス、つまりホスト部がすべて0になっているアドレスです。
ip13[1]

ブロードキャストアドレス

ブロードキャストアドレスはネットワーク内のすべてのホスト宛に通信するためのIPアドレスです。宛先をブロードキャストアドレスにするとネットワーク内のすべてのホストがそれを受け取ります。ブロードキャストアドレスはそのネットワーク内で一番大きなIPアドレス、つまりホスト部がすべて1になっているアドレスです。

クラス

クラス

IPアドレスは5つのクラスに分類されます。クラスごとにIPアドレスの範囲とサブネットマスクが決められています。
002-20081210-01-07[1]
※実際に使用できるのはクラスA~CのIPアドレスです。クラスDはマルチキャストアドレスとして利用され、クラスEは研究用にリザーブされているためホストに設定しているIPアドレスとしては使うことはできません。

VLSMとFLSM

あるネットワークをサブネット化するときに、すべてのサブネットで同じサブネットを使用する環境をFLSM(Fixed Length Subnet Mask:固定長サブネットマスク)といいます。FLSMはホストの台数に関係なく同じサブネットマスクのネットワークを使うのでIPアドレスを効率的に使うことができません。
VLSM(Variable Length Subnet Mask:可変長サブネットマスク)は、異なるサブネットマスクを持つネットワークが混在している環境です。ホストの台数に合わせて適切な大きさのサブネットマスクを使用しているので、IPアドレスが効率的に利用できます。

アドレスタイプ

IPアドレスは3つのアドレスタイプがあります。

    ユニキャストアドレス
  • ブロードキャストアドレス
  • マルチキャストアドレス

ユニキャストアドレス

単一のホストに向けたアドレスです。ユニキャストアドレス宛に送信されたパケットはそのIPアドレスを持つ特定のホストが受け取ります。

ブロードキャストアドレス

ネットワーク内のすべてのホストに向けたアドレスです。ブロードキャストアドレス宛に送信されたパケットはネットワーク内のすべてのホストが受け取ります。

ブロードキャストアドレスには、ホスト部が全部1のアドレスとIPアドレスが全て1の2種類があります。全社をディテックテッド・ブロードキャストアドレス、後者をリミテッド・ブロードキャストアドレスといいます。
リミテッド・ブロードキャストアドレスは同一ネットワーク内のすべてのホストに届きますが、ルータを超えることはありません。
ディテクテッド・ブロードキャストアドレスはルータを超えた他のネットワークを指定することで、ルータを超えたネットワークにブロードキャストを運ぶことも可能です。

マルチキャストアドレス

特定のグループに属するホストに向けたアドレスです。あるマルチキャストアドレス宛に送信されたパケットはそのマルチキャストグループに属するすべてのホストが受け取ります。

グローバルIPアドレスとプライベートIPアドレス

IPアドレスにはグローバルIPアドレスとプライベートIPアドレスがあります。

グローバルIPアドレスはインターネットに直接接続しているホストに割り当てるためのIPアドレスです。プライベートIPアドレスは組織内部のネットワークのようにインターネットに直接接続しないホストに割り当てるために用意されているIPアドレスです。

プライベートIPアドレスの範囲は次のように決められています。
a5f96b31563080b39eba3dc3abf0139c[1]

IPヘッダフォーマット

相手にデータを送信するとき、データに対して宛先IPアドレスなどの制御情報が付加されます。制御情報を入れるフィールドをヘッダといいます。IPヘッダには宛先IPアドレスのほかにも様々な情報が含まれています。フォーマットは次のようになっています。
IPheader[1]

レイヤ2スイッチの機能

レイヤ2スイッチには以下の3つの機能があります。

  • アドレス学習
  • 転送/フィルタリング
  • ループ回避

アドレス学習

アドレス学習とはスイッチがフレームを受信した際に、ポート番号と送信元MACアドレスの対応をMACアドレステーブルに記録することです。

転送/フィルタリング

転送/フィルタリングとは、スイッチがフレームを受信した際に、宛先MACアドレスとMACアドレスを照合して該当するポートにだけフレームを転送することです。

ただし該当するポートが受信ポートだった場合にはフレームは破棄されます。また該当するポートがない(MACアドレステーブルに未登録)場合は、全ポートに転送されます。(フラッディング)

LANスイッチタイプ

スイッチは転送/フィルタリング処理を行うため、フレームの一部またはすべてをバッファに格納し、出力するポートを判断します。フレームのどこまでを読み込んで処理するかによって3つのスイッチタイプから選択することができます。

ストアアンドフォワード

フレーム全体を読み込んでバッファリングし(メモリに丸々ためこむ)、FCSによるエラーチェックを行ってから宛先ポートに出力します。
※特徴
・信頼性が高い
・レイテンシも発生する
・現在主流で利用される

カットスルー

カットスルーはフレームヘッダの先頭6バイト、つまりMACアドレスだけを見てバッファリングせずにすぐに宛先ポートに出力します。
※特徴
・レイテンシが小さい
・信頼性が低い
・通信速度が異なるポートでは使えない

フラグメントフリー

フラグメントフリーはカットスルーの拡張版です。フレームヘッダの先頭64バイトをチェックして転送処理を行います。64バイトをチェックすることでエラーの中で最も多いコリジョンフラグメントを取り除くことができます。

レイヤとネットワーク機器

レイヤとネットワーク機器

リピータ、ハブ

リピータとハブはレイヤ1で動作する機器です。ケーブル内を流れる信号はケーブルを流れる間に減衰したりノイズが入ったりします。これを増幅・整形するのがリピータやハブの機能です。

※ハブではあるポートから入力された信号は他のすべてのポートに出力されます。この動作をフラッディングといいます。

ブリッヂ、スイッチ

ブリッヂとスイッチは、レイヤ2で動作する機器です。フレームヘッダの中の宛先MACアドレス情報を見て、宛先の機器が存在するポートにだけフレームを転送します。
ブリッヂがソフトウェエで処理を行うのに対して、スイッチはハードウェアを使用するため高速に処理ができます。

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

ルータをレイヤ3スイッチはレイヤ3で動作する機器です。信号をパケットとして認識し、パケットヘッダの情報を見て処理を行います。
※宛先のIPアドレス情報を見て出力するポートを決定します。

コリジョンドメインとブロードキャストドメイン

コリジョンドメイン

コリジョンドメインとはコリジョンが発生する可能性がある範囲のことです。ハブで接続されたネットワークでは複数のホストがメディアを共有しており、同時にデータを送信するとコリジョンが発生します。したがってハブで接続された範囲全体が1つのコリジョンドメインとなります。

スイッチはほすとから送信されたデータをメモリのバッファに保存して順番に処理を行うことができます。そのためスイッチとホストが1対1接続になっています。

ブロードキャストドメイン

ブロードキャストドメインとはブロードキャスト(一斉通知)が到達する範囲のことです。ブロードキャストドメインはルータによって分割される(ルータを超えない)範囲になります。

イーサネット

イーサネット

イーサネットはネットワークインターフェース層(OSI参照モデルの物理層とデータリンク層)のプロトコルで隣接しているコンピュータ間での通信方式を定めています。イーサネットは主にLANで使用されるプロトコルです。

intwk008

イーサネットではデータリンク層をLLC(論理リンク制御)とMAC(メディアアクセス制御)の2つの階層に分けています。

CSMA/CD

イーサネットではメディアアクセス制御方式にCSMA/CD(Carrier Sense Multiple Access / Collision Detection)が使われています。
※メディア・・・ケーブルのこと

メディアアクセス制御方式とは複数のコンピュータが競合せずにメディアを利用してデータを送受信するための方法です。
CSMA/CDは名称がその動作を表しています。

Multiple Access(多重アクセス)

イーサネットは論理的にはバス型(参照)のトポロジ(ネットワークの接続形態)となっています。バス型はメディアを複数のコンピュータで共有して使用します。この環境をMultiple Accessといいます。Multiple Access環境では誰かがデータを送信してケーブル上に信号が流れている間は、ほかのコンピュータはデータを送信することができません。

Carrier Sense(搬送波感知)

データを送信したいコンピュータはケーブル上に信号が流れているかどうかをチェックします。この動作をCarrier Senseといいます。信号が流れている間はその信号がなくなるまで待ちます。流れていない場合はデータ送信を開始します。

Collision Detection(衝突検知)

複数のコンピュータが同時にCarrier Senseを行ってデータ送信をすると信号のコリジョン(衝突)が発生します。コリジョンを検知することをCollision Detectionといいます。
コリジョンを検知すると送信側のコンピュータはデータ送信を中断し、コリジョンの発生を伝えるためのJAM信号を送信します。JAM信号を受け取ったコンピュータは受信動作を中止し、データを破棄します。
その後、送信側のコンピュータはデータを再送します。ランダムな時間を待ってからデータを再送することで再度コリジョンが発生することを防ぎます。(再送は15回まで行われます)

MACアドレス

イーサネットではMACアドレスによって通信相手を特定します。MACアドレスは物理アドレスやハードウェアアドレスと呼ばれることもあります。

MACアドレスは世界中で重複しないアドレスが割り当てられ製造時にNICに書き込まれます。MACアドレスは48ビット情報で構成され、前半24ビットはIEEEがベンダに割り当てるOUIで、後半24ビットはシリアル番号です。シリアル番号はベンダ内で重複しない数字が割り当てられています。

フレームフォーマット

イーサネットで通信を行うときに必要な制御情報はヘッダとトレーラに格納されます。イーサネットのフレームフォーマットは次のようになっています。
ethernet20[1]

宛先MACアドレス

宛先のMACアドレスが入ります

送信元MACアドレス

送信元のMACアドレスが入ります

タイプ

上位層つまりネットワーク層でどのプロトコルを使用しているかを識別する番号が入ります。ネットワーク層でIPを使用している場合は16進数で0800という値が入ります

データ

データの大きさによって46-1500倍とのサイズになります。イーサネットのデータの最大サイズ(MTU)は1500バイトです。

FCS

エラーチェックを行うための値が入ります。フレームを受信したコンピュータはFCSを使ってエラーチェックを行います。

プロトコルとOSI参照モデル

プロトコル

コンピュータ間では通信の方法についてあらかじめルールが決められており、ルールに従って通信が行われています。通人に実変われるルールをプロトコルと呼びます。

OSI参照モデル

プロトコル開発のガイドラインとなるのがISOによって制定されたOSI参照モデルです。OSI参照モデルは通信機能を7階層に分割して定義しています。

networking13[1]

レイヤ5-7(上位層)はコンピュータ内部で処理される機能を定めています。レイヤ1-4(階層)は、コンピュータ間の通信に関する機能を定めています。

レイヤ7:アプリケーション層

アプリケーション層はネットワークを利用するアプリケーションのうち、アプリケーションの機能とユーザーとのインターフェースについて定めています。各機能を実現するプロトコルとして下記などがあります。
<プロトコル>
FTP、Telnet、HTTP、SMTP、DNSなど

レイヤ6:プレゼンテーション層

プレゼンテーション層は、圧縮方式や文字コードなど、データの表現方式を定めています。データをネットワークで通信できる形式に変換したり、逆にネットワーク経由で受信したデータをアプリケーションが認識できる形式に復元したりします。
<プロトコル>
JPEG、MPEG、JIS、EUC、Shift-JISなど

レイヤ5:セッション層

セッション層はアプリケーション間での通信方式を定めています。アプリケーション間でのセッションの確立・制御・終了を管理します。
<プロトコル>
NetBIOS、SQL、SSLなど

レイヤ4:トランスポート層

トランスポート層は、コンピュータ間での通信方式を定めています。コンピュータ間でのコネクションの確立・制御・終了を管理し、エラー回復、フロー制御などで信頼性を確保します。データの分割と再組み立てや上位層のアプリケーションを識別する機能も提供します。
<プロトコル>
TCP、UDPなど

レイヤ3:ネットワーク層

ネットワーク層は、隣接していないコンピュータ間での通信方式を定めています。
<プロトコル>
IP、IPXなど

レイヤ2:データリンク層

データリンク層は、隣接しているコンピュータ間での通信方式を定めています。物理アドレスを使って相手を特定し、データフレームを転送します。
<プロトコル>
イーサネット、PPPなど

レイヤ1:物理層

物理層は、ケーブルの材質やコネクタ形状、および電気信号の変換方式など、物理的な使用を定めています。データは単なるビット列(0と1の組み合わせ)として扱われ、データの内容については一切関知されません。
<プロトコル>
EIA/TIA-232、V.35など

TCP/IPの階層モデル

インターネットでは、4階層モデルを使って通信機能を定義しています。これをTCP/IPの階層モデルといいます。

tcpip1[1]

カプセル化とPDU

カプセル化

ネットワーク経由でデータを送信するにはデータに加えて、あて先アドレスや送信元アドレスなどデータを送るための制御情報が必要です。

制御情報はデータの前に付加されます。これをヘッダといいます。データリンク層ではデータの後ろにも付加されます。後ろにつく場合はトレーラといいます。データに対してヘッダやトレーラを付加することをカプセル化といいます。

tcpip3[1]

送信側では、それぞれの階層でデータをカプセル化して階層へ渡します。
トランスポート層では、ポート番号などの情報が入ったヘッダ(TCPヘッダ)を追加しインターネット層に渡します。
インターネット層ではIPアドレスなどの情報が入ったヘッダ(IPヘッダ)を追加してネットワークインターフェース層へ渡します。
ネットワークインターフェース層ではMACアドレスなどの情報が入ったヘッダ(Ethernetヘッダ)を追加して相手にデータを送信します。

受信側では各階層で内容をチェックし、逆カプセル化を行って上位層に渡します。

PDU

それぞれの階層で扱うデータの単位をPDU(Protocol Data Unit)といいます。PDUの名称は各階層で異なっています。ヘッダに対してデータ部を「ペイロード」といいます。PDUはヘッダ+ペイロードのことをさします。

階層 PDUの名称
トランスポート層 セグメント
ネットワーク層 パケット
データリンク層 ビット
物理層 フレーム