SOCインフラエンジニアのブログ

ITインフラや情報セキュリティについて発信するブログです。

UDP~2

レイヤ4プロトコルにおいて、もっとも重要なフィールドは

 

ポート番号

です。

 

「送信元ポート番号」と「宛先ポート番号」があります。

UDPTCPも、まずはポート番号ありきです。

 

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の重要な役割!

=======================