UDP(User Datagram Protocol)

名前解決や時刻同期など即時性(リアルタイム性)が要求されるアプリケーションで使用される。接続交渉や確認応答を省略し、一方的にデータを送信し続けることによって即時性の向上を図っている。

図: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 ~ 1023System Ports(Well-Known Ports)一般的なアプリケーションで使用
1024 ~ 49151User Ports(Registerd Ports)メーカーの独自アプリケーションで使用
49152 ~ 65535Dynamic Ports(Private Ports)クライアント側でランダムに割り当てて使用

System Ports

0 ~ 1023

一般的には「ウェルノウンポート(Well-known Ports)」として知られている。IANAによって管理されており、一般的なサーバーアプリケーションに一意に紐づいている。

ポート番号UDPTCP
20FTP(データ)
21FTP(制御)
22SSH
23Telnet
25SMTP
53DNS(名前解決)DNS(名前解決、ゾーン転送)
69TFTP
80HTTP
110POP3
123NTP
443HTTPS(QUIC)HTTPS
587サブミッションポート

User Ports

1024~49151

「Registerd Ports」とも呼ばれている。System Portsと同じようにIANAによって管理されており、主にメーカーが開発した独自のアプリケーションに一意に紐づいている。

ポート番号UDPTCP
1433Microsoft SQL Server
1521Oracle Database
1985Cisco HSRP
3306MySQL
3389Microsoft Remote Desktop ServiceMicrosoft Remote Desktop Service
8080Apache Tomcat
10050Zabbix Agent
10051Zabbix Trapper

Dynamic Ports

49152~65535

「Private Ports」とも呼ばれている。IANAによって管理されておらず、主にクライアントアプリケーションがサーバーアプリケーションに接続するときに、送信元ポート番号としてランダムに割り当てる。

これによりどのクライアントアプリケーションにリプライパケット(応答)を渡せばよいかがわかる。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です