ネットワーク講座 > TCP/IPプロトコル
TCP/IPネットワークアーキテクチャとは? †
TCP/IPネットワークアーキテクチャとは、TCPやIPを中心とした、様々なプロトコルの集まりを指しています。
TCP/IPネットワークアーキテクチャは、4つの階層から成っています。
レイヤ | コンピューター内部の対応 |
アプリケーション層 | アプリケーション(Webブラウザなど) |
トランスポート層 | OS |
インターネット層 | |
ネットワークインターフェース層 | NIC(Network Interface Card) |
OSI参照モデルとの対応は? †
ネットワークインターフェース層とは? †
TCP/IPのネットワークインターフェース層は、OSI参照モデルの物理層に相当します。
ネットワークインターフェース層に含まれるプロトコルは、
TCP/IPでは、ネットワークインターフェース層の仕様を特に規定していません。
つまり、TCP/IPのプロトコルは、ネットワークインターフェース層から独立しているので、あらゆるネットワークでTCP/IPを利用した通信を行うことができます。
インターネット層とは? †
TCP/IPのインターネット層は、OSI参照モデルのネットワーク層に相当します。
インターネット層には、TCP/IPの中心的なプロトコルである、IPが含まれています。
IPの他に、ARP、ICMP、OSPFなどのプロトコルも含まれています。
トランスポート層とは? †
TCP/IPのトランスポート層は、OSI参照モデルのトランスポート層とセッション層の一部に相当します。
トランスポート層には、TCPとUDPの二つのプロトコルがあります。
アプリケーション層とは? †
TCP/IPのアプリケーション層は、OSI参照モデルのセッション層の一部、プレゼンテーション層、アプリケーション層とに相当します。
アプリケーション層には、HTTP、DNS、DHCP、SNMP、SMTPなど、数多くのプロトコルが含まれています。
プロトコルの連携によるデータの流れは? †
例えば、WebサーバへアクセスしてWebサイトを見る場合、次のようなプロトコルが連携しています。
http://takaq1.plala.jp/contents/jitaku_server/network/network2-7.htm
階層ごとのデータの名称は? †
TCP/IPネットワークアーキテクチャでは、各階層ごとに、データの呼び名があります。
インターネット層のプロトコルは? †
(1) IPとは? †
IP(Internet Protocol)は、TCP/IPの名前の由来にもなっている、代表的なプロトコルです。
IPによってエンドツーエンドの通信ができます。
IPによって運ばれるデータを、IPパケットと呼びます。
IPパケットには、IPヘッダが含まれています。
IPヘッダの情報によって、ルータが適切なルーティングを行い、エンドツーエンドの通信が可能となります。
http://www.atmarkit.co.jp/fnetwork/tokusyuu/11mpls/mpls01.html
ルータの基本的な動作。
ルータにパケットが到着するたび、ルーティング・プロトコルにより学習したルーティング・テーブルとあて先IPアドレスを参照して、ネクスト・ホップへパケットをフォワーディングする。
IPv4ヘッダフォーマットとは? †
詳細 → IPヘッダ
IPパケットは、IPヘッダとデータ(IPペイロード)で構成されています。
IPパケット | |
IPヘッダ | IPペイロード |
- IPv4のヘッダは、12のフィールドとオプションで構成されています。
- オプションを含まない、12のフィールドだけのIPヘッダ長は、20バイトです。
- オプションが追加された場合でも、必ず4バイト単位で増えるように調整されています。
- IPヘッダ長は、最大で60バイトです。=オプションは最大で40バイトまで追加できます。
(2) ARPとは? †
詳細 → ARP
ARP (Address Resolution Protocol)は、イーサネットなどのLAN上で、TCP/IP通信を行う際に必要なプロトコルです。
- 関連していないIPアドレスとMACアドレスを対応させる役割を持つプロトコルがARP
- ARPによって、(MACアドレスの)アドレス解決を行い、イーサネットのフレームを生成シテ、ネットワーク上に送信できる。
- ARPは、ARPリクエストとARPリプライによって、目的のIPアドレスに対応するMACアドレスを求める。
GARPとは? †
詳細 → GARP
自分自身のIPアドレスに対するARPを、Gratuitous ARP(GARP)と呼ぶ。
「Gratuitous」とは「余計な」という意味。
GARPの目的は、主に次の2つ。
- IPアドレスの重複検出
- ARPキャッシュの更新
RARPとは? †
詳細 → RARP
Reverse ARPのこと。ARPと逆の働きをする。
- 機器によっては、電源をオフにするとIPアドレスを保持できない。
- 機器の起動時に、自動的にIPアドレスを取得するためのプロトコルがRARP (Reverse ARP)。
- MACアドレスからIPアドレスを取得する。
- RARPの動作には、RARPサーバの用意が必要。
あらかじめ、RARPサーバにMACアドレスに対応するIPアドレスを登録しておく。 - RARPクライアントがRARPサーバから、自分のMACアドレスに対応するIPアドレスを取得する。
(3) ICMPとは? †
詳細 → ICMP
- ICMP = Internet Control Message Protocol インターネット制御通知プロトコル
- IPのエラーメッセージや制御メッセージを転送するプロトコル。
- OSI参照モデルでいえば、L3(ネットワーク層)のプロトコル。
- TCP/IPでいえば、インターネット層のプロトコル。
機能 | コマンド | 内容 |
エラーレポート機能 | traceroute | どのような経路を通っていくか追跡する |
診断機能 | ping | 目的の相手と通信できるか=接続性を確認する |
トランスポート層のプロトコルは? †
(1) ポート番号とは? †
詳細 → ポート番号
- ポート番号とは、TCP/IPプロトコルスタックのアプリケーションプロトコルを識別するための識別番号。
- TCPまたはUDPのヘッダに記述され、上位のアプリケーションが何であるかを示す。
- IPアドレスによって目的のホストまで届けたら、次にポート番号によって目的のアプリケーションまでデータを送り届ける。
ポート番号には、
ウェルノウンポートは、RFC1700で定義されている。
(2) TCPとは? †
詳細 → TCP
- TCP = Transmission Control Protocol
- TCP/IPネットワークアーキテクチャにおけるトランスポート層のプロトコル
TCPの特徴
- ポート番号を使用して、適切なアプリケーションにデータを送り届ける。
- コネクション型プロトコルである。
- 3ウェイハンドシェイクで、TCPコネクションを確立する。
- 送信データにシーケンス番号を付けて、データの順序制御を行う。
- 送信データの確認応答がない場合は、エラー発生とみなして、データを再送する再送制御を行う。
- ネットワークの混雑度合いに応じて、送信するデータ量を調整するフロー制御を行う。
TCPヘッダのフォーマット †
詳細 → TCPヘッダ
- データオフセット
TCPヘッダの長さ(ヘッダ長)を示す。
- 予約
未使用領域。
- フラグ
6ビットのフィールド。
TCPセグメントの種類を示すビットが格納される領域。
フラグ | 意味 | 動作 |
URG | 緊急 | 優先的に送信する必要があるデータを含んでいることを示す。 |
ACK | 応答 | コネクションを確立する最初のTCPセグメント(=接続要求)以外は、すべてのTCPセグメントでACK=1 |
PSH | 強制転送 | 受信したデータをバッファに貯めず、すぐに上位のアプリケーションに渡す。(TELNETのエコーバック等) |
RST | 強制終了 | コネクションの強制終了を要求する。 |
SYN | 同期 | 接続要求に使う。SYN=1のTCPセグメントのシーケンス番号に、自身のACK番号を同期させる。 |
FIN | 送信終了 | コネクションの正常終了を要求する。 |
- アージェントポインタ
URGフラグが立っているときのみ有効で、緊急データの開始位置を示す。
コネクションの確立 †
- TCPセグメント1:AからBへの接続要求。
これは最初のTCPセグメントで、それ以前の受信確認がないため、ACK=0である。 - TCPセグメント2:BからAへの接続要求(SYN=1)+TCPセグメント1に対する応答(ACK=1)
- TCPセグメント3:AからBへのTCPセグメント2に対する応答(ACK=1)
3回の挨拶が必要なので、3ウェイハンドシェイクと呼ばれる。
コネクションの切断 †
- TCPセグメント1:AからBへの切断要求。
- TCPセグメント2:BからAへの応答。
- TCPセグメント3:BからAへの切断要求。
- TCPセグメント3:AからBへの応答。
双方向に形成しているTCPコネクションの切断は、片方向ずつ行うため、4回の挨拶を交わす。
AとBがお互いにFINフラグ=1で、相手に対して切断要求を行ってから、TCPコネクションを解放する。
FINによる正常終了ではなく、一方の都合で強制終了したい場合は、RSTフラグ=1にして送りつける。
(3) UDPとは? †
詳細 → UDP
- UDP = User Datagram Protocol の略。
- TCPと同じくTCP/IPネットワークアーキテクチャのトランスポート層のプロトコル。
- UDPは、コネクションレス型プロトコルで、上位のアプリケーションにデータを渡す以外は、基本的に何もしない。
UDPヘッダのフォーマット †
UDPの用途 †
TCPとUDPの信号名 †
アプリケーション層のプロトコルは? †
TCPやUDPの上位層(アプリケーション層)で働くプロトコルの代表例。
- HTTP (Hypertext Transfer Protocol ハイパーテキスト転送プロトコル)
Webアクセスを行うためのプロトコル
TCPのポート番号は80を使用
- SMTP (Simple Mail Transfer Protocol 簡易メール転送プロトコル)
電子メールを送信するためのプロトコル
TCPのポート番号は25を使用
- POP (Post Office Protocol)
電子メールを受信するためのプロトコル
TCPのポート番号は、POP2では109、POP3では110を使用
- IMAP (Internet Message Access Protocol)
電子メールを受信するためのプロトコル
TCPのポート番号は、IMAP2とIMAP4では143、IMAP3では220を使用
- DHCP (Dynamic Host Configuration Protocol)
TCP/IPで通信を行うために必要な情報=IPアドレス、サブネットマスク、デフォルトゲートウェイなど、様々な設定を自動的に取得するためのプロトコル
UDPのポート番号67、68を使用
- DNS (Domain Name System)
ホスト名とIPアドレスの対応付けを行うプロトコル
TCP/UDPのポート番号53を使用
- FTP (File Transfer Protocol)
ファイル転送を行うためのプロトコル
TCPのポート番号20、21を使用
添付ファイル: zu_02.png 2357件 [詳細] fig2-6.png 2130件 [詳細] network2-7.gif 2361件 [詳細] tcpip_encapsulation.jpg 2471件 [詳細]