基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,TCPとUDPについてシンプルにまとめています。はじめに,トランスポート層,ポート番号,ウェルノウンポート番号,コネクション型とコネクションレス型の説明を行い,次に,TCP,3ウェイハンドシェイクによるコネクションの確立,UDPの説明をしています。基本的な内容ですが,確実に理解できるよう,繰り返し頑張りましょう。
トランスポート層
TCP/IPのトランスポート層は,OSI基本参照モデルのトランスポート層に相当します。役割は,ポート番号により通信をするアプリケーションを識別し,データの転送効率や信頼性を確保しながら,データ(セグメント)を送り届けることです。
※ トランスポート層のプロトコルにはTCPとUDPがあり,TCPにおけるデータをセグメント,UDPにおけるデータをデータグラムという
ポート番号
ポート番号は,通信をするアプリケーションを識別するための番号で,16ビット(2進数16桁)のビット列です。
ウェルノウンポート番号
ウェルノウンポート番号とは,インターネットでよく使われるアプリケーションのために予約されている0~1023までのポート番号のことをいいます。主に,次のようなものがあります。
ポート番号 | プロトコル名 | TCP/UDP |
---|---|---|
20 | FTP(データ転送) | TCP |
21 | FTP(制御) | TCP |
22 | SSH | TCP |
23 | Telnet | TCP |
25 | SMTP | TCP |
53 | DNS | TCP/UDP |
67 | DHCP(サーバー) | UDP |
68 | DHCP(クライアント) | UDP |
80 | HTTP | TCP |
110 | POP3 | TCP |
123 | NTP | UDP |
443 | HTTPS | TCP |
ポート番号の具体的な割り当てや通信の流れについては、「インターネットへの接続と通信の流れ-インターネットへの接続 -情報処理シンプルまとめ」を参照してください。
コネクション型とコネクションレス型
コネクション型では,送受信する双方で論理的な通信回線を作るため,信頼性の高い通信が実現できます。ただし,制御情報を付加するため,伝送効率はよくありません。
コネクションレス型では,コネクションを確立せず,送信側が一方的にデータを送信します。受信側が正常に受け取っているかは確認せず次々とデータを送るため,大量のデータを高速に送信することができます。動画など,データが多少消失してもスムーズに再生することを優先する場合に利用されます。
TCP(Transmission Control Protocol)
TCPは,コネクション型のプロトコルで,通信開始時には(ポート番号ごとに)3ウェイハンドシェイクによりコネクションを確立します。通信時にはデータの到達確認を行います(確認応答)が,受け取ったデータに過不足やエラーがあった場合には,必要に応じて送信元に再送要求します(再送制御)。また,分割して送信したデータを正しく並べ替える機能(順序制御)もあります。そのため,信頼性は確保できますが,通信速度は低下します。
3ウェイハンドシェイクによるコネクションの確立
TCPは,3ウェイハンドシェイクという方法でコネクションを確立します。
※ 3ウェイハンドシェイクにより確立されるコネクションは,ソフトウェアが仮想的に作成する双方向,全二重の通信路(バーチャルサーキット)である
UDP(User Datagram Protocol)
UDPは,コネクションレス型のプロトコルで,通信時には信頼性よりも効率を優先するため,データの到達確認は行いません。そのため,信頼性は劣りますが,通信速度は速いです。
まとめ
今回は,TCPとUDPついて,シンプルにまとめてみました。確実に理解しておくべき内容ですので,繰り返し頑張りましょう。