着信トラフィックと発信トラフィックの両方に単一のポートを使用できないのはなぜですか?

私はネットワークポートに関連する何かを理解しようとしています。それは私には明らかではありません。

問題は、着信トラフィックと発信トラフィックの両方で同じポート番号を使用できないのはなぜですか?

この質問は、NATポート転送に関するいくつかのアドバイスによって発生しました。

私が知ることから、IPパケットヘッダーには、送信元アドレスと宛先アドレスのフィールドが含まれています。これは、パケットが着信か発信かを判断するために知っておく必要があると思います。

私はこれが簡単な質問であることを理解しています。学習リソースがあれば、ファンダメンタルズからネットワーキングを深く理解するのに役立つと思うと私に指摘することができます。

ありがとう。

4
「ネットワークポート」と言うと、実際には「TCPとUDPポート」を意味しますか?
追加された 著者 Todd Wilcox,
Todd Wilcox:はい、TCPとUDPポート。 NATポート転送で使用できる他のものはありますか?
追加された 著者 emilliman5,
これは面白い質問だと思います。 +1
追加された 著者 yoyo_fun,

3 答え

あなたはできますし、いくつかのプロトコルは(isakmp)ですが、あまり柔軟ではありません。 2つの欠点があります。

  1. データストリームは1つしか作成できません。一般的なWebブラウザは、パフォーマンスを向上させるためにWebサーバーに複数のtcp接続を行います。そのため、ウェブページのグラフィックの前にテキストが表示されることがよくあります。 1つのストリームでしかできません。
  2. ホストが同時にクライアントとサーバーの両方になる可能性があります。ポート番号が同じであれば、それを行うことはできません。

最終的に、送信元の宛先ポートとエフェメラルポートによく知られているポートを使用すると、最も柔軟性があります。

3
追加された
あなたのアドバイスをいただきありがとうございます。それで、コントロールストリームからデータストリームを分割する必要がありますか?たとえば、FTPのAFAIKでは、デフォルトのポートはポート20(送受信データ用)とポート21(制御用)です。 2つの機能を分割することによるパフォーマンス上のメリットがあることは分かっていますが、必要なポート数を決定するプロトコル設計か、単一のポートでデータと制御をブロックする何かがありますか?
追加された 著者 emilliman5,
ありがとう、スリーピーマン。ポート要件がプロトコル固有であることを知ることができます。リンクありがとう。
追加された 著者 emilliman5,
これはプロトコル設計であり、FTPについて話している場合、これはFTPプロトコルが設計されたときに意図的に行われます。はい、これはすべてプロトコル設計内で指定されています。他のプロトコルは、設計要件ごとに異なる量のポートを使用します。 slacksite.com/other/ftp.html をご覧ください。パッシブでアクティブで、この特定のプロトコルにどのようにポートが使用されているかを示します。これがどのように機能するかについての良い概観を与えるかもしれません。
追加された 著者 SleepyMan,

物理ポートは、ポートが特に半二重に設定されていない限り、送受信に使用できます。

私はあなたが実際のポートのソースと物理ポートとは何の関係もない宛先であると混乱していると思います。

NATの場合は、宛先と送信元ポート番号が異なります。 HTTP用のポート80などのサービスを提供するサーバーに置かれる宛先ポート番号。ソフトウェアはこのポート番号で多くの接続要求を受け取り、ソフトウェアは各接続ごとに異なるプロセスを区別する必要があります。

ソースポート番号は、任意の特定のサービスに使用されない無作為に選択された上位ポートであり、これは、それらが接続のソースであるときにクライアントデバイス上に存在する。これは、ソフトウェアがさまざまなクライアントに対して行われているさまざまな接続を区別するのにも役立ちます。何百もの同時接続を持つHTTPサーバーを想像してみてください。ブラウザがポート80自体を接続先とする異なる接続については言及していません。データが戻ってくると、ソース・ポート番号に依存して、スタック・モデルの上位層のデータがどこにあるかをソフトウェアに通知します。

NATは送信元ポート番号を使用して、NATされているさまざまな接続を管理します。それらがすべて同じソースポートを使用していた場合、そのテーブルを使用するNATは異なる接続を区別することができず、ローカルネットワーク上のどこにデータを転送する必要があるかを認識します。 TCP接続がまだ生きている限り、NATの内部にあるローカルIPアドレス。

何が起きているのかをよりよく理解し、ソースポートを同じにすることができない理由を誇張するには、次のリソースをチェックしてください。

http://www.firewall.cx /networking-topics/protocols/tcp/133-tcp-source-destination-ports.html

http:// www .firewall.cx/networking-topics/network-address-translation-nat/233-nat-overload-part-1.html

これがあなたの探求に役立つことを願っています。

スリーピーマン

1
追加された

In networking, we often speak of physical and logical. Physical ports are actually pairs of links - 1 send and 1 receive, TX & RX. Logical ports are defined in software, for example, an IP Stack.

T1物理ポートは、たとえば、両方向で1.544Mbpsです。それは実際には2つのリンクです - 送信し、受信します。イーサネットでも同じです。

enter image description here

0
追加された
Ronに感謝します。私は論理レベルでポートを参照していました。いくつかのプロトコルは送信と受信の両方に同じ論理ポートを使用できると思われるので、他のプロトコル用の複数の論理ポートを持つ要件は、IPの本質的な制限を回避するものではなく、プロトコルの設計によるものですスタック。
追加された 著者 emilliman5,