ネットワークポートの物理的側面

ネットワークポートの物理的側面

偶然見つけたこの記事これは、私がこれまで読んだ曖昧な記事とは異なり、私の

「コンピュータの背面にある鉛筆ほどの細いネットワーク ケーブル (またはワイヤレス ネットワーク アダプタ) には、内部に 65,536 個の微細な経路が含まれています。」

ポートは、異なる仮想接続を区別するために使われる単なる番号(ワイヤではない)であると常に言われてきました。これら2つの説明はどのようにして共存できるのか?

  • また、これは、ポートが使用されていないときに、ネットワーク ケーブルの一部が信号の転送に使用されていないことを意味するわけではありませんよね?

記事にはこうも書かれていた。

パケットは各ネットワーク ノードで停止する必要があり、次のようになります。

  1. 開いているポートを見つけ、
  2. そのポートを通過できる識別テストに合格し、合格しない場合は、
  3. 次の港に移動して、料金所を通過できるようになるまで再試行します。
  • パケットには特定の宛先ポートが含まれていると思っていたのですが、なぜ新しいオープンポートを検索するのでしょうか?
  • 最後に、身元確認テストに合格するには何が必要ですか?

答え1

ポートは、異なる仮想接続を互いに区別するために使用される単なる番号 (ワイヤではない) であると常に言われてきましたが、これら 2 つの説明が共存できるのはなぜでしょうか?

あなたが引用した段落には、比喩トランスポート層では、ポートパケット内の数字のみであり、物理的なものではありません。

物理層、つまり「リンク」層は知らない何でもTCP/UDP ポートや IP アドレスについては一切関係なく、一連のビットを一方から他方へ転送するだけです。

また、これは、ポートが使用されていないときに、ネットワーク ケーブルの一部が信号の転送に使用されていないことを意味するわけではありませんよね?

いいえ。接続が 1 つであろうと 20 であろうと、ケーブルはまったく同じように使用されます。有線イーサネット ネットワークでは、ワイヤのペアは 4 つだけです (古いケーブルでは 2 ペア)。65536 ペアであることは絶対にありません。すべてのワイヤが同時に使用されます。

記事には <...> とも書かれていました。パケットには特定の宛先ポートが含まれていると思っていたのですが、なぜ新しいオープンポートを検索するのでしょうか?

この時点で、この記事はゆっくりと「比喩」と「ナンセンス」の境界線を越えてきています。

TCP ポート番号は接続時に割り当てられ、その接続の両端でのみ使用されます。一方、ルーティングは「インターネット」層で行われ、IP アドレスのみが使用され、IP パケットに含まれるデータには注意を払わず、いかなる形でも変更しません。

(唯一の例外は、NAPT が実行されている場合です。たとえば、ホーム ルーターによって複数のコンピューターが 1 つの IP アドレスを共有するようにする場合などです。この場合、コンピューターが受信したパケットは、最初に送信されたものとは異なる TCP ポート番号または UDP ポート番号を持つ可能性があります。)

識別テストはネットワークファイアウォールを参照している可能性があります。しかし、ファイアウォールルールによってブロックされたパケットはない「次の港を探しに行く」; 彼らは単に捨てられるだけだろう。

答え2

その記事はひどい書き方です。ネットワークの概念を説明するために、比喩的な言葉と「一般的な知識」を使用しています。アドレス指定可能なポートは 65,536 個ありますが、それらは物理的な光ファイバー ストランドとして存在しているわけではなく、この記事で説明しようとしていたものも何もありません。使用可能なポートの数は、ある程度恣意的に導き出されており (当時は 16 ビットの整数がおそらく意味をなしていたでしょう)、RFC で標準化されている可能性があります。

私はネットワークの専門家ではありませんが、ネットワーク ハードウェア (スイッチなど) はファイアウォール タイプのルールを使用して、特定のポートのトラフィックを回線に沿って転送するかどうかを決定すると確信しています (たとえば、ISP が Bittorrent が使用するポートのトラフィックをブロックしたり、自宅のルーターが ping のポートをブロックしたりします)。

答え3

「コンピュータの背面にある鉛筆ほどの細いネットワーク ケーブル (またはワイヤレス ネットワーク アダプタ) には、内部に 65,536 個の微細な経路が含まれています。」

TCP は、両端のポートでトラフィックを分離し、シリアル メディア上の多数の多重化された「接続」の 1 つという概念を部分的に抽象化する役割を担っています。TCP は、送信元 IP+ポートと送信先 IP+ポートである「ソケット」という概念を使用します。同じメディア上に複数のソケットが存在する場合もありますが、もう一方の端の TCP/IP スタックがそれらを整理し、2 つのソケット上のトラフィックが混在することはありません。つまり、これはある意味では経路です。

TCP と UDP はポートとソケットの概念を使用します。下位レベルの IP などの他のプロトコルでは使用されません。ネットワーク インターフェイスから送信されるものはすべて TCP または UDP である必要はありません。

パケットは各ネットワーク ノードで停止する必要があり、次のようになります。

開いているポートを見つけ、そのポートを通過できる識別テストに合格し、合格しない場合は次のポートに移動して、料金所を通過できるようになるまで再度試行します。

これは私には意味がわかりません。通常、アプリケーションがソケットを開くときは、ポートを指定するか (ポートが使用中の場合、ソケットを開く試みは失敗します)、カーネルによって割り当てられたポートを使用します (サーバーは通常ポート番号を指定し、サーバーのクライアントは通常カーネルによって割り当てられたランダムなポートを使用します)。

おそらく、上記は上位層プロトコルの一部について説明しています。上記の説明を完全に理解するには、より多くのコンテキストが必要です。

関連情報