エラーチェックでTCPとUDPパケットの違いを理解しようとしています。UDPパケットはコネクションレス型であり、パケットが宛先に安全に到着することを気にしません。そしてTCPパケットはUDPの反対です。
私の質問は、パケットがリモートホストの閉じたポートに送信された場合、UDPおよびTCPパケットでどのようなアクションが実行されますか?
UDPパケット-ICMP(コード3)による応答? TCPパケット-RSTパケットでの応答?
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 接続はまったく応答せず、単にパケットをドロップします。フィルタリングは通常、名前に値するファイアウォールによって実行されます。これは、提供する情報が少なくなるため、攻撃者のジョブが困難になるためです。