22、25、80、443、3306などのコンピュータポートは、マザーボードのものか、それともオペレーティングシステムのものか。


0

私が知っている限りでは2018年現在、65535の利用可能なポートのうちのいくつかは "ポートプロトコル"と呼ばれるもののうちの少なくとも1つを持っています。私はそのような2つのプロトコルを知っています。 TCPとUDP、TCPが主に使用されているものです。

私が間違っていないのであれば、これらのポートはオペレーティングシステムの一部であり、コンピュータポートのマザーボードではありません。 Ubuntu、WSL、それともこのUbuntuに追加の65535の利用可能なポートがありますか?

注意:(Ansible YAML構文のように)これらのプロトコルを略して "protos"と呼ぶ人もいます。

回答:


2

あなたは正しい軌道に乗っています - この意味であなたが何かを接続するハードウェアの物理的な部分を意味するのではありません - それはTCPとUDPネットワークプロトコルのある部分に与えられた名前です。ハードウェアポートとの混乱を避けるために、次の用語を使うことができます。 TCPポート または UDPポート (UDPにもポートがあります)。

コンピュータネットワークのほとんどは、単一の通信媒体を共有することです。オリジナルのイーサネットネットワークは物理的に単線で接続されていました、そしてそれでもワイヤレスは同じ原理で機能します - あるチャンネルのすべてのワイヤレス機器は同じ電波を共有しなければなりません。

しかし、複数のプログラムに通信媒体を使用させることもできます。たとえば、Webブラウザ(HTTPポート80)と電子メールクライアント(SMTPポート25)を同時に実行するとします。

TCPまたはUDPポートの概念により、システム上の複数のプログラムが同じ媒体を使用することができます。

  • 話をしたいプログラムがTCPに空きポート番号を提供するように要求します。

  • 接続を受信したいプログラムは、TCPにどのポート番号を使用するかを指示します。

  • TCPは通信をセグメントに分割します。ポート番号とセグメントが含まれています。

  • そのため、同じシステム上でデータを送受信する複数のプログラムを使用できます。ポート番号は、有線または通信媒体を介して送信される単一のストリームからデータを分離する方法です。

  • このため、ネットワークを介して会話したいプログラムごとに別々のNICを用意する必要はありません。

ポートはプロセスに関連付けられているため、「システムごとの」リソースです。同じポートで同時に2つのプロセスをリスニングまたは受信させることはできません。 ソース 同じポート port - 与えられた他のポートで待ち受けているプロセスです。

プロト の略 プロトコル に固有のものです ufw、そして他のプログラム。


1

ネットワークポートはハードウェアではなく、ネットワークスタックがネットワークトラフィックを適切なアプリケーションに向けるためのソフトウェアラベルにすぎません。独自のネットワークスタックを実行している(したがって独自のIPアドレスを持つ)オペレーティングシステムは、VMで実行されているかどうかにかかわらず、独自のネットワークポートを持ちます。


1

ポート(例:1〜65535)とプロトコル(tcp、udp、icmp、その他のあいまいなものを含む)はインターネット標準で定義されており、OSによってネットワークスタックとして実装されています。 (実際には、ipv4とipv6には異なるスタックなど、複数のスタックが存在する可能性があります)

複数のOS /仮想化の場合、スタックが基礎となるインタフェースにアクセスできる限り、各OSが独自のスタックを使用することが可能です。 +仮想化システムの場合、VMには仮想または実際のインタフェース(多くの場合、ホストソフトウェアによってブリッジまたはルーティングされるネットワークカードまたは仮想ネットワークカード)が必要です。ブリッジドインターフェイスの場合、ブリッジングは下位レベルで行われるため、OS上のIPスタックは無視されますが、ルーテッド設定の場合はパケットもホストによって処理されます)。


0

マザーボードのポートは、I / O用の物理ケーブル用の物理レセプタクルです。

TCPまたはUDPポート番号は、ID番号としてのみ機能します。 比喩的 データパケットの多くのフローのうちの1つが送信されることができるレセプタクル。ネットワークからTCPパケットを受信するシステム上の各プロセス(app)は、OSからポート番号の使用を要求する必要があります。それ以降、OSがそのポート番号宛てのパケットを受信すると、そのパケットデータを渡します。そのポート番号を所有するプロセスに沿って。

ネットワーキングは、各層ごとに異なるプロトコルである、独立した層のスタックとして設計されています。各レイヤのプロトコルは各パケットの前面に独自のヘッダを置き、各レイヤのヘッダは受信側に次のレイヤのプロトコルが何であるかを知らせるある種の数値IDフィールド(多くの場合16ビットの符号なし整数)を持ちます。その次のプロトコルを処理するために、パケットを正しいコードに渡すことができます。

伝統的な "Ethernet-II"スタイルのEthernetヘッダは "EtherType"フィールドを持ち、それは次のプロトコルが何であるかを示します。 EtherType 0x0800は、このイーサネットフレームにIPデータグラムが含まれていることを意味します。

IPヘッダーには、このIPデータグラムの内容を処理するためにどのトランスポート層プロトコルが必要かを示す「プロトコル」フィールドがあります。値6はTCPを意味し、値17はUDPを意味します。

TCPとUDPはどちらも同じモデルのポート番号を使用します。どちらもUInt16送信元ポートとUInt16送信先ポートを持っています。 TCPとUDPのポート番号は柔軟で、異なるプロトコルにマッピングすることができます。しかし、いくつかの強力な規約があるため、TCPポート80との間のトラフィックはHTTP(またはプロキシやファイアウォールを通過しようとするためにHTTPに見せかけようとする他のプロトコル)になる可能性が非常に高いです。

私はあなたがIPプロトコル番号をTCP / UDPポート番号と混同する何らかのソフトウェアに何らかの露出をしたにちがいないと思います。 IPプロトコル番号は、TCP / UDPポート番号がトランスポート層で機能するのと同じ目的でIP層で機能しますが、異なる層ではまだ別々の概念であり、混同しないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.