TCP/IPの4層構造の内、第3層のトランスポート層の概要を紹介しています。トランスポートの意味は、データを送信することです。通信データをどのような仕掛けで送信しているのかを規定しています。トランスポート層のイメージを掴めます。
トランスポート層とは?
アプリケーション層で、送信データを作成すると、トランスポート層では、送信相手にデータを輸送する(トランスポートする)準備をします。
この時、トランスポート層は、TCPプロトコルで通信品質について管理しています。
トランスポート層の管理内容
トランスポート層では、データを送信しています。但し、送信するだけではなくて、データが正確に相手に届いたか、などの通信品質について管理しています。
つまり、データを送信した後の通信に必要な事柄を定めています。これはTCPプロトコルで規定しています。
TCPプロトコルでは、どのように規定しているの?
データを送信する相手のサーバーは、一般的には、ウエブサーバやメールサーバーなどの複数のサーバープログラムが動作しています。
そのため、データを送信するサーバーは、送信相手のどのサーバーにデータを送信するのかを、TCPヘッダに記載しています。
TCPヘッダは、ポート番号の指定や、シーケンス番号の付加も行っています。これらは、後述します。
さらに、送信相手のサーバーの状態を確認する「ACK番号」などの指定も付加されていますが、今回は省略します。
ポート番号の指定
データを送信するサーバーは、「宛先ポート番号」で、送信相手を指定します。また、「宛先ポート番号」の指定とともに、相手から返ってくるデータのことも予め想定して、どのアプリケーションで受信するのかを「送信元ポート番号」で指定しておきます。
理由は、データを送信する側でも、様々なソフトウェアを起動していることが想定されるため、相手が送り返してくれたデータが正しく届けられるようにするためです。
シーケンス番号の指定
TCPヘッダでは、「宛先ポート番号」「送信元ポート番号」の指定とともに、「シーケンス番号」を指定します。
シーケンス番号とは、パケット分割したデータの順番を指定した通し番号のことです。
インターネットでは、効率的にデータを送信するため、データを分割してパケット化して送信していますが、インターネットのルートは様々です。
そのため、パケットが送信相手に届いた時には、パケットの順番が違っているかもしれません。
シーケンス番号は、パケットの順番が入れ替わっていても、受信先で正しくデータを復元できるようにするためのものです。
まとめ
TCP/IPのトランスポート層について、概要を紹介しました。PC初心者にとっては、このような内容でも取っ付きにくいでしょう。
但し、こんな世界でも、慣れると、身近に感じられるようになります。気軽な気持ちで少しずつ慣れてしまいましょう。