web-dev-qa-db-ja.com

TCP vsUDP。閉じたポートでデータを送信する

エラーチェックでTCPとUDPパケットの違いを理解しようとしています。UDPパケットはコネクションレス型であり、パケットが宛先に安全に到着することを気にしません。そしてTCPパケットはUDPの反対です。

私の質問は、パケットがリモートホストの閉じたポートに送信された場合、UDPおよびTCPパケットでどのようなアクションが実行されますか?

UDPパケット-ICMP(コード3)による応答? TCPパケット-RSTパケットでの応答?

5
ebyrock

RFC 79 リセット生成ルールによると:

As a general rule, reset (RST) must be sent whenever a segment arrives
which apparently is not intended for the current connection.  A reset
must not be sent if it is not clear that this is the case.

There are three groups of states:

 1.  If the connection does not exist (CLOSED) then a reset is sent
 in response to any incoming segment except another reset.  In
 particular, SYNs addressed to a non-existent connection are rejected
 by this means.

ポートが閉じている(リッスンも通信もしていない)ため、接続はありません。そのため、TCPは、RSTパッケージで応答することになっています。

RFC 768 UDPの場合、閉じたポートでのアクションは指定されませんが、 ICMP RFC 792 はメッセージを指定しますタイプ3コード3、宛先到達不能:送信される可能性のある宛先ポート到達不能。

ただし、ポートが実際にこれを行うのは、フィルタリングされていない場合のみです。 Filtered 接続はまったく応答せず、単にパケットをドロップします。フィルタリングは通常、名前に値するファイアウォールによって実行されます。これは、提供する情報が少なくなるため、攻撃者のジョブが困難になるためです。

7
Anders J