ポートとは

ポートの概要とその仕組み

前のプレゼンテーションでは、IP アドレスの概要と、ルーターがアドレスのプレフィックス部分に基づいて、パケットを送信元ホストから宛先ホストにルーティングする仕組みについて説明しました。郵便サービスの例を使って、プレフィックスが郵便番号、残りの IP アドレスが住所のようなものであることを確認しました。

引き続き郵便の例で考えてみましょう。受取人の名前はどうなるでしょう。手紙の宛先には、受信者の名前(たとえば Lucille Ball)が含まれます。郵便サービスでは受取人の名前を確認する必要はありませんが、手紙が宛先の住所に届いたら、誰かが受取人の名前を確認して、その人に手紙を渡す必要があります。同じ住所に複数の人が住んでいることもあるからです。

インターネットホストにも同じことが言えます。ホストは複数のプロセスやアプリケーションを実行します。たとえば、サーバーでは、Web や電子メールなどの複数のサービスが実行される場合があります。また、ノートブック PC のようなユーザーデバイスは、Web ブラウザーや電子メールリーダーなどの複数のクライアントを実行できます。では、パケットがホストに到達したときに、どのプロセスにパケットを配信するかを判断するためにはどうすればよいでしょうか。 これが TCP と UDP の仕事です。

伝送制御プロトコル(TCP)とユーザー・データグラム・プロトコル(UDP)です。

  • これらはインターネットプロトコル(IP)スイートの一部で、TCP/IP とも呼ばれます。
  • これらのプロトコルがいわゆるトランスポート層を形成し、プロセス間の通信を定義します。 
  • TCP と UDP は、通信エンドポイントをポート番号で識別します。ポート番号は、手紙の受取人名に似ています。

 

では TCP について詳しく説明しましょう。 TCP は、送信側から受信側にバイトのストリームを送信するために使用されます。TCP では、バイトストリームが確実に順序どおりに送信されます。IP だけでは、順序どおりに送信されることは保証されず、確実に配信されるかもわかりません。IP パケットはドロップされる場合があります。TCP は、ストリームをセグメントに分割し、シーケンス番号を使用して IP パケット内の各セグメントを配信することで、正しい順序での配信を保証します。受信側は、受信したセグメントの確認応答を送信側に返し、送信側は、一定のタイムアウト時間の経過後にまだ確認応答を受け取れていないセグメントを再送信します。

 

次に、UDP について説明します。UDP は、送信側から受信側にデータグラムを送信するために使用されます。データグラムは IP パケットで配信されます。UDP データグラムは配信を保証しません。UDP データグラムと IP パケットの主な違いは、ポート番号だけです。 

プロセスは、(16 ビットの)番号で識別されるポートを介して通信します。送信元ポート番号と宛先ポート番号が各 IP パケットに追加されます。ポート番号は、多くの場合、IP アドレスの末尾にコロンを追加し、その後に<ポート番号>を指定する形式で記述されます。 

各ホストは、ポート番号をプロセスにマッピングするテーブルを保持しているため、ホストにパケットが到達すると、ホストはこのテーブルを使用してパケットを正しいプロセスにルーティングできます。この例では、宛先ポート 443 が 2 行目と一致しているため、パケットは Web サーバーに配信されます。

では、どのようにしてポート番号を決定するのでしょうか。サーバーで動作するサービスは、1~1023 のウェルノウンポート番号で接続をリッスンします。たとえば、

  • Web(HTTP)はポート 80、
  • セキュア Web(HTTPS)はポート 443、
  • DNS はポート 43 です。

クライアントは、要求するサービスに対応する宛先ポート番号を選択します。この例では、HTTPS サービスと通信するため、宛先ポート番号は 443 です。

 

送信元ポート番号については、クライアントはいわゆるエフェメラルポート(1024~65535 のポート)から通信を開始します。この範囲内の、現在使用されていないポート番号を選択します。この例では、クライアントがポート番号 12627 を選択しているため、これが送信元ポート番号になります。

サーバーが応答する際には、送信元ポートと宛先ポートが入れ替わります。

では、これらの IP アドレスはどのようにして決定するのでしょうか。その答えはネームサービスですが、これについては次のプレゼンテーションで説明します。

しかし、アドレス指定に関する説明を終了する前に、郵便サービスの例えをもう一度見て、まとめてみましょう。ポート番号は受取人名と同じです。受取人名を見る必要があるのは住民だけであるように、ポート番号を見る必要があるのはホスト自体だけです。IP アドレスを見ると、郵便番号のようなプレフィックスと、番地のような残りの IP アドレスに分けられています。この例で、郵便番号 90210 を担当する郵便局だけが番地を参照する必要があるのと同様に、MIT ネットワークのルーターだけが IP アドレス全体を参照する必要があります。90210 の区域外では手紙の配送に郵便番号のみが必要ですが、同様に MIT の外部ではパケットのルーティングにプレフィックスのみが必要です。

まとめます。Web 要求/応答などのアプリケーションメッセージは、IP パケットに格納されます。パケットは多くの場合、暗号化されます。IP パケットは、送信元と宛先の IP アドレスとポート番号によってアドレス指定されます。

インターネット・プロトコル・アドレス(IP アドレス)は、ネットワーク接続を介してデータを配信するために使用されます。このアドレスは、一意の識別子として機能する数値の文字列で構成されます。この文字列の後にコロンで区切って追加される 16 ビットの符号なし整数がポート番号です(例:17.253.207.54: 443)。この追加される番号は「ポート番号」と呼ばれ、サーバーに到達したインターネットトラフィックを適切なプロセスに転送するために使用されます。データパケットを適切なプロセスにルーティングするために、伝送制御プロトコル(TCP)とユーザー・データグラム・プロトコル(UDP)が使用されます。インターネットではさまざまなポート番号が使用されており、その仕組みに欠かせない要素となっています。

ポートの仕組み

コンピューターポートは、コンピューティングの黎明期から使用されてきました。ポート番号の概念は、Advanced Research Projects Agency Network(ARPANET)に由来します。

ポートは、接続エンドポイントを識別し、データをサービスに転送するために使用されます。仮想ポートと物理ポートがあります。物理ポートの一例として USB ポートがあります。コンピューターのポートと聞いて真っ先に思い浮かべるのが USB ではないでしょうか。しかし、実はコンピューターの世界では仮想ポートの方がより一般的であり、このポートがインターネットの仕組みに深くかかわっています。ポートは、インターネットの OSI モデルの 4 番目のレイヤーであるトランスポート層を構成する要素です。

ポートの仕組みを説明するために、「Lucille Ball, 1000 Roxbury Drive, Beverly Hills, CA 90210」宛ての手紙の例に戻りましょう。IP アドレスの記事では、手紙における住所に相当する仮想的なアドレスとして IP アドレスを説明しました。IP アドレスによって、宛先に手紙をルーティングできます。郵便の例えでは、手紙が宛先の住所に到着すると、記載されている名前によって対象者が特定されます。この意味で、ポートは Lucille Ball という名前に相当します。

0~65535 のポート番号を持つ、多くの仮想ポートがあります。インターネットプロトコル TCP および UDP により、クライアント/サーバー型スキームに基づいて、データパケットの送信先プロセスが決定されます。これについては、 HTTP(Hypertext Transfer Protocol) と HTTPSのページを参照してください。

ホストとは

多くの場合、(サーバーなどの)ホストでは、Web や電子メールなどの複数のプロセスやアプリケーションが実行されています。ホストごとに、ポート番号をプロセスにマッピングするテーブルを保持しています。データパケットがホストに到達すると、ホストはこのテーブルを使用してパケットを正しいプロセスやサービスにルーティングします。ノートパソコンなどのエンドポイントデバイスでは通常、Web ブラウザーや電子メールリーダーなどの複数のクライアントが実行されています。TCP と UDP は、宛先アドレスに到達したデータパケットの送信先を決定するプロトコルです。ただし、いずれもトラフィックを転送しますが、その機能は異なります。

TCP とは何ですか?

TCP では、バイトストリームを使用して、送信者から受信者にデータが送信されます。TCP の主要機能は、バイトストリームを正しい順序で確実に配信することです。IP パケットはルート内でドロップされる可能性があるため、この機能が必要です。TCP は、ストリームをセグメントに分割し、シーケンス番号を使用して IP パケット内の各セグメントを配信することで、順序どおりの配信を保証します。受信者は IP パケットシーケンスの受信を確認します。IP パケットシーケンスが受信済みとして確認応答されない場合、送信側はタイムアウト後に未受信セグメントを再送信します。

UDP とは何ですか?

UDP と TCP の主な違いは、配信が保証されないことです。UDP は、送信側から受信側にデータグラムを送信するために使用されます。データグラムは IP パケットで配信されます。ポート番号は、UDP データグラムと IP パケットの唯一の大きな違いです。しかし、このような配信保証がないため、電子メールや Web サイトなど、安全で信頼性の高いデータ転送を必要とするサービスには TCP ポートが適しています。

サービスのポート番号の例

ポート番号には、65,535 個の番号を使用できます。サービスは、1~1023 のウェルノウンポート番号で接続をリッスンします。最も使用されているサービスポート番号は、次のようなものです。

  • ポート 80:Web(HTTP)
  • ポート 443:セキュア Web(HTTPS)
  • ポート 43:ドメイン・ネーム・システム(DNS)
  • ポート 3389:リモート・デスクトップ・プロトコル(RDP)
  • ポート 21:ファイル転送プロトコル(FTP)
  • ポート 22:Secure Shell(SSH)。セキュアなネットワーク接続を作成するためのトンネリングプロトコル

ここで例として使用している IP アドレス 17.253.207.54: 443 では、HTTPS(ポート 443)を介して通信が行われます。

送信元のポート番号

送信元のポート番号には、1024~65535 の「エフェメラルポート」が使用されます。この範囲内の、現在使用されていないポート番号を選択できます。

Internet Assigned Numbers Authority (IANA)がポート番号のリストを管理しています。ポート 0 は IANA によって予約済みとして割り当てられており、使用できません。

Akamai、ポート、オンライン攻撃防御

クラウドベースのサイバー攻撃は、至る所に存在します。Akamai では、ハッカーやサイバー犯罪者の手口であるインターネット経由の Web 攻撃を排除する取り組みを行っています。IP パケット損失は、Web サーバーに対する分散サービス妨害(DDoS)攻撃が原因の可能性があります。よく知られている攻撃ベクトルとして、脆弱性の悪用を許す保護されていないポートがあります。Akamai の専用インフラが提供する DDoS 防御では、攻撃がアプリケーション、データセンター、インターネットに接続されているインフラ(パブリックまたはプライベート)に及ぶ前に、クラウドで攻撃を阻止できます。Akamai 独自のアーキテクチャにより、DNS リソースを専用の重複しないクラウドに分割しています。Akamai のフルマネージド型ソリューションは、225 名以上からなる最前線の SOCC 緊急対応要員に支えられており、攻撃トラフィックをフィルタリングして最大規模の攻撃さえも阻止します。そのため、防御担当者を優先度の高いセキュリティプログラムに集中させることができます。Akamai は、クラウドと分散型ワークスタイルによってもたらされる脆弱性から現代のエンタープライズを保護します。

Akamai とサイバーセキュリティ

Akamai は、IP、HTTP、HTTPS などのプロトコルや、ポートの仕組みを熟知しているからこそ、自信を持ってサイバーセキュリティをお客様に届けることができます。セキュリティだけでなく、Akamai はクラウド・コンピューティング・ソリューションのスイートによりクラウドコンピューティングを最適化し、セキュリティ、スケーラビリティ、可視性を提供します。また、特定のクラウド・サービス・プロバイダーに縛られることもありません。Akamai のクラウドコンピューティング製品スイートには Download Delivery の製品ラインが含まれており、大容量 HTTP ファイルのダウンロードを、常にグローバル規模で完全に最適化できます。

よくある質問(FAQ)

ポートには仮想ポートと物理ポートがあり、ネットワークの開始位置と終了位置を識別するために使用されます。仮想ポートには、接続エンドポイントを識別し、特定のサービスまたはプロセスへのデータの転送に使用される 16 ビットの一意の番号が割り当てられます。ポートは、電子メールや Web ページなど、デバイスに到達したさまざまなタイプのトラフィックを転送するために使用されます。

ポートでは、TCP と UDP の 2 種類のプロトコルが使用されます。TCP では、パケットを複数のストリームに分割し、バイトストリームを正しい順序で配信できるため、より信頼性が高いサービスを提供できます。受信確認応答を受け取れなかったストリームは再送信されます。

ポート番号の範囲は 0~65535 です。番号 1~1023 はサービスに割り当てられます。1024~65535 は送信元の識別に使用されるエフェメラルポートです。ポート 0 は、 Internet Assigned Numbers Authority (IANA)によって「予約済み」として割り当てられています。

攻撃者はポートをスキャンして、悪用できる可能性のあるオープンポートを探します。ファイアウォールは、セキュリティルールに基づいてトラフィックをブロックまたは許可します。ハッカーは、オープンポートを悪用して悪意のあるトラフィックを配信しようとします。ファイアウォールは、電子メール用の 25 番ポート、HTTP Web トラフィック用の 80 番ポート、セキュア HTTPS Web トラフィック用の 443 番ポートなど、いくつかの重要なサービスを除くすべてのポートへのトラフィックをブロックします。ポート 3389 は RDP トラフィックで使用されるポートですが、このポートはよく知られる攻撃ベクトルです。 ハッカーは RDP の脆弱性を探し、ランサムウェア攻撃やその他のエクスプロイトに使用します。

多くの場合、(サーバーなどの)ホストでは、Web や電子メールなどの複数のプロセスやアプリケーションが実行されています。ホストごとに、ポート番号をプロセスにマッピングするテーブルを保持しています。データパケットがホストに到達すると、ホストはこのテーブルを使用してパケットを正しいプロセスやサービスにルーティングします。ノートパソコンなどのエンドポイントデバイスでは通常、Web ブラウザーや電子メールリーダーなどの複数のクライアントが実行されています。TCP と UDP は、宛先アドレスに到達したデータパケットの送信先を決定するプロトコルです。ただし、いずれもトラフィックを転送しますが、その機能は異なります。

TCP では、バイトストリームを使用して、送信者から受信者にデータが送信されます。TCP の主要機能は、バイトストリームを正しい順序で確実に配信することです。IP パケットはルート内でドロップされる可能性があるため、この機能が必要です。TCP は、ストリームをセグメントに分割し、シーケンス番号を使用して IP パケット内の各セグメントを配信することで、順序どおりの配信を保証します。受信者は IP パケットシーケンスの受信を確認します。IP パケットシーケンスが受信済みとして確認応答されない場合、送信側はタイムアウト後に未受信セグメントを再送信します。

UDP と TCP の主な違いは、配信が保証されないことです。UDP は、送信側から受信側にデータグラムを送信するために使用されます。データグラムは IP パケットで配信されます。ポート番号は、UDP データグラムと IP パケットの唯一の大きな違いです。しかし、このような配信保証がないため、電子メールや Web サイトなど、安全で信頼性の高いデータ転送を必要とするサービスには TCP ポートが適しています。

Why customers choose Akamai

Akamai is the cybersecurity and cloud computing company that powers and protects business online. Our market-leading security solutions, superior threat intelligence, and global operations team provide defense in depth to safeguard enterprise data and applications everywhere. Akamai’s full-stack cloud computing solutions deliver performance and affordability on the world’s most distributed platform. Global enterprises trust Akamai to provide the industry-leading reliability, scale, and expertise they need to grow their business with confidence.

Akamai の全セキュリティソリューションをご紹介