このページの本文へ

前へ 1 2 次へ

ネットワークの常識・非常識 ― 第5回

トランスポート層のプロトコルを理解しよう

UDPのパケットは、途中で紛失してしまうことがある?

2009年09月28日 06時00分更新

文● 花澤 秀幸/東陽テクニカ

  • この記事をはてなブックマークに追加
  • 本文印刷

Q. UDPのパケットは、ネットワークを流れている途中で紛失されてしまうことがあるの?

A. 紛失する可能性があります。確実なのはTCPを使うことです。

トランスポート層とは?

 TCP/IPのトランスポート層プロトコルには、「ポート番号」と呼ばれる情報が含まれており、サーバ上のサービスを特定できる。たとえば、もしそのパケットに含まれるデータがWebサーバに処理してもらいたいものであるとするなら、そのTCPヘッダの宛先ポート番号は80番となっているだろう。ポート番号80番は、Webで使用されるHTTP(Hyper Text Transfer Protocol)を識別するために用いられる。

 UDP(User Datagram Protocol)はTCP(Transmission Control Protocol)と同様、TCP/IPのトランスポート層のプロトコルである。TCPとUDPに共通な機能は、上記のように受信したパケットの中のデータを誰が受け取るのか指定することである。

コネクション型とコレクションレス型とは?

 プロトコルの分類をするとすれば、その1つの方法としてOSI参照モデルにより分けるということがあるだろう。TCPとUDPはともにトランスポート層に属し、共通の機能があることは前述したとおりで、この見方では同類となる。

 しかし、プロトコルの分類は別の角度からも行なうことができる。その1つとして、コネクション型とコネクションレス型に分けるというものだ。コネクション型のプロトコルは、データの送受信に先立ち、セッションの確立を行ない、送受信するデータを保証する。

 TCPは代表的なコネクション型のプロトコルといえるだろう。TCPは3ウェイハンドシェイクと呼ばれる手順でセッションを確立し、その上でデータの送受信を行なう。また送信されるデータにはオクテット単位にシーケンス番号が振られ、TCPがデータの順番を保証する。また、このシーケンス番号に基づいてデータの受信者は確認応答を返し、データの送信者はこの確認応答を受信することで送信したデータが正しく受信されたことを知る。そして、期待した確認応答が受信できないときには、送信したデータは受信されなかったとみなして再送される。

 このようにしてTCPは、送信したデータが順序正しく、かつ確実に受信されるように機能する。一方、コネクションレス型のプロトコルは、ここで説明したような機能を持たないので、送信したデータが受信されることを保証するようには作られていないわけだ。

(次ページ、「UDPの特徴は?」に続く)


 

前へ 1 2 次へ

この連載の記事
ピックアップ