ポート、ポート番号、プロトコル間の関係は何ですか?

ポート、ポート番号、プロトコル間の関係は何ですか?
  1. 「ポート」は通信エンドポイントですか(トランスポート層で)?

    「ポート番号」はポートに割り当てられたアドレスですか?

    ネットワークインターフェイスに割り当てられているIPアドレスを変更できるように、ポートが与えられたら割り当てられたポート番号を変更できますか?

  2. ~からhttps://en.wikipedia.org/wiki/Network_socket

    TCPポート53とUDPポート53ソケットは異なるソケットです。

    どういう意味ですか?具体的には、

    • 2つのトランスポートプロトコル(TCPとUDPなど)で同時にポートを使用できますか? (私が理解したのは、ポートがトランスポートプロトコルの一部であり、他の時間でも他のプロトコルに属することができないということです。)

    • 参照は、ポート番号53がTCPのポートとUDPのポートに異なる時間(同時に割り当てることはできません)に割り当てられることを意味しますか?

ベストアンサー1

TCPとUDPは、IPの上にある2つの異なるプロトコルです。 TCPポート番号はTCPプロトコルの一部であり、UDPポート番号はUDPプロトコルの一部です。はい。 TCPとUDPは異なるプロトコル番号を持つ2つの異なるプロトコルなので、両方を同時に使用できます(参考文献を参照/etc/protocols)。

UDPはより速く日常的な要求のオーバーヘッドが少ないため、DNSサーバーはUDP / 53とTCP / 53の両方を受信でき、UDPパケットサイズの制限により特に大規模なDNS要求にはTCPが必要になることがあります。ずっと前に始まった。たとえば、次はnamed両方を聞いています。

$ sudo lsof -i -nP | fgrep \*:53
named    1267  named   20u  IPv6    9691      0t0  TCP *:53 (LISTEN)
named    1267  named  512u  IPv6    9690      0t0  UDP *:53 
$ 

これによりnamed、上記の2つの異なるポートを介して数百または数千のUDPおよびTCPクライアント要求を同時に処理できます。

TCPとUDPはトランスポート層の2つの異なる実装であり、各TCPまたはUDPパケットの送信元ポートと宛先ポートを指定する2つの16ビットフィールドを持っています。名前マッピングのポート番号は、ファイルを調整することで変更できます/etc/services(おそらく非常に悪い考えかもしれません)。あるいは、クライアントシステムがすべて正常に動作するように再構成されたと仮定して、サーバーにデフォルト以外の一部のポート番号を受信するように指示することもできます。デフォルト以外のポート番号(たとえばsshd -p 1234a)に接続し、通常のポートのserver代わりssh -p 1234 serverにデフォルト以外のTCPポート1234に接続しますtcp/22。または、DNSサーバーがUDPポート8475で実行されるように設定できますが、オペレーティングシステムは通常dig -p 8475 @server ...UDP / 53またはTCP /でのみ機能するため、対応するカスタムUDPポートを照会するなどのカスタムクライアントプログラムが必要です。すべてのネームサーバーIPに対して53です。

おすすめ記事