名前解決や時刻同期など即時性(リアルタイム性)が要求されるアプリケーションで使用される。接続交渉や確認応答を省略し、一方的にデータを送信し続けることによって即時性の向上を図っている。
図:UDPはパケットを送ったら送りっぱなし
表:UDPとTCPの比較
IPヘッダーのプロトコル番号は「17」
上位層から受け取ったアプリケーションデータを「UDPペイロード」とし、「UDPヘッダー」をくっつけることによって「UDPデータグラム」にする。
UDPのパケットフォーマット
即時性(リアルタイム性)に重きを置いているため、パケットフォーマットはシンプルそのもの。構成されるヘッダーフィールドはたったの4つ、ヘッダーの長さも8バイトしかない。クライアント(送信元端末)はUDPデータグラムを作り、通信相手のことを気にせずにどんどん送るだけ。
図:UDPのパケットフォーマット
送信元/宛先ポート番号
「ポート番号」はアプリケーション(プロセス)の識別に使われる2バイトの値。
クライアント(送信元端末)はコネクションを作るとき、OSが決められた範囲からランダムに割り当てた値を「送信元ポート番号」に、アプリケーションごとに定義されている値を「宛先ポート番号」にセットしてサーバーに送信する。
UDPデータグラム長
UDPヘッダーとUDPペイロードを合わせたサイズ
バイト単位の値
最小値はヘッダーのみで構成された場合の「8」、最大値は理論上「65535」
チェックサム
受け取ったUDPデータグラムが壊れていないか、整合性のチェックに使用される
IPヘッダーのチェックサムと同じ「1の補数演算」が採用されている。
ポート番号
トランスポート層のプロトコルにおいて最も重要なフィールド
UDPもTCPもまずポート番号ありき。
IPヘッダーさえあれば世界中どの宛先端末までもIPパケットを届けることができる。しかしIPパケットを受け取った端末は、そのIPパケットをどのアプリケーションで処理すればよいかわからない。そこでポート番号を使用する。ポート番号とアプリケーションは一意に紐づいていて、ポート番号さえ見ればどのアプリケーションに渡せばよいかわかるようになっている。
図:ポート番号でデータを渡すアプリケーションを識別する
ポート番号はアプリケーション層で動作するアプリケーションを識別する2バイトの数字。0~65535番までが「System Ports(Well-Known Ports)」「User Ports(Registerd Ports)」「Dynamic Ports(Private Ports)」の3種類に分類される。このうちSystem PortsとUser Portsは主にサーバーアプリケーションを識別するポートとして、宛先ポート番号に使用される。Dynamic Portsは主にクライアントアプリケーションを識別するポート番号として、送信元ポート番号に使用される。
ポート番号の範囲 | 名称 | 用途 |
---|---|---|
0 ~ 1023 | System Ports(Well-Known Ports) | 一般的なアプリケーションで使用 |
1024 ~ 49151 | User Ports(Registerd Ports) | メーカーの独自アプリケーションで使用 |
49152 ~ 65535 | Dynamic Ports(Private Ports) | クライアント側でランダムに割り当てて使用 |
System Ports
0 ~ 1023
一般的には「ウェルノウンポート(Well-known Ports)」として知られている。IANAによって管理されており、一般的なサーバーアプリケーションに一意に紐づいている。
ポート番号 | UDP | TCP |
---|---|---|
20 | – | FTP(データ) |
21 | – | FTP(制御) |
22 | – | SSH |
23 | – | Telnet |
25 | – | SMTP |
53 | DNS(名前解決) | DNS(名前解決、ゾーン転送) |
69 | TFTP | – |
80 | – | HTTP |
110 | – | POP3 |
123 | NTP | – |
443 | HTTPS(QUIC) | HTTPS |
587 | – | サブミッションポート |
User Ports
1024~49151
「Registerd Ports」とも呼ばれている。System Portsと同じようにIANAによって管理されており、主にメーカーが開発した独自のアプリケーションに一意に紐づいている。
ポート番号 | UDP | TCP |
---|---|---|
1433 | – | Microsoft SQL Server |
1521 | – | Oracle Database |
1985 | Cisco HSRP | – |
3306 | – | MySQL |
3389 | Microsoft Remote Desktop Service | Microsoft Remote Desktop Service |
8080 | – | Apache Tomcat |
10050 | – | Zabbix Agent |
10051 | – | Zabbix Trapper |
Dynamic Ports
49152~65535
「Private Ports」とも呼ばれている。IANAによって管理されておらず、主にクライアントアプリケーションがサーバーアプリケーションに接続するときに、送信元ポート番号としてランダムに割り当てる。
これによりどのクライアントアプリケーションにリプライパケット(応答)を渡せばよいかがわかる。
コメントを残す