コネクション型プロトコル、コネクションレス型プロトコル

(所属カテゴリー:プロトコルと通信アーキテクチャ---投稿日時:2000年10月 7日)

転送プロトコルの種類

プロトコルには、様々なものがあるのですが特にデータ転送に関するプロトコルは、大きく2種類に分かれます。
ひとつがコネクション型のプロトコル、もうひとつがコネクションレス型のプロトコルです。

コネクション型プロトコル

コネクション型プロトコルの特徴は、通信を開始するときにコネクションを確立することです。コネクションとは、通信相手との経路になります。コネクションを確立することで、通信相手ときちんと通信できるかどうか(相手のコンピュータに電源が入っているか、途中の経路に障害がないかなど)ということがわかります。

コネクションを確立してから、実際に送りたいデータの転送をはじめます。相手にデータが届くと、きちんと届きましたよという確認応答が返ってきます。この確認応答を ACK(Acknowledgement) と呼びます。確認応答を返すという点も、コネクション型プロトコルの大きな特徴です。最後にデータの転送が終わったら、通信相手とのコネクションの解放を行います。コネクションの解放を行わずに突然通信ができなくなると、なにか異常が起こってしまったということになります。



図を見ながら説明していきます。
左側のコンピュータが送信元で、右側のコンピュータがあて先です。送信元からあて先にデータを送る際、まず「接続してもいいですか?」という接続要求を出します。あて先のコンピュータは接続要求を受け取り、データを受ける準備ができていれば、「接続しても大丈夫です」という接続応答を返します。この接続要求、接続応答によって送信元とあて先の間にコネクションが確立します。

それから、データの転送をはじめます。あて先にデータが届いたら「データを受け取りましたよ~」と ACK を返します。この ACK を返すということによって、確実にデータが届いたことがわかります。もし、送信元がACK を受け取れなかったら、途中でデータが消えてしまったなどのエラーが起こったと判断して、データを再送します。このため、コネクション型プロトコルは、高い信頼性をもっています。

データの転送が終わると、「もうデータはないので、切断しますよ」と接続要求をだして、相手から「わかりました」と切断応答が返ってきます。これにより、無事に通信を終了することができます。


さて、このコネクション型プロトコルのメリット、デメリットについて。
まずメリットは、「信頼性が高いデータ転送を行う」ということです。デメリットは、実際のデータ転送以外にコネクションの確立、ACK などの手続きをする必要があるので、「通信の効率があまりよくない」ということがあげられます。ちなみに、このデータ転送以外の手続きのことをオーバーヘッドといいます。

身近な例でたとえると、電話で会話をすることがコネクション型プロトコルと考えることができます。友達に電話しようと思って電話番号をプッシュします。つまり接続要求をだすことになるわけです。相手の方では電話が鳴ります。都合が悪ければでません(どんな都合かは知りませんが(^^ゞ)。都合が悪くなければ、電話に出ます。接続の応答をするわけですね。
それからデータの転送、つまり会話をはじめていきます。会話をしていて、うなづいたりすることが ACK という風に考えてください。もし、なにか聞き取れないことがあれば、「いまなんていったの?もう一回いって!」と言いますね。つまりエラーが起こったら再送を行うということです。
話が終わると、「じゃ、またね。ばいばい」とコネクションの解放を行うわけです。

コネクションレス型プロトコル

コネクションレス型プロトコルは、コネクション型プロトコルとは違い、データ転送をはじめる前にコネクションの確立は行いません。あて先だけを指定して、データを送ります。


コネクションレス型プロトコルのメリットは、コネクションの確立や ACKなどのデータ通信に関係ない手順を行わないために、「通信の効率がいい」ということです。つまり、オーバーヘッドが少ないことです。逆に、デメリットは、データがきちんと届いたことがわからないので「信頼性があまり高くない」ということがあげられます。

こちらは、ハガキにたとえることができます。ハガキでは、あて先の住所を書いてポストに入れるだけです。相手にきちんと届いたかどうかは、返事でももらわない限りわかりませんよね。(ただ、この例では通信の効率がいいという説明にはなっていませんが・・・)

コネクション型とコネクションレス型の使い分け

では、コネクション型とコネクションレス型はどっちがいいの?ということになります。これはどっちが優れているというわけではなくて、状況に応じて使い分けることになります。

コネクション型は、「大量のデータ転送」に向いています。コネクションレス型は、「少量のデータを頻繁に転送する」ときに向いています。

大量のデータなら、効率のいいコネクションレス型の方がいいんじゃない?と思うかもしれませんが、大量のデータを転送しているときに途中でエラーがあれば、また最初からやり直しになってしまうのでコネクション型の方が向いています。

TCP/IPの例でいうと、

コネクション型プロトコル:TCP
コネクションレス型プロトコル:IP、UDP


です。
Google
Web n-study.com

各コンテンツの最新記事

有料コンテンツライブラリ(ITエンジニア教育資料)

ネットワーク技術雑誌レビュー

ベンダ資格受験記

オススメ!ネットワーク技術雑誌・書籍

MindMapでおべんきょ

結果を出せるコーチング

Geneのつぶやき

The Power of Words

スポンサードリンク


CCNP目指すならパソナテック

スポンサードリンク


11月はBGP祭り!
NE向けセミナー
まずは基本のBGP!