web-dev-qa-db-ja.com

ほとんどのアプリケーションプロトコルに2つのポートが割り当てられているのはなぜですか?

そのため、OSIモデルのアプリケーション層について学習しようとしています。IANAのWebサイトにアクセスすると、よく知られているプロトコルのほとんどで、TCPとUDPに同じポートが割り当てられていることがわかります。

たとえば、HTTPはTCPポート80を使用することを知っているよく知られたプロトコルですが、IANA WebサイトにはUDPのポート80もリストされています。DNSなどの他の有名なプロトコルの場合も同様です。 SMTPなど、

これは、これらすべてのプロトコルがTCPとUDPの両方を使用することを意味しますか?その場合、HTTPプロトコルがTCPとUDP?

1
akellas

特定のポートのTCPバージョンとUDPバージョンの両方を登録したプロトコルは、少なくとも場合によっては両方のトランスポートプロトコルを使用するため、またはある時点で誰かがプロトコルの追加を提案したために登録します。他のトランスポートを使用しますが、その提案が広く展開されることはなかった可能性がありますが、他のトランスポートのポートの登録を解除する理由はありませんでした。理由はプロトコルによって異なります。

HTTPは従来ポート80/TCPを使用していましたが、現在QUIC(HTTP/3)は80/UDP(または443/UDP)を使用しています。

DNSは従来53/UDPを使用していましたが、応答メッセージが単一のUDPパケットに対して大きすぎる場合や、1つのDNSサーバーがすべてのDNSレコードをダウンロードする「ゾーン転送」の場合など、場合によっては53/TCPにフォールバックします。そのドメインのセカンダリDNSサーバーとして機能するためのドメイン全体。また、DNS over TLS(DoT)を実行してDNSを保護することにも関心があります。これは、DTLS over UDPではなく、TCPを介して行われます。ただし、DNS over HTTPS(DoH)はDoTよりも牽引力を獲得しているようです。

2
Spiff