トランスポート層のプロトコルの役割

 ネットワーク層以下のプロトコルの役割は、バラバラになったパケット(小包)を宛先に届けるだけです。送信するパケットの中に何が入っているデータであるのかは、気にしていません。指定した相手に、ひたすら届けるだけなのです。

 しかし、プロセス(アプリケーション)から見れば、それでは、困ります。データの中身が何であるかが分からなければ、自分が担当するデータなのかが分からないからです。

コンピュータ上では、様々なプロセスが動作しています。

 仮に、パケットを受け取ったとしてもバラバラになったパケットを元通りに組み立て直す情報もありませんから、元通りにすることもできなければ、必要なパケットが全て自分に届いているかどうかも分からないのです。

 そこで、トランスポート層は、プロセスに対して、「AとBはつながっていて、A上のプロセスとB上のプロセスがやり取りできる。」という状態を提供しています。

トランスポート層のプロトコルは、相手先のプロセスとのデータ伝送路を確保します。

ポート番号の役割

コンピュータ上では、同時に複数のプロセスが動作しています。そのため、複数のサービスを区別する仕組みが必要です。

 トランスポート層では、ポート番号を使ってサービスを識別しています。各プロセスに対して重複しないポート番号を割り当てています。

そうすることで、複数のリンクを設定することができるようになっています。

一般的に、IPにおける通信では、トランスポート層のプロトコルにTCPもしくは、UDPを使用します。

 それらのプロトコルには、ポート番号として、16bitのデータフィールドを持っており、「0~65,535」で表現されます。このポート番号は、プロトコルごとに論理的に設定されます。

 ポート番号は、TCP、UDPで同じ値であっても全く別物です。ただし、同じ番号を使用してもかまいません。例えばDNSでは、TCP、UDP共にポート番号53番を使用するようになっています。

TCPの代表的なポート番号は次のようになっています。

ポート番号サービス名
20ftp-data
21ftp
22ssh
23telnet
25smtp
53domain
80www-http
110pop3
123ntp
443https

ウェルノウンポート

トランスポート層のプロトコルがポート番号を割り当てるにあたって、自由に割り当てができるわけではありません。

ポート番号は、以下のように、大きく3つに分けられています。

種類ポート番号ポート番号の意味
①Well Known Port
 (ウェルノウンポート)
0 ~ 1,023一般的なポート番号
予約済みポートで、IPアドレスを管理しているIANAによって、 一元管理されているので自由に使用できない。公共性や有用性が高いサービスが使用する。
②Registered Port
 (登録ポート)
1,024 ~ 49,151登録済みポート番号
特定のサービス用に予約されている。予約済みであってもユーザは自由に使用できる。
③Dynamicprivate Port
 (ダイナミック/プライベートポート)
49,152 ~ 65,535自由に使用できるポート番号
通信を行う際、OSが一時的に動的に使うポートで、通信が終わると開放される。別名エフェメラルポートとも呼ばれている。
ウェルノウンポート

 ウェルノウンポートという、あらかじめ決められているポート番号というものが存在します。これは、公共性や有用性が高いプロトコルに割り当てられています。

 例えば、TCPの20、21の番ポートにはftpが、80番のポート番号にはWWWが利用し、他のプロセスは利用しないことになっています。

 こうした予約されたポート番号以外は、さまざまなプロセスが利用可能で、その都度、他のプロセスと重複しないような番号が動的に割り当てられるようになっています。

ネットワーク層/トランスポート層のプロトコル

トランスポート層/ネットワーク層のプロトコルには、次のようなものがあります。

ネットワーク層のプロトコルトランスポート層のプロトコル
IP, ARP, RARP, ICMP, DHCP, IPX, NetBEUI, DDP, AARPTCP, UDP, SPX, NetBEUI, RTMP, AURP, NBP, ATP, AEP
ネットワーク層/トランスポート層のプロトコル

 一般的に、LANでは、TCP/IPを使用して通信を行いますが、同じ階層のプロトコルに、NetBEUI、やIPX/SPXなどが存在します。これらのプロトコルが存在する層は、OSI参照モデルでは、 ネットワーク層とトランスポート層に該当します。

この層は、通信相手とサービスを特定するのが主な役割です。

プロトコルが違えば、通信相手とサービスを特定するルールも異なってきます。

つまり

といった通信は、成り立ちません。
※ゲートウェイが通信を仲介すれば可能です。

 通信においては、まず考慮しなければならないのが、OSIの7階層モデルです。送信元と宛先の同じ階層に位置するプロトコルは、同じでなければなりません。

 通信で行われている仕事は、表面的に見える部分よりもはるかに多く、1つの通信サービスを実現するために、各階層のプロトコルが密接に結びついて、動作しています。