TCP/UDP - ポート番号

各層の役割 - ちょっとおさらい

他の階層との役割の違いを解説する前に、ネットワーク層と データリンク層の役割についておさらいしておきましょう。

○データリンク層
データリンク層では

「物理的に直接接続されたノード間でのデータのやりとりが可能」

になります。

この「物理的に直接接続されたノード」とは以前説明したLAN(Local Area
Network)もこの定義に当てはまります。
データリンク層は「コリジョン・ドメイン」を分割することが可能です。

詳細は・・・

コリジョンドメインとブロードキャストドメイン

○ネットワーク層 ネットワーク層では

「異なるブロードキャスト・ドメインのノード間でデータのやり取りが可能」

になります。

あるコンピュータから目的のコンピュータまで複数のネットワークを経由す
る様な通信の場合、目的のコンピュータまでの経路を探し、データを運ぶ
(ルーティング)役目をするのがネットワーク層です。
データリンク層は「ブロードキャスト・ドメイン」を分割することが可能です。

詳細は・・・

ネットワーク層

 

トランスポート層

ようやくレイヤ 4、トランスポート層のお話。

トランスポート層の役割は、ネットワーク層でノード間の通信を行う機能を
提供した後に、ノード間で通信を行うアプリケーション間でエラーのない、 可能的な通信路を提供するのが役目です。

ネットワーク層では、ノード間通信の機能は提供しているものの、
そこでやり取りされるデータが実際に相手にちゃんと届いているのか どうかを確認する事は出来ません。

トランスポート層では、ちゃんと相手にデータが届いているか、
エラーが発生していないかを管理してくれます。

 

トランスポート層ではポート番号が活躍

ネットワーク層は、ノード間の通信を行う機能を提供するために、 IP アドレスを使用しています。

IP アドレスはネットワークアドレスとホストアドレスに分かれていて、 どのネットワークのどのノードにパケットを転送すればよいかが 分かるようになっています。

しかし、どのアプリケーションにデータを渡すのかは IP アドレスでは 知る事が出来ません。

そこでトランスポート層では、「ポート番号」を使用して どのアプリケーションに渡すべきなのかを判断しています。

例えば 1 台のサーバでWebサーバとメールサーバという 2種類の役割を担っているサーバがあるとしましょう。 このサーバを仮に「SV-1」と呼びます。

ちなみにこの役割のことを「サービス」と呼びまして、 それぞれのサービスをWebサービスやメールサービス なんて呼びます。

そのWebサーバにあなたのPCのWebブラウザでアクセスしたとします。

するとSV-1は、受け取ったパケットに付与されている「ポート番号」を見て、 どのアプリケーションに渡すべきかを判断して、適切に処理を行います。

今回の場合は Webサーバへのアクセスと判断して、Webのデータを 送り返します。

 

Highslide JS

 

当然、「ポート番号」を見てどのアプリケーションなのかを 判断するわけですから、ポート番号は「一意の番号」でなければ いけません。

ポート番号は16ビットの2進数で表され、0~65535の範囲で 割り振られます。 つまり65535種類のサービスを識別できるわけですね。

ちなみにIPアドレスはインターネット上で一意でなければ いけませんでしたが、ポート番号は各サーバで一意であれば 問題ありません。

ですから例えば、

  • SV-1上ではポート番号 80 がWebへのアクセス
  • SV-2上ではポート番号 8080 がWebへのアクセス

だったとしても全く問題ないわけです。

さてここで考えてみて下さい。

ポート番号は各サーバごとに一意で良いのであれば、 世界中のサーバでサービスごとのポート番号が違ってしまう なんてことも考えられますよね。

例えばSV-1のWebサーバへのアクセスは ポート番号80を指定してアクセスするけど、 SV-2のWebアクセスはポート番号8080を指定して アクセスしなくちゃいけなくなります。

これが世界中のWebサーバでバラバラだったら たまったものではありません。

クライアントはどのサーバがどのポート番号にしているのかを 把握していなくちゃいけないわけですからね。

そんな無秩序な状態ではインターネットは大混乱です。

そこで主要なサービスについてはあらかじめポート番号を 決めておこうということになりました。

たとえばWebサービスはポート番号80、メール転送サービスは ポート番号25、DNSはポート番号53というように。

そのあらかじめ決められているポート番号のことを

「ウェルノンポート」

と呼びます。

「ウェルノンポート(Well-known Port)」は ポート番号1~1023までの範囲で決められています。

以下に「ウェルノンポート」の一例を挙げておきます。

ポート番号一覧

ポート番号 1024 以降の番号はランダムポートと呼ばれていて、 クライアント側が送信時に送信元ポート番号として使用します。

このとき、クライアントは送信を行う際に空いているポート番号から ランダムに番号を使用します。

なぜ送信側にもポート番号が使用なのでしょうか?

それはデータ通信の基本を考えれば簡単です。

基本的にデータのやり取りは双方向で行われますから、 サーバからクライアントへのデータのやり取りも行われます。

サーバ側からクライアント側へデータを送り返す際に、クライアントの どのアプリケーションへ渡せば良いかが分からなくなってしまいます。

そのためクライアント側でもポート番号は必要なわけです。

 

関連記事

トランスポート層(レイヤ 4)の役割
トランスポート層(レイヤ 4)の役割について

ポート番号
ポート番号について

コネクションとコネクションレス
コネクションとコネクションレスについて

UDP
UDPについて

TCP ヘッダ
TCP ヘッダについて

仮想コネクションの確立
TCP ヘッダについて

ACK による到達確認
TCP ヘッダについて

ウインドウサイズを利用したフロー制御
TCP ヘッダについて

TCPウインドウ制御
TCPウインドウ制御とスライディング・ウインドウについて

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: