TCP/IPの基礎
通信する上での取り決めを「プロトコル」と呼びます。
企業・家庭内のLAN・インターネットで利用されていて、最もメジャーなプロトコルが「TCP/IP」です。
TCP/IPプロトコル
「TCP」と「IP」は別々のプロトコルですが、これに「UDP」などの関連プロトコルを含めてプロトコル郡として「TCP/IP」と総称します。
下記はTCP/IPの構造を「OSI参照モデル」と対比したものです。
OSI参照モデル | TCP/IPの構造 |
アプリケーション層 プレゼンテーション層 セッション層 |
アプリケーション層(HTTP、SMTP、TELNETなど) |
トランスポート層 | トランスポート層(TCP、UDPなど) |
ネットワーク層 | インターネット層(IP、ICMPなど) |
データリンク層 物理層 |
ネットワークインターフェース層 |
OSI参照モデル
「ISO(国際標準化機構)」と「現ITU-T(国際電気通信連合電気通信標準化部門)」
に策定されたデータ通信の標準アーキテクチャ。データ通信の機能が7つの階層に階層化されています。
TCP
「TCP(Transmission Control Protocol)」は、信頼性できる通信を実現するためのコネクション型のプロトコルです。
コネクション型とは、相手に通信データが正しく届いていることを確認しながら通信する形式のことで、通常の通信より信頼性が高いです。
TCPを利用する上位のプロトコルは、信頼性を高めるためのエラー制御などをTCPに任せせられます。下記はTCPの代表的な機能です。TCPは、FTP、Telnet、POP、SMTPといった多数の上位プロトコルで利用されます。
- 途中で消失・エラーが発生したパケットを再送する
- パケットの伝送順序を整列する
IP
「IP(Internet Protocol)」は、TCP、UDP、ICMPなどのデータ転送(ルーティング)を統べるコネクションレス型のプロトコルです。
コネクションレス型とは、相手に通信データが正しく届いているかどうか確認せず、一方的に送信する方式です。信頼性は低下する代わりに伝送速度は早くなります。下記はIPの主な機能です。
- IPアドレスの規定
- データグラム(伝送単位)の規定
- データグラムが伝送されるネットワーク経路の制御
IPアドレス(IPv4)
TCP/IPではネットワークに接続された機器を識別するためにIPアドレスを使います。
IPv4のIPアドレスは32ビットで構成されます。通常は8ビットごとに「.」で区切り10進数で表記します。
1進数表記 | 11000000.10101000.00000001.00000010 |
10進数表記 | 192. 168. 1. 2 |
IPアドレスは、ネットワークセグメントを識別するための「ネットワーク部」と、ネットワークセグメント内の機器を識別するための「ホスト部」に分けられます。
ネットワーク部とホスト部の境界はIPアドレスとセットで使われるサブネットマスクで判断します。サブネットマスクも32ビットで構成されていて、8ビットごとで区切って表記します。
IPアドレス・サブネットマスクの論理積で、ネットワーク自身を表すネットワークアドレスを算出します。
IPアドレス | 11000000.10101000.00000001.00000010 | 192.168.1.2 |
サブネットマスク | 11111111.11111111.11111111.00000000 | 255.255.255.0 |
ネットワークアドレス | 11000000.10101000.00000001.00000000 | 192.168.1.0 |
ブロードキャストアドレス | 11000000.10101000.00000001.11111111 | 192.168.1.255 |
ホスト部のビットを全て1にしたアドレス(上記例の場合「192.168.1.255」)は「ブロードキャストアドレス」と呼ばれます。同じネットワークに属する全ホストに送信するためのアドレスです。
ネットワークアドレスとブロードキャストアドレスは、ネットワークデバイスに割り当てられません。また、ネットワークアドレスが異なるネットワークへは、ルータを介さないと通信できません。
IPv6
現状メジャーなIPプロトコルは「バージョン4(IPv4)」ですが、「IPv6」も徐々に浸透しています。
IPv4は32ビットでアドレス部分を表しますが、インターネットに接続するホスト数が激増し、2011年頃に新規に割り当てられるIPアドレスが底をつき、IPv6が登場しました。
IPv6はアドレス部分が128ビットあり、加えて、IPv4にはなかったセキュリティ機能なども取り入れられています。
UDP
UDP(User Dategram Protocol)は、データの転送速度に優れたコネクションレス型のプロトコルです。
IPと同じくコネクションレス型なので、相手に通信データが正しく届いているか確認できませんが、通信の処理にかかるコストが少ないです。音声・映像などのストリーミング配信で利用されます。
ICMP
ICMP(Internet Control Message Protocol)は、エラーメッセージ・制御メッセージを伝送するコネクションレス型のプロトコルです。pingコマンド、traceroutoコマンドなどで利用される。