TCP/IPモデル
TCP/IPは、インターネットを含む多くのネットワークで利用されている通信プロトコル群の総称です。これは、通信機能を階層的に分割したプロトコルスタックとして構成されており、一般的に次の4つの層に分けられます。
- アプリケーション層 (Application Layer):
- ユーザーが利用するアプリケーション(Webブラウザ、メールクライアントなど)がデータを送受信する際のルールを定義します。データの表現形式(文字コード、画像形式など)の処理も行います。
- プロトコル例: HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS
- トランスポート層 (Transport Layer):
- アプリケーション間でデータを確実に、または高速に転送するためのルールを定義します。通信するプログラム間のデータ伝送確立や、エラー制御、フロー制御などを担当します。
- プロトコル例: TCP (Transmission Control Protocol), UDP (User Datagram Protocol)
- インターネット層 (Internet Layer):
- ネットワーク上のデータ送信先を識別し、送信元から送信先までの最適な経路(ルーティング)を決定します。
- プロトコル例: IP (Internet Protocol), ICMP (Internet Control Message Protocol)
- ネットワークインターフェース層 (Network Interface Layer):
- インターネット層から受け取ったデータを、物理的なネットワーク媒体(イーサネットケーブル、Wi-Fiなど)に送り出すための処理を実行します。電気信号への変換や、MACアドレスによる通信などを担当します。
コネクション型とコネクションレス型通信
- コネクション型通信:
- 通信を開始する前に、送信側と受信側で接続(コネクション)を確立し、データの送受信中にその接続を維持します。
- データが正しく届いたかを確認する確認応答や、データの順序保証、再送制御などが行われるため、信頼性が高いです。
- 例: TCP(Web通信、メール送信など)
- コネクションレス型通信:
- 通信を開始する前に接続を確立せず、データを一方的に送信します。
- 確認応答や順序保証がないため、信頼性は低いですが、オーバーヘッドが少なく高速です。
- 例: UDP(動画ストリーミング、音声通話など)
通信方式
- ユニキャスト (Unicast):
- 1対1の通信です。特定の送信元から特定の1つの宛先へデータを送信します。
- ブロードキャスト (Broadcast):
- 同一ネットワーク内の全てのホストに対してデータを送信します。
- マルチキャスト (Multicast):
- 特定のグループに属する不特定多数のホストに対してデータを送信します。同じIPアドレスが登録された複数のホストにデータを送信する際に利用されます。
- エニーキャスト (Anycast):
- 特定のIPアドレスを持つ複数のホストのうち、最も近いホスト(ルーティング的に)にデータを送信します。主にDNSサーバーなどで利用され、負荷分散や冗長化に貢献します。
IPアドレスの種類
- グローバルIPアドレス (Global IP Address):
- インターネット上で一意に割り当てられるIPアドレスです。インターネットに直接接続されたデバイスが使用します。
- 国際機関IANA (Internet Assigned Numbers Authority) が管理し、その配下の地域別レジストリ(日本ではJPNIC: Japan Network Information Center)が各ISP(インターネットサービスプロバイダ)に割り当て、ISPがユーザーに提供します。
- プライベートIPアドレス (Private IP Address):
- 組織内のローカルネットワーク(LAN)でのみ使用可能なIPアドレスです。インターネットからは直接アクセスできません。
- 特定の範囲のIPアドレスがプライベートIPアドレスとして予約されており、各組織が自由に割り当てて使用できます。
ポート番号
ポート番号は、TCP/IP通信において、データを送受信するアプリケーションやサービスを識別するために使用される番号です。IPアドレスが通信相手のコンピュータを特定するのに対し、ポート番号はそのコンピュータ上のどのアプリケーションと通信するかを特定します。
- ウェルノウンポート (Well-Known Ports): 0番から1023番までのポート番号で、特定の標準的なサービスに割り当てられています。
- 20: FTP (データ転送)
- 21: FTP (制御情報)
- 22: SSH (Secure Shell)
- 23: Telnet
- 25: SMTP (Simple Mail Transfer Protocol)
- 53: DNS (Domain Name System)
- 80: HTTP (Hypertext Transfer Protocol)
- 110: POP3 (Post Office Protocol version 3)
- 143: IMAP (Internet Message Access Protocol)
- 443: HTTPS (HTTP Secure)
ネットワークを介したアクセスの先で実際に権限を判定する仕組みについては、 Linuxのパーミッション完全ガイド で解説している。
よくある質問(FAQ)
Q. TCP/IPモデルの4つの層とは? A. 下位から順に、物理的な信号送出を担う「ネットワークインターフェース層」、経路選択(ルーティング)を担う「インターネット層」、アプリケーション間のデータ伝送を制御する「トランスポート層」、そしてWebブラウザやメールクライアントなどが利用する「アプリケーション層」の4層で構成される。
Q. コネクション型通信とコネクションレス型通信の違いは? A. コネクション型通信(TCPなど)は通信前に接続を確立し、確認応答や再送制御によって信頼性を確保する。コネクションレス型通信(UDPなど)は接続を確立せずデータを一方的に送信するため信頼性は下がるが、オーバーヘッドが少なく高速である。動画ストリーミングや音声通話のようにリアルタイム性が重視される用途ではUDPが使われる。
Q. ウェルノウンポートとは何番から何番まで? A. 0番から1023番までのポート番号で、SSH(22)、DNS(53)、HTTP(80)、HTTPS(443)など標準的なサービスに割り当てられている。