UDP~2
レイヤ4プロトコルにおいて、もっとも重要なフィールドは
ポート番号
です。
「送信元ポート番号」と「宛先ポート番号」があります。
IPヘッダさえあれば、世界中のどの端末までもIPパケットを届けることができます。
しかし、IPパケットを受け取った端末は、そのIPパケットをどのアプリケーションで処理すればよいかわかりません。
そこで、ポート番号を使用します。
ポート番号とアプリケーションは一意に紐づいていて、
ポート番号さえ見れば、どのアプリケーションにデータを渡せばよいかわかるのです。
◆3種類のポート番号
ポート番号は、「0~65535」の数字です。(16ビット分)
割り当て範囲と使用用途によって、
「System Ports」
「User Ports」
「Dynamic and/or Private Ports」 に分類されます。
「System Ports」と「User Ports」は、宛先ポートに使用され、主にサーバアプリケーションの識別に使用されます。
「Dynamic and/or Private Ports」 は、送信元ポート番号に使用され、主にクライアントアプリケーションの識別に使用されます。
[0~1023] ⇒ System Ports(Well-known Ports) ・・・一般的なAppで使用
[1024~49151] ⇒ User Ports・・・メーカ独自のAppで使用
[49152~65535] ⇒ Dynamic and/or Private Ports・・・クライアント側でランダムに割り当てて使用
■System Ports
ポート番号「0~1023」。
ICANNの一部門であるIANAによって管理されています。
一般的なサーバアプリケーションが提供するサービスに一意に紐づいています。
■User Ports
ポート番号「1024~49151」。
IANAによって管理されています。
メーカが開発した独自のサーバアプリケーションが提供するサービスに一意に紐づいています。
■Dynamic and/or Private Ports
ポート番号「49151~65535」。
IANAによって管理されておらず、クライアントがコネクションを作るとき、送信元ポート番号としてランダムに割り当てます。
送信元ポート番号にこの範囲のポート番号をランダムに割り当てることによって、どのアプリケーションプロセスに応答を返せばよいかがわかるようになります。
なお、ポート番号の範囲はOSにより異なっています。
Windowsは、「49152~65535」
Linuxは、「32768~61000」 (...範囲から外れとるな)
次は、UDPパケットの動きを見ていければと思います!
=======================
今日の一言
ポート番号は上位層のアプリケーションを識別する!これ、レイヤ4の重要な役割!
=======================