
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の特徴は?」に続く)

この連載の記事
-
第7回
ネットワーク
ドメイン名は第三者に詐称されるのですか? -
第6回
ネットワーク
WAN経由だとファイル共有が遅くなるって本当? -
第4回
ネットワーク
Webサーバは80番ポート以外使ってはいけないの? -
第3回
ネットワーク
ネットワークに流れるデータは見えますか? -
第2回
ネットワーク
同じIPアドレスは複数のPCで使えるの? -
第1回
ネットワーク
なぜネットワークはループを作ってはいけないの? -
ネットワーク
ネットワークの常識・非常識 - この連載の一覧へ