• 検索結果がありません。

2 1: OSI OSI,,,,,,,,, 4 TCP/IP TCP/IP, TCP, IP 2,, IP, IP. IP, ICMP, TCP, UDP, TELNET, FTP, HTTP TCP IP

N/A
N/A
Protected

Academic year: 2021

シェア "2 1: OSI OSI,,,,,,,,, 4 TCP/IP TCP/IP, TCP, IP 2,, IP, IP. IP, ICMP, TCP, UDP, TELNET, FTP, HTTP TCP IP"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

以下に,本実験に必要な基礎知識のキーワードをいくつか挙げる.

キーワード:OSI 参照モデル, プロトコル, 物理層, データリンク層, ネットワーク層, トランス ポート層, ノード, イーサネット, ルータ, アプリケーション,TCP/IP, インターネット, IP, ICMP, ARP, TCP, UDP, FTP, TELNET, ssh, ハードウェア, ネットワークインタフェース層, インターネッ ト層, トランスポート層, セッション層, プレゼンテーション層, アプリケーション層, IP アドレス, パ ケット, コネクション型, コネクションレス型

3

OSI

参照モデル

OSI(Open Systems Interconnection:開放型システム間相互接続) 参照モデルとは通信プロトコルを設 計するときの指標となるものである. 図 1 に示すように OSI 参照モデルは 7 つの階層から成り立っ ている. 本実験ではこの中の第1層 (レイヤ 1) から第 4 層 (レイヤ 4) まで, すなわち物理層, データ リンク層, ネットワーク層, トランスポート層について理解することを目的とする. • 物理層:ビットの列を電圧の高低や光の点滅に変換したり, 電圧の高低や光の点滅をビットの 列に変換する. • データリンク層:物理層で直接接続されたノード間, 例えば1つのイーサネットに接続された 2つのノード間での通信を可能にする. • ネットワーク層:あて先までデータを届ける役割を持つ. あて先は複数のネットワークがルー タでつながった先にある場合もあるため, アドレスの体系決めや, どの経路をつかうかなどの経 路選択の役割を持つ. • トランスポート層:あて先のアプリケーションにデータを確実に届ける役割を持つ. 通信を行 う両端のノードだけで処理される. 1

(2)

図 1: OSI 参照モデル各層の役割 本節のキーワード:OSI 参照モデル, プロトコル, 物理層, データリンク層, ネットワーク層, トラン スポート層, ノード, イーサネット, ルータ, アプリケーション

4

TCP/IP

TCP/IP とは, TCP, IP という 2 つのプロトコルを意味する場合もあるが, 多くの場合, IP を利用し たり, IP で通信をするときに必要となる多くのプロトコル群の総称として用いられる. 具体的には IP, ICMP, TCP, UDP, TELNET, FTP, HTTP など TCP や IP に深く関係する多くのプロトコル

(3)

図 2: OSI 参照モデルと TCP/IP の関係

が含まれる. TCP/IP はインターネットを運用するために開発されたプロトコルである. したがって インターネットのプロトコルといえば TCP/IP で, TCP/IP といえばインターネットのプロトコル である.

TCP/IP で登場するさまざまなプロトコルは OSI 参照モデルに当てはめることができる. 図 2 は OSI 参照モデルと TCP/IP とを比較したものである. TCP/IP と OSI では, 階層モデルが少し異 なっていることが分かる. これは, OSI 参照モデルはプロトコルに必要な機能面から検討されている のに対し, TCP/IP の階層モデルはコンピュータに実装するためのプログラミングの立場から検討さ れていることに起因する. • ハードウェア (物理層):TCP/IP の階層モデルは最下位層に物理的にデータを転送してくれる ハードウェアを置いている. このハードウェアとはイーサネットなどのデータリンクのことで ある. しかしその内容については何も決めていない. 使用する通信媒体はケーブルでも無線で もよく, また, 通信する上での信頼性やセキュリティ, 帯域, 遅延時間などについても特に制限 なく利用できるようになっている. • ネットワークインタフェース層 (データリンク層):ネットワークインタフェース層はイーサネッ トなどのデータリンクを利用して通信をするためのインターフェースとなる階層である. つま り NIC(Network Interface Card) を動かすための「デバイスドライバ」と考えれば良い. デバ イスドライバは OS とハードウェアの橋渡しをするソフトウェアである. 最近ではプラグ & プ レイ機能によって, 接続するだけで周辺機器が利用できる場合が多い. • インターネット層 (ネットワーク層):インターネット層では, IP(Internet Protocol) プロトコ ルが使われる. これは, OSI 参照モデルの第 3 層, ネットワーク層の役割を持っている. IP プ ロトコルは IP アドレスをもとにしてパケットを送信する. TCP/IP 階層モデルでは, 一般にインターネット層とトランスポート層は, OS に組み込まれる ことを想定している. インターネットに接続されるすべてのホストやルーターは, IP の機能を

(4)

• トランスポート層 : TCP/IP には 2 つのトランスポートプロトコルがある. この層は基本的に は OSI 参照モデルのトランスポート層と同じような役割を持つ. トランスポート層のもっとも重要な役割はアプリケーションプログラム間の通信を実現するこ とである. コンピュータ内部では, 複数のプログラムが同時に動作している. どのプログラムと どのプログラムが通信しているかを識別する必要があり, アプリケーションプログラムを識別 するために, ポート番号と呼ばれる識別子が用いられる.

– TCP (Transmission Control Protocol) : TCP はコネクション型で信頼性のあるトランス

ポート層のプロトコルで, 両端のホスト間でのデータの到達性を保証する. 経路の途中で データを運ぶパケットが損失したり, 順番が入れ替わったとしても, TCP が正しく解決す る. また, ネットワークの帯域幅を有効に利用する仕組みや, ネットワークの混雑を和らげ る仕組みなど, TCP には様々な機能が組み込まれ, 信頼性の向上がはかられている.

– UDP (User Datagram Protocol) : UDP は TCP とは異なり, コネクションレス型で信頼

性のないトランスポート層プロトコルであり, 送信したデータが相手に届いているかどう かのチェックはしない. パケットが相手に届かない場合や, 相手のコンピュータがネット ワークに接続されていない場合, このようなチェックはアプリケーションのプログラムが 必要に応じて行う. • アプリケーション層 (セッション層以上の上位層) : TCP/IP 階層モデルでは, OSI 参照モデル のセッション層やプレゼンテーション層, アプリケーション層は, すべてアプリケーションプロ グラムの中で実現される. よって, TCP/IP のアプリケーションプログラムの機能を細かく見 ていくと, OSI 参照モデルのアプリケーション層の機能だけではなく, セッション層の機能や, プレゼンテーション層の機能が見えてくる. TCP/IP のアプリケーションの多くはクライアント/サーバモデルで作られる. クライアント はいつでも好きなときにサービスを要求することができ, サービスを提供するサーバプログラ ムはあらかじめホスト上で動作させておく必要がある. – ファイル転送 : ファイル転送とは, 異なるコンピュータのハードディスク上に存在するファ イルを, 自分のコンピュータのハードディスクに転送したり, あるいは, 自分のコンピュー タのファイルを別のコンピュータに移したりすることである.

(5)

TCP/IP ネットワークでは, 遠隔ログインでは TELNET(TELetypewriter NETwork) プ ロトコルがよく用いられる. ほかにも, UNIX 系の rlogin などの r コマンド系のプログラ ムも利用される. インターネットを介した通信では, セキュリティ機能がある ssh なども 利用される.

本節のキーワード:TCP/IP, インターネット, IP, ICMP, ARP, TCP, UDP, FTP, TELNET, ssh, ハードウェア, ネットワークインタフェース層, インターネット層, トランスポート層, セッション層, プレゼンテーション層, アプリケーション層, IP アドレス, パケット, コネクション型, コネクション レス型

5

リピータ

,

ブリッジ

,

ルータ

リピータ, ブリッジ, ルータは計算機間, ネットワーク間を接続する装置である. これらの機能は OSI 参照モデルの層 (レイヤ) と対応しており, それぞれ異なる. 本実験の重要な課題として, リピータ, ブリッジ, ルータの働きを理解し, その違いを認識することが挙げられる. ここにそれぞれの機能を 簡単に紹介する. 実際に実験を通してそれぞれの違いを自分で確認すること.

5.1

リピータ

リピータは OSI 参照モデルの第1層の物理層でネットワークを延長する機器である. ケーブル上を 流れてきた電気や光の信号を受信し, 増幅や波形の整形などをしたのちに別の側へ再生する機器であ る. また, 通信媒体を変換できるリピータも存在する. 例えば, 同軸ケーブルと光ファイバ間の信号の 変換を行うことができる.

5.2

ブリッジ (レイヤ 2 スイッチ)

ブリッジは, OSI 参照モデルの第 2 層, データリンク層でネットワークを接続する装置である. ブリッ ジはデータリンクのフレームを認識して蓄積し, 接続された相手側のセグメントに新たなフレームと して送出する. ブリッジの両端でデータリンクが完全に分離される. ブリッジはアドレスの学習機能とフィルタリング機能により, 無駄なトラフィックを流さないよ うに制御する機能がある. ここでいうアドレスとは MAC アドレス, 物理アドレス (フィジカルアド

(6)

図 3: リピータ 図 4: ブリッジ レス) を指す. また, パケットを隣のセグメントに流すかどうかの判断を行う機能を持っている. ブ リッジを通過した MAC アドレスは一定時間ブリッジ内部のテーブル上に登録され, どのセグメント にどの MAC アドレスを持つ機器が存在するかを判断できる. このような機能は OSI 参照モデルの 第 2 層に位置付けれる機能であるため, ブリッジのことをレイヤ 2 スイッチ (L2 スイッチ) と呼ぶこ ともある. イーサネットなどで利用されるスイッチングハブもこのブリッジの一種である.

5.3

ルータ (レイヤ 3 スイッチ)

ルータは, OSI 参照モデルの第 3 層, ネットワーク層の処理を行う. ルータとはネットワークとネッ トワークを接続して, パケットを中継する装置のことである. ルータは異なるデータリンク, 例えば イーサネットとイーサネット, イーサネットと FDDI を接続できる. ルータはネットワークの負荷を 仕切る役割や, 高機能なルータにはセキュリティ機能を備えたものも存在する.

(7)

図 5: ルータ また, レイヤ 3 スイッチ (L3 スイッチ) という言葉がある. これは データリンク層部分のスイッ チングと, ルータが行うネットワーク層部分のルーティングを同時に実現している機器を指す. ネッ トワークの高速化とともに, 従来のルータよりさらにパフォーマンスを向上させるため, ルータがソ フトウェアで処理していたパケットの中継機能をハードウェア的に処理する. さらにデータリンク層 のスイッチ機能も併せ持つ. 本節のキーワード: リピータ, ブリッジ, ルータ, セグメント, MAC アドレス, スイッチングハブ, デー タリンク, イーサネット, FDDI

6

IP

アドレスと

MAC

アドレス

本実験には 2 つの「アドレス」が登場する. ひとつは IP アドレス, ひとつは MAC アドレスであ る. そして IP アドレスと MAC アドレスの橋渡しをするのが ARP(Address Resolution Protocol) である.

6.1

MAC アドレス

MAC アドレスは, データリンクに接続しているノードを識別するために利用される. MAC アドレ スは 48 ビットの長さを持ち, 図 6 に示すような構造をもつ.3 ∼ 24 ビットはベンダ識別子と呼ばれ, 製造メーカーごとに特定の数字が割り当てられる. この情報は http://standards.ieee.org/regauth/oui より入手できる. 25 ∼ 48 ビットは, メーカーが製造したカードごとに違う数字を割り当てる. した がって, 世界で同じ MAC アドレスが設定されている製品は一つしかない.

6.2

IP アドレス

IP アドレス (IPv4 アドレス) は 32 ビットの整数値で表される. TCP/IP で通信する場合は, IP アド レスを個々のホストに割り当てなければならない. 一般的に IP アドレス 8 ビットずつの 4 つの組に 分け, その境目に”.”を入れて 10 進数で表現する. IP アドレスは「ネットワーク部」と「ホスト部」

(8)

図 6: IEEE802.3 の MAC アドレスのフォーマット に分けられる. 図 7 にネットワーク部とホスト部の役割を示す.「ネットワーク部」は, データリンクのセグメン トごとに値が割り当てられる. ネットワーク部は, インターネットに接続されている全てのネットワー クのアドレスと重ならないように設定しなければならない. 同じデータリンクに接続されるホストに は全て同じネットワークアドレスを設定する. 一方,「ホスト部」は同一リンク内で重ならない値を 割り当てる. このように IP アドレスを設定することにより, 全世界で同じ IP アドレスを持つコン ピュータが 1 台しかないように設定される. ネットワーク部とホスト部は歴史的に 2 種類の区別が ある. 初期の IP では, ネットワーク部とホスト部はクラスによって分けられる. 現在はサブネット マスクによって分けられる. IP アドレスのクラス IP アドレスは, クラス A, クラス B, クラス C, クラス D という 4 つのクラスに分類される. これら のクラスは IP アドレスのネットワーク部とホスト部がどの部分にあたるかを決めるためのもので, 先頭から 4 ビットまでのビット列の組み合わせによって識別される. • クラス A : クラス A は先頭 1 ビットが “0” で始まる場合で, IP ネットワークアドレス部は先 頭から 8 ビットまでとなる. • クラス B : クラス B は先頭 2 ビットが “10” で始まる場合で, IP ネットワークアドレス部は 先頭から 16 ビットまでとなる. • クラス C : クラス C は先頭 3 ビットが “110” で始まる場合で, IP ネットワークアドレス部は 先頭から 24 ビットまでとなる. • クラス D : クラス D は先頭 4 ビットが “1110” で始まる場合で, IP ネットワークアドレス部 は先頭から 32 ビットまでになる. クラス D にはホスト部はなく, IP マルチキャスト通信に使 われる. サブネットマスク 現在, IP アドレスを利用するときには, ネットワーク部とホスト部の切れ目はクラスに縛られない.

(9)

図 7: IP アドレスのホスト部 サブネットマスクと呼ばれる識別子が導入され, クラス A や クラス B のネットワークを小さく区 切るサブネットワークアドレスが利用されている. これは, 各クラスごとに決まるホスト部を, サブ ネットワークアドレス部として使うことにより, 複数の物理ネットワークに分割できるようにする仕 組みである. サブネットワークの導入により, IP アドレスは IP アドレスとサブネットマスク (サブ ネットワークマスク, ネットマスク) という 2 つの識別子で表される. ネットマスクは IP アドレス の上位ビットから連続していなければならない. そして 2 つの表記法がある. 例えば 192.168.0.5 の 上位 16 ビットがネットワークアドレスの場合の例を示す. この場合, IP アドレス 192. 168. 0. 5 ネットマスク 255. 255. 0. 0 と IP アドレスとは別にサブネットマスクをそのまま記述する方法と, 192. 168. 0. 5/16 と IP アドレスの後ろに “/” を書き, その後ろにネットワークアドレスが先頭から何ビット目までか を書く. この表記法でネットワークアドレスを記述するときには, 最後の 0 を省略できる. 例えば, 192.168.0.0/16 の場合は 192.168/16 と書くこともできる. 本実験では, IP アドレスとサブネットマ

(10)

図 8: IP アドレスのクラス スクをそのまま記述する方法で設定を行う. 特別な IP アドレス IP アドレスは世界中にただ 1 つでなければならない. しかし, 構築したネットワークをインターネッ トと接続しない場合や, 外部と通信しない場合は, 他のネットワークと IP アドレスが重複しても問 題は生じないはずである. しかしながら, このような場合でも, 思いつきで適当な IP アドレスを設定 し使用するのは決して望ましいことではない. TCP/IP では, 私的なネットワーク内で利用できる「プライベート IP アドレス」が定義されてい る. この IP アドレスを利用した場合には, そのネットワークアドレスの情報が外部に伝えられない. このため, 外部との通信に利用することはできないが, 組織内の通信は問題なく行うことができる. 10. 0. 0. 0 10. 255. 255. 255 (10/8) 172. 16. 0. 0 − 172. 31. 255. 255 (172.16/12) 192. 168. 0. 0 − 192. 168. 255. 255 (192.168/16) これらのアドレスは自由に利用することができる. ただし, 通信する範囲内ではユニークに割り当て る必要がある. 本実験では, ネットワークアドレスとして 192.168/16 を用いる.

(11)

図 9: サブネットマスク

6.3

ARP (Address Resolution Protocol)

ARP はアドレス解決のためのプロトコルである. 具体的には宛先 IP アドレスを手がかりにして, 次 にパケットを受け取るべき機器の MAC アドレスを知りたいときに利用される. 宛先のホストが同 一リンク上にない場合には, 次に通信すべきルータの MAC アドレスを ARP で調べることになる. ARP には ARP 要求パケットと ARP 応答パケットの 2 種類が存在する. ホスト A から ホスト B の MAC アドレスを入手するために, ARP 要求パケットをブロードキャストする. このパケットの 中には MAC アドレスを知りたいホストの IP アドレスが入っている. ブロードキャストされたパ ケットはすべてのホストが受信して処理する. そのため, ARP 要求パケットは同一セグメント上の 全てのホストが受信して, パケットの内容を解析する. そして, 目的の IP アドレスが自分の IP アド レスに該当する場合には, MAC アドレスを埋めて ARP パケットをホスト A に返送する. このよ うに, IP アドレスから MAC アドレスを知るために ARP 要求パケットを送信し, 自分の MAC ア ドレスを教えるために返送するのが ARP 応答パケットなる. この ARP によって IP アドレスから MAC アドレスを検索することができ, リンク内の通信をすることが可能となる. ARP によるアドレ

(12)

図 10: ARP の仕組み

スの解決は自動的に行われるため, TCP/IP による通信では MAC アドレスを意識する必要はなく, IP アドレスのみを考えればよい.

7

ICMP(Internet Control Message Protocol)

本実験では数種類の ICMP メッセージを観察する. ICMP は IP を補助するプロトコルと考えると 理解しやすい. IP(Internet Protocol) はコネクションレス型のネットワーク層のプロトコルである. パケットを 中継することに最大限の努力をするが, パケットの到達性の保証はしない. よって, ネットワークが 混雑した場合や, ルータやホストで異常が発生した場合には, あて先までパケットが到達しない場合 がある. IP では IP データグラムが何らかの障害によって到達できなかったときには, ICMP という プロトコルにより障害の通知が行われる. ICMP は表 1 のようにいくつかのタイプがある. これら は, エラー通知のためのエラーメッセージと, 診断などを行う問い合わせメッセージの 2 種類に分類 される.

7.1

ICMP 到達不能メッセージ (タイプ 3)

IP ルータが IP データグラムをあて先にに配送できない場合, 送信ホストに対して, ICMP 到達不能 メッセージ (ICMP Destination Unreachable Message) を送信する. よく発生するエラーは “Network Unreachable”(コード 0), “Host Unreachable”(コード 1) がある. 前者は, その IP アドレスに対する 経路制御情報を途中のルータが持っていなかった場合を, 後者はその IP アドレスのコンピュータが ネットワークに接続されていなかったことを意味する.

(13)

7.2

ICMP 到達不能メッセージ (タイプ 11)

IP デには, 生存時間 (TTL: Time To Live) がある. この値はルータを 1 つ通過するたびに 1 ずつ減 らされ, 0 になると IP データグラムは破棄される. このとき IP ルータは, “ICMP Time Exceeded Message” を送信元に送り返し, パケットが破棄されたことを通知する. これにより, パケットが永久 にネットワークを回り続けて麻痺状態になることを防ぐことができる.

(14)

図 12: ICMP エコーメッセージ

8

トランスポート層

ネットワーク層で転送されたパケットがトランスポート層に渡されると, 今度はトランスポート層で は, 次にどのアプリケーションにパケット渡せばよいかを識別する必要がある. TCP/IP では, 代表 的なトランスポートプロトコルとして TCP と UDP がある. TCP は信頼性の高い通信を提供し, UDP は同報通信や, 細かい制御はアプリケーションに任せたほうが良い通信に用いられる. IP ヘッダにはプロトコルフィールドが定義されている. プロトコルフィールドにはネットワーク 層 (IP) の上位層, つまり, どのトランスポートプロトコルにデータを渡すかが番号で表現されてい る. この番号で, IP が運んでいるデータが TCP なのか, UDP なのかを識別する. これと同様に, トランスポート層である TCP, UDP でも自分が運んでいるデータを次にどの処 理に渡せばよいかを識別するための番号が定義されている. これをポート番号と呼ぶ.

8.1

UDP (User Datagram Protocol)

UDP は IP を用いてのコネクションレス的な通信サービスを提供する. しかも, UDP は複雑な制御 はいっさいせず, アプリケーションから送信要求のあったデータを, 送信要求のあったタイミングで, そのままネットワークに流す. ネットワークが混雑していたとしても, 送信量を制御することはない. また, パケットが失われたとしても, 再送制御はしない. これらの制御が必要なときには, UDP を利 用するアプリケーションプログラムが制御しなければならない. 分かりやすく言うと「状況を考えず にとりあえず送って、しかも送りっぱなし」というプロトコルである.

(15)

TCP はその名前の通り,「伝送, 送信, 通信」を「制御」する「プロトコル」と考えることができる. TCP は UDP と大きく異なり, データを送信するときの制御機能が充実している. UDP では行 われない, ネットワークの途中でパケットが喪失した場合の再送, 順序が入れ替わった場合の制御, パ ケットの到達を確認する確認応答などを TCP のなかで行っている. このような機能により, IP とい うコネクションレス型のネットワーク上で信頼性の高い通信を実現することができる. TCP ではそのために: シーケンス番号と確認応答で信頼性を提供 再送タイムアウトの決定 コネクション管理 ウィンドウ制御による通信速度の向上 再送制御 フロー制御 (流量制御) 輻輳制御 (ネットワークの混雑解消) などさまざまな機能を有している。本実験では, このなかで “コネクション管理” を確認する. TCP はコネクション指向の通信を提供する. コネクション指向とは, 通信に先立って, 通信相手との間に 通信を始める準備をしてから通信を行うことを意味している. UDP はコネクションレスなので, 相手に通信してよいかどうかの確認を求めることなく, いきな り UDP データグラムを送信する. これに対し, TCP は通信前にコネクション確立要求のパケットを 送信して確認応答を待つ. 相手から確認応答が送られてきた場合には通信が可能になるが, 確認応答 が送られてこなければ, 通信を開始することはできない. また, 通信が終了したときには, コネクショ ンの切断を行う. TCP では, このコネクションを管理するために, TCP ヘッダの制御用フィールドを利用する. ま た, コネクションの確立と切断には最低でも 7 つ以上のパケットがやり取りされることになる.

8.3

ポート番号

データリンクや IP にはそれぞれ, MAC アドレス, IP アドレスというアドレスが存在した. MAC アドレスは同一のデータリンクに接続されたコンピュータを識別するためのもので, IP アドレスは TCP/IP ネットワーク上に接続されるコンピュータを識別するためのものである. トランスポートプ

(16)

図 13: TCP のコネクションと切断 ロトコルにもアドレスのようなものがある. それがポート番号である. このポート番号は同一のコン ピュータ内で通信をおこなっているプログラムを識別するときに利用される. つまり, プログラムの アドレスということもできる. コンピュータの上では複数のプログラム動作させることができる. Web ブラウザ, メールソフト, telnet クライアントなどさまざまなアプリケーションを同時に利用することができる. トランスポー トプロトコルは, ポート番号を使って, 通信しているプログラムを識別し, 正しくデータを渡すように 処理する. 通信の識別はあて先のポート番号だけで行われるわけではない. 図 14 の 1, 2 の通信は 2 つの コンピュータ間で行われている. しかもあて先のポート番号は 80 番で同じである. Web ブラウザの 画面を 2 つ開いて, 同じサーバ上の別のページを同時に見ようとしても, きちんと通信を識別する必 要がある. そこで, 送信元のポート番号で別々の通信であることを識別する. また, 3 と 1 はあて先 ポート番号も送信元ポート番号もまったく同じであるが, 送信元 IP アドレスが異なる. さらに, IP アドレスもポート番号も同じで, TCP か UDP のプロトコル番号が違う場合も違う通信として扱わ れる. このように, TCP/IP や UDP/IP による通信では, 「あて先 IP アドレス」「送信元 IP アド レス」「あて先ポート番号」「送信元ポート番号」, そして「プロトコル番号」の 5 つの数字を組み合

(17)

図 14: 複数の要求の識別

わせて通信を識別する. どれか 1 つでも違えば別の通信として処理される.

ポート番号の決め方には静的に決定する方法と動的に決定する方法がある. 静的に決定する方法は, アプリケーションごとに, どのポート番号を使うかを固定的に決める方法である. HTTP, TELNET, FTP などの非常に広く使われているアプリケーションプロトコルでは, 使用するポート番号が決め られている. これをウェルノーンポート番号 (Well-known Port Number) と呼ばれる. これは 0 か ら 1023 までの番号が割り当てられている. また, 1024 から 49151 までの番号も正式に登録されて いる番号である. これらは主にサーバ側で使われる. 一方, 動的に割り当てる方法は, クライアントアプリケーションが自分のポート番号を決定せず に, オペレーティングシステムに任せる方法である. 例えば, ポート番号が必要になるたびにポート 番号の数を 1 ずつ増やしていく. このように, 動的にオペレーティングシステムがポート番号を管理 する. 動的に割り当てるポート番号は, 49152 から 65535 までの番号が割り当てられている. しかし, 多くのシステムではこれを無視して 1024 以上の使われていない番号が順番に利用される. ポート番号は使用されるトランスポートプロトコルごとに決定される. このため, 異なるトランス ポートプロトコルの場合には, 同じ番号のポート番号を使用することができる. 例えば TCP と UDP では同じポート番号を別の目的で使用することが可能となる.

(18)

から受け取るものはすべて単なる 1 つのデータとして認識される.

図 15: パケットヘッダの階層化

9.1

イーサネットのフレームフォーマット

イーサネットのヘッダには, 宛先 MAC アドレスのフィールドが 6 オクテット, 送信元の MAC アド レスのフィールドが 6 オクテット, そしてタイプと呼ばれるフィールドが 2 オクテットの合計 14 オ クテットからなるヘッダで構成される. そして最後には FCS(Frame Check Sequence) という 4 オク テットのフィールドがある. タイプにはデータ部で運んでいるプロトコルを表す番号が格納される. つまり, イーサネットの上位層のプロトコルを示している. タイプの番号とプロトコルの関係は表 2 に示す. FCS は, フレームが壊れていないかをチェックするためのフィールドである.

9.2

IP ヘッダ

IP を利用して通信を行うときには, データに IP ヘッダがつけられて送信される. この IP ヘッダには IP プロトコルによってパケットの配送を制御するときに必要な情報が格納される. 具体的には図 17 のような構成をしている.

(19)

図 16: イーサネットのフレームフォーマット 表 2: イーサネットのタイプフィールドの割り当て • バージョン : 4 ビットで構成される. IP ヘッダのバージョン番号を示す. • ヘッダ長 : 4 ビットで構成される. IP ヘッダ自体の大きさを 4 オクテットの単位で示す. オプ ションを持たない IP パケットの場合は 20 オクテットの IP ヘッダを持つので “5” という値 が入る. • サービスタイプ : 8 ビットで構成される. しかし, 現在のインターネットではほとんど利用さ れていない.

(20)

図 17: IP データグラムフォーマット (IPv4) • パケット長 : IP ヘッダと IP データを加えたパケット全体のオクテット長を表す. • 識別子 : 16 ビットで構成される. フラグメントを復元する際の識別子として扱われる. 同じフ ラグメントには同じ値, 違うフラグメントでは違う数字になる. • フラグ : 3 ビットで構成される. パケットの分割に関する制御を行う. • フラグメントオフセット : 13 ビットで構成される. 分割されたフラグメントがオリジナルデー タのどこに位置していたかを示す. • 生存時間 (TTL) : 8 ビットで構成される. ルータを通過するたびに TTL は 1 つずつ減らされ, 0 になったらパケットは破棄される. • プロトコル : 8 ビットで構成される. 上位層のプロトコルが何であるかを示す. よく使用され る上位プロトコルは表 3 のような番号が割り当てられる. • ヘッダチェックサム : 16 ビットで構成される. チェックサムは IP ヘッダが壊れていないこと を保証するためのものである. • 送信元 IP アドレス : 32 ビットで構成される. 送信元の IP アドレスを表す. • 宛先 IP アドレス : 32 ビットで構成される. 宛先の IP アドレスを表す. • オプション : 可変長の長さを持つ. 通常は使用されない. • パディング : オプションを付けた場合にヘッダ長が 32 ビットの整数倍にならないとき, この フィールドに “0” を入れることにより, 32 ビットの整数倍になるようにする.

(21)

• データ : データが入る. IP 上位層のヘッダ (TCP のヘッダなど) も全てデータとして処理さ

れる.

9.3

TCP (Transmission Control Protocol) ヘッダ

TCP TCP はその名前の通り,「伝送, 送信, 通信」を「制御」する「プロトコル」と考えることが できる. TCP はデータを送信するときの制御機能が充実している. ネットワークの途中でパケットが喪 失した場合の再送, 順序が入れ替わった場合の制御, パケットの到達を確認する確認応答などを TCP のなかで行っている. このような機能により, IP というコネクションレス型のネットワーク上で信頼 性の高い通信を実現することができる. TCP ではそのために: シーケンス番号と確認応答で信頼性を提供 再送タイムアウトの決定 コネクション管理 ウィンドウ制御による通信速度の向上 再送制御 フロー制御 (流量制御) 輻輳制御 (ネットワークの混雑解消)

(22)

図 18: TCP のコネクションと切断 はコネクション指向の通信を提供する. コネクション指向とは, 通信に先立って, 通信相手との間に 通信を始める準備をしてから通信を行うことを意味している. TCP は通信前にコネクション確立要求のパケットを送信して確認応答を待つ. 相手から確認応答 が送られてきた場合には通信が可能になるが, 確認応答が送られてこなければ, 通信を開始すること はできない. また, 通信が終了したときには, コネクションの切断を行う. TCP では, このコネクションを管理するために, TCP ヘッダの制御用フィールドを利用する. ま た, コネクションの確立と切断には最低でも 7 つ以上のパケットがやり取りされることになる. TCP のヘッダフォーマット 図 19 に TCP のセグメントフォーマットを示す. TCP にはパケット 長やデータ長を表すフィールドは存在しない. TCP は IP 層から TCP のパケット長を教えてもら い, その長さからデータの長さを知る. • 送信元ポート番号 : 16 ビット長のフィールドで送信元のポート番号を示す. • 宛先ポート番号 : 16 ビット長のフィールドで宛先のポート番号を示す.

(23)

図 19: TCP セグメントフォーマット • シーケンス番号 : 32 ビット長のフィールドでシーケンス番号を示す. シーケンス番号は, 送信 したデータの位置を意味する. • 確認応答番号 : 32 ビットのフィールドで確認応答番号を示す. これは, 次に受信すべきデータ のシーケンス番号になっている. • データオフセット : TCP が運んでいるデータがどこから始まるのかを意味している. TCP ヘッ ダの長さを表していると考えてかまわない. • 予約 : 将来の拡張のために準備されている. “0” にしておく必要がある. • コントロールフラグ : このフィールドは 6 ビット長で, 各ビットは左から UGR, ACK, PSH, RST, SYN, FIN と名づけられる. これらの各ビットが “1” になることで, その場所の意味を 持つことになる. • ウィンドウサイズ : 16 ビット長のフィールドで, 同じ TCP ヘッダに含まれる確認応答番号で 示した位置から, 受信可能なデータサイズを通知するのに使われる. ここに示されているデー タ量を超えて送信することは許されない.

9.4

UDP のヘッダフォーマット

UDP のヘッダフォーマットを図 20 を示す. ヘッダは送信元ポート番号, 宛先ポート番号, パケット の長さ, チェックサムから構成される. TCP ヘッダと比較して, 機能が単純な分, その構成も簡単で ある. また, TCP ヘッダにはなかったパケット長を示すフィールドが存在する. ここでは, UDP ヘッ ダの長さとデータの長さの和が格納される.

(24)

図 20: UDP データグラムフォーマット

9.5

ARP (Address Resolution Protocol)

ARP ARP はアドレス解決のためのプロトコルである. 具体的には宛先 IP アドレスを手がかりに して, 次にパケットを受け取るべき機器の MAC アドレスを知りたいときに利用される. 宛先のホス トが同一リンク上にない場合には, 次に通信すべきルータの MAC アドレスを ARP で調べることに なる. ARP には ARP 要求パケットと ARP 応答パケットの 2 種類が存在する. ホスト A から ホス ト B の MAC アドレスを入手するために, ARP 要求パケットをブロードキャストする. このパケッ トの中には MAC アドレスを知りたいホストの IP アドレスが入っている. ブロードキャストされた パケットはすべてのホストが受信して処理する. そのため, ARP 要求パケットは同一セグメント上 の全てのホストが受信して, パケットの内容を解析する. そして, 目的の IP アドレスが自分の IP ア ドレスに該当する場合には, MAC アドレスを埋めて ARP パケットをホスト A に返送する. このよ うに, IP アドレスから MAC アドレスを知るために ARP 要求パケットを送信し, 自分の MAC ア ドレスを教えるために返送するのが ARP 応答パケットなる. この ARP によって IP アドレスから MAC アドレスを検索することができ, リンク内の通信をすることが可能となる. ARP によるアドレ スの解決は自動的に行われるため, TCP/IP による通信では MAC アドレスを意識する必要はなく, IP アドレスのみを考えればよい.

本節のキーワード: MAC アドレス, IP アドレス, ARP, IPv4, ネットワーク部, ホスト部, クラス, サ ブネットマスク, プライベート IP アドレス, ブロードキャスト

ARP のパケットフォーマット ARP のパケットフォーマットを図 22 に示す. 送信元, 探索する IP アドレスおよび MAC アドレスが格納されるフィールドが存在する.

本節のキーワード: パケット, フレーム, ヘッダ, オクテット, 上位層, フラグメント, TTL, チェック サム, シーケンス番号, ウインドウサイズ

(25)

図 21: ARP の仕組み

参照

関連したドキュメント

筋障害が問題となる.常温下での冠状動脈遮断に

 通常,2 層もしくは 3 層以上の層構成からなり,それぞれ の層は,接着層,バリア層,接合層に分けられる。接着層に は,Ti (チタン),Ta

Internet Explorer 11 Windows 8.1 Windows 10 Microsoft Edge Windows 10..

HD 映像コミュニケーションユニット、HD コム Live、HD コムモバイルから HD コム Live リンクの接続 用

as every loop is equivalent to its left (or right) inverse modulo the variety of

In order to use the above radiation induced death rates G u ðtÞ and G q ðtÞ in an ODE model, first consider a cell cycle model for active and quiescent cells without the effects

L´evy V´ehel, Large deviation spectrum of a class of additive processes with correlated non-stationary increments.. L´evy V´ehel, Multifractality of

The orthogonality test using S t−1 (Table 14), M ER t−2 (Table 15), P P I t−1 (Table 16), IP I t−2 (Table 17) and all the variables (Table 18) shows that we cannot reject the