OSI参照モデルを紐解いていこう ー第4層(トランスポート層)
はじめに
皆さん、こんにちは。ネットワークスペシャリストの左門です。本連載では、難しいネットワークを、身近な事例に置き換えながらわかりやすくお伝えしていきます。
第6回と第7回では、第3層(ネットワーク層)について説明しました。第8回の今回は、第4層(トランスポート層)について解説します。ネットワーク層の上位層であるトランスポート層は、ポート番号を使うことで、届けられたデータが「何のサービス」かを識別したり、データの信頼性を確保する役割を担います。
今回も、身近な事例として、郵便およびゆうパックを題材にします。
ポスト投函の「郵便」と窓口の「ゆうパック」
あなたならどちらを使う?
ゆうパックなどの宅配便は、普通の郵便に比べて値段が高くなります。しかも、切手を貼ってポストに投函するだけの定形外郵便と比べると手間です。ポスト投函はできず、郵便局の窓口で手続きをする必要があります。
でも、上司はお得意様にちょっとしたカタログを送る際も、郵便ポストに投函ではなく、ゆうパックなどの宅配便を使っています。それはなぜでしょうか。
宅配便の利点の1つは、相手に届いたかどうかが分かることです。荷物には番号が割り振られ、現在の送付状況や無事に配達が完了したかをネットなどで確認できます。また、ゆうパックの「お届け通知」を利用すれば、無事に届けたというハガキ(現在はメールやLINE)を受け取ることができます。この上司は、少しの手間や値段がかかっても確実に届いたかを確認したいと考えたのでしょう。
さて、ITのネットワークにおける宅配便と郵便の違いは、TCPとUDPの違いに似ていると思います。TCPは相手に届いたかの確認が取れるため信頼性が高い通信です。確認応答パケットであるACK(後述)は、ゆうパックのお届け通知のようなものです。TCPは信頼性が高い通信のためHTTPやSMTP、DNSのゾーン転送で利用されます。
一方、UDPにもメリットはあります。宅配便と違い、郵便物であれば窓口などで手続きをする手間がありません。窓口が閉まっている夜間に出すこともできます。先方に手渡しをしてサインをもらうわけではないので、確実に届けるという信頼性の面では劣りますが、大量の郵便を一気に送る場合などは簡単に送れて便利です(速度重視と言えますね)。ITのネットワークにおいては、高い信頼性を必要としないSNMP、DHCP、TFTP、NTPなどでUDPが利用されます。
トランスポート層の役割
では、TCPやUDPに代表されるトランスポート層の役割について説明します。
第3層(ネットワーク層)の機能やIPアドレスによりて、世界中のコンピューターと通信できるようになりました。ネットワーク層の上位層であるトランスポート層は、届けられたデータがどのサービスに対応しているかを識別したり、データの信頼性を確保したりする役割を担います。
これらの役割を詳しく説明します。
役割1:サービスの識別
1つのサーバー上で複数のサービスを提供することがあります。例えば、Webページを公開するWebのサービス、メールを転送するメールサービス、ファイルを転送するFTPサービスなどです。このとき、受信したデータが対応するサービス(アプリケーション)に正しく振り分けられないと適切な処理が行われません。この振り分けに用いられるのがポート番号です。ポート番号は上位のアプリケーション層のサービス(コンピューター上で動作しているアプリケーション)に対応する番号です。
役割2:通信の品質を保つ
データを相手に送信しても、データが破損していたり、きちんと届かなかったりしたら困りますね。そこで、トランスポート層ではTCPというプロトコルを使うことで、正しい相手に欠落なく、正しい順番でデータを届けます。つまり、通信の信頼性を保証します。また、相手にデータが届かなかったり破損したりしている場合は、パケットを再送します。
ポート番号
ポート番号は、役割1で述べた通り、サービスの識別で利用されます。ポート番号にはウェルノウンポート、レジスタードポート、ダイナミックポート(プライベートポートとも言う)の3種類があります。
ウェルノウンポートは、あらかじめ決められており、よく知られている(well known)サービスのポート番号のことです。IANA/ICANNという組織がIPアドレスの登録と管理をしています。
代表的なウェルノウンポートをいくつか紹介します。
ポート番号 | TCP/UDP | プロトコル | 解説 |
---|---|---|---|
20、21 | TCP | FTP(File Transfer Protocol) | ファイルを転送するプロトコル |
22 | TCP | SSH(Secure SHell) | サーバーやネットワーク機器などへリモートでログインしたり、ファイルをコピーしたりするプロトコル |
25 | TCP | SMTP(Simple Mail Transfer Protocol) | PCからメールサーバーへ、あるいはメールサーバー間でメールを転送するプロトコル |
53 | TCP/UDP | DNS(Domain Name System) | IPアドレスとドメイン名の対応を管理するプロトコル |
80 | TCP | HTTP(HyperText Transfer Protocol) | WebページやSNSなどのサービスにアクセスする際に利用するプロトコル |
110 | TCP | POP3(Post Office Protocol versison 3) | メールサーバのメールボックスから電子メールを取り出すときに使用するプロトコル |
143 | TCP | IMAP(Internet Message Access Protocol) | POP3を改良したプロトコル。選択したメールだけを取得する機能やサーバ上のメールを検索する機能などを持つ |
443 | TCP | HTTPS(HTTP over SSL/TLS) | HTTPの通信を暗号化して安全に通信を行うプロトコル |
TCP
冒頭では宅配便をTCPに例えましたが、TCPを詳しく確認していきましょう。
TCPはTransmission Control Protocolという名前のとおり、伝送(transmission)を制御(control)するプロトコルです。例えば、通信に矛盾がないかを確かめたり、送信経路で乱れてしまったパケットの順番をきちんと並べ替えたり、必要に応じて再送したりします。
TCPがどのように信頼性を確保しているのか、その仕組みを紹介します。
❶ACK(確認応答)
TCPには、受信側がパケットを受け取ったことを送信側に知らせる、ACK(確認応答)と呼ばれる仕組みがあります。ACKは「ACKnowledgement(確認応答)」という意味の通り、通信を受け取った(=確認した)ことを通知する(=応答する)パケットです。
送信側は、ACKを受け取ることでパケットが相手に届いたことを確認できます。ACKが返ってこなかった場合は、届いていないと判断してパケットを再送します。
❷シーケンス番号
シーケンス番号とは、TCPのパケットに付けられた通し番号です。パケットの最大サイズは1,500バイトに制限されているため、大きなデータは分割されます。ネットワークでは通信の遅延などによりパケットの到着順が前後することもありますが、シーケンス番号を割り振ることで、到着したパケットを正しい順序に並べ直すことができます。この機能を順序制御と言います。また、欠落したパケットがないかを確認し、必要に応じて再送することもできます。この機能を再送制御と言います。
❸ウェイハンドシェイク
TCPでは、通信を開始する前に3ウェイハンドシェイクという方式で通信相手とのコネクション(通信の経路)を確立します。具体的には、送信側と受信側でSYN、SYN+ACK、ACKの3つのパケットを順にやり取りします。SYNはSYNchronize(同期する)を意味し、通信相手と通信を同期しながら確立するためのパケットです。
下図は、PCからサーバーに接続(例えば、PCでWebサーバーにあるホームページを閲覧)する際に必ず行われる3ウェイハンドシェイクの流れです。
このやり取りにより、IPアドレスを偽装するなどの不正な通信を排除できます。例えば、送信元のIPアドレスが偽装されていれば、SYN+ACKのパケットは偽装した相手に届かず、そのIPアドレスを持つ本来のPCに送られます。つまり、送信者が不正な相手だとSYN+ACKのパケットが届かないため、通信が開始されないのです。3ウェイハンドシェイクは、通信の信頼性を確保するための重要な仕組みです。
UDP
続いて、郵便に例えたUDPについて解説します。
UDP(User Datagram Protocol)はTCPのデメリットを解消するために考案されたプロトコルです。UDPは信頼性よりも高速性を優先します。そのため、TCPのようにデータを再送したり、パケットの順序を並び替えたりはしません。また、3ウェイハンドシェイクのような手順も踏みません。通信相手との通信経路(コネクション)を確立せずにいきなりデータを送信するため、コネクションレス型と呼ばれます。
UDPでは、このように煩雑な手続きをせずに通信を行うため、高速な通信が可能になります。ストリーミング動画などで画像の一部が欠落していたとしても、リアルタイム性が求められる通信に適しています。
おわりに
さて、今回は第4層(トランスポート層)について解説しました。次回は、第7層(アプリケーション層)について解説します。
左⾨ ⾄峰 著 |
ストーリーで学ぶ ネットワークの基本実務にひもづく基本知識が身に付く!
|