開発ノート【通信の共通言語:TCP/IPモデル】
開発ノート【通信の共通言語:TCP/IPモデル】です。
当サイトは、Bootstrap5で製作しています。
TCP/IPモデル
TCP/IPモデルは、OSI参照モデルに準拠していない。
TCPとIPと言う、二つのプロトコルで構成されている。
この二つ以外に関連性のある他のプロトコル(HTTP、FTPなど)も含めた総称として使われる言葉でもあるが、どのプロトコルかは決まっていない。(人の解釈によって異なる)
インターネット層から上のプロトコルをまとめてTCP/IPと言う認識でもよい。
- OSI参照モデルと類似している箇所が多い。
- OSI参照モデルと同じく、一連の通信を複数に分割して階層として考える。
- カプセル化、非カプセル化が行われ、データ+ヘッダが下位のレイヤーに渡される。
- TCP:Transmission Control Protocol
- IP:Internet Protocol
- TCP/IPモデルは、4階層。
- OSI参照モデルのネットワーク層とTCP/IPモデルのインターネット層の機能はほぼ同じ。
- HTTP:Hypertext Transfer Protocol(ホームページ)
- FTP:File Transfer Protocol(ファイル転送)
- SMTP:Simple Mail Transfer Protocol(メール送受信)
- PPP:Point to Point Protocol(二つの場所を1対1で接続。WANで使用)
PDUとカプセル化
四つの層
アプリケーション層
Webブラウザやメールソフトが通信を必要とする際のプロトコル(動作するプログラム)。
- 代表的なプロトコルは、HTTP(Web)、FTP(ファイル転送)、SMTP(メール転送)、POP3(メール配信)など。
- OSI参照モデルのプレゼンテーション層とセッション層の役割も担っている。
- OSI参照モデルでのPDU(カプセル化)は、TCP/IPモデルで「メッセージ」と呼ぶ。
トランスポート層
OSI参照モデルのトランスポート層と同様に、ホスト間でのデータ送受信における品質管理を行う。
- 代表的なプロトコルは、TCP、UDPなど。
-
データ送信に対して、品質を重視するかどうかで異なるプロトコルを利用する。
TCP:確実にデータを届けるために品質を重視するとき。
UDP:品質よりも処理を簡素化してシンプルに扱いたいとき。 -
トランスポート層のデータは、
TCP:セグメント
UDP:データグラム
と呼ぶが、総称して「パケット」とも呼ぶ。
インターネット層
インターネット層は、OSI参照モデルのネットワーク層に相当し、エンドツーエンドの通信を行うために必要なプロトコルの定義をしている。
- 代表的なプロトコルは、IP(Internet Protocol)、ARP、ICMPなど。
- OSI参照モデルと同様に、エンドツーエンドの通信でホストを特定し、途中の通信経路を決定している。
- インターネット層のデータは、「パケット」と呼ぶ。
- 途中のネットワーク機器で動作しているものもある。
リンク層
リンク層は、OSI参照モデルのデータリンク層と物理層に相当し、インターネット層から渡されたデータを直接接続された機器に届けるためのプロトコルを規定している。
物理層の役割も担っているため、ビット列の変換や0と1の規定もしている。
- 代表的なプロトコルは、Ethernet、PPP、PPPoE、ATMなど。
- インターネット層から渡されたパケットに、Ethernetヘッダと誤り検査のためのFrame Check Sequenceが付与される。
- リンク層のデータは「フレーム」と呼ぶが、「パケット」と呼ぶ場合も多い。
- 途中のネットワーク機器で動作しているものもある。