ネットワーク通信はコネクション型通信とコネクションレス型通信の2つに分類することができます。この2つの分類を理解していないと、TCPとUDPの違いやネットワーク通信の基本的な仕組みを本質的に理解することはできません。
このページではネットワーク学習を進めるにあたり前提知識となる2つの通信方法(コネクション型通信 / コネクションレス型通信)について、初心者向けに分かりやすく図解付きで解説します。
ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。
コネクション型通信
コネクション型通信は、データ転送を行う前に「正常に相手と接続できているか?」を確認したうえで通信を開始する通信方法です。
簡単に言えば「相手との通信経路を確保したうえで」通信を行う方式をコネクション型通信と呼びます。
コネクション型通信では、まず相手との接続が正常に行えているかどうか?を確認します。
その後、実際に相手との通信経路が確立していることを確認できたら(=相手とつながっていることを確認できたら)実際にデータを送りはじめます。このようにすることで、安全で確実なデータ転送を実現できるのがコネクション型通信の特徴。
コネクションを確立しておけば、もし相手にデータが届かなかったりした場合でも、それを検知し再度データを送りなおしてあげることも可能です。
後述するコネクションレス型通信では、相手にデータを投げっぱなし(送りっぱなし)なので、仮にデータ転送に失敗してもそれを検知することはできません。
またコネクション型通信の場合、相手とのコネクションが確立できない場合は実際のデータ転送は開始されません。
そのため無駄にデータを送り、ネットワーク回線を圧迫してしまう心配もないという点もポイントです。
日常の生活における「電話」をコネクション型通信の例としてあげることができます。
電話をする際、まず番号を入力したら相手が出るかどうか?という接続確認を行い、実際に相手が電話に出たら要件を伝えるのと同じです。
コネクション型通信の代表例:TCP
TCP (Transmission Control Protocol) は、OSI参照モデル第4層:トランスポート層で動作する信頼性の高い通信を担保するための通信プロトコルです。
TCPはコネクション型通信を提供するため、実際にデータ転送を行う前に「正常に相手と接続できているか?」を以下の3ステップでコネクションの確立を行います。
TCPをさらに詳しく学習したい方は以下の記事をご覧ください。
コネクションレス型通信(データグラム方式)
対してコネクションレス型通信は、事前の接続確認を行わずいきなりデータ転送を始める通信方法のことを指します。
別名「データグラム方式/データグラム型通信」と呼ぶ場合もあります。
コネクションレス型通信はコネクション型通信とは異なり、事前にコネクションの確立を行いません。
したがって、転送元のコンピュータは好きなタイミングで好きなだけデータを転送することが可能です。(=相手の状態を気にせずにデータを送ることができるため、全体的な処理のスピードも高くなります。)
一方で、相手側からすると「急にいきなり話しかけられる」のと同じことなので、もし別の作業をしていたり何らかのトラブルが発生している場合にはデータを受け取れません。
そのため送ったデータは誰にも受け取られることなく、雲の彼方へ消えてしまいます。コネクションレス型通信は事前の確認が不要な分手軽に使える通信方法ですが、正確性を担保することはできません。
また、データの送信元コンピュータも、相手がそれを受け取ったかどうか?を確認することもできないので、データを再送するようなことも行えないのが1つの特徴です。
コネクションレス型通信は、「手紙」と一緒です。自分の好きなタイミングで送ることはできるが、相手が受け取ったかどうかは分かりません。もし、相手が引っ越していればその手紙は永遠に届くことはありません。
コネクションレス型通信の代表例:UDP/IP
コネクションレス型の通信の代表例がUDP(User Datagram Protocol)とIP(Internet Protocol)です。
UDPやIPはコネクションレス型の通信であるため、TCPのように事前にコネクションを確立することはなく、いきなりデータ通信を開始します。
コネクション型通信 vs コネクションレス型通信
では、コネクション型通信とコネクションレス型(データグラム型通信)のどちらが優れているといえるのでしょうか?
何となくデータが正しく相手に届けられる・・・という意味でコネクション型通信の方が優れているのでは?と思う方もいるかもしれませんが、実はそうとも限りません。
どちらも一長一短があるので、どちらが優れているか?は「時と場合によります」。
コネクション型通信とコネクションレス型通信を端的に比較すると以下のような整理になります。
通信方法 | 通信速度 | 信頼性 |
---|---|---|
コネクション型通信 | 遅い | 高い |
コネクションレス型通信 | 早い | 低い |
例えば、メールやファイル共有など信頼性が重視される場合はコネクション型通信が有利ですし、逆に映像配信サービスなど通信速度が求められる時やオンライン会議のような場合は(わざわざ一人ひとりと接続確認をするのは手間なので)コネクションレス型通信が有利です。
このように現在のネットワーク通信では、この2種類の通信方法をうまく使い分けています。
ネットワークの仕組みを1から学習したい方は
コンピュータとコンピュータはどのように通信をしているのか?インターネットはどのような仕組みで構成されているのか?
ネットワークの基礎を1から学習したい方(=ネットワークエンジニアを目指す方)は、以下の書籍が非常におすすめ。
日常生活で例えた説明や豊富な図解付きでIT初心者でも分かりやすく理解することができます。
ただし、ページ数も多くさくっと手軽に読める内容ではありません。しかしながら、ネットワークエンジニアを目指す場合、ほぼ全員が一度は読んだことがある書籍なので是非一度読破しておきたい1冊
ネットワークエンジニアを目指す方ではなくても、ネットワークの知識がある/なしで今後のキャリアプランに大きく影響します。1度手に取ってみてはいかがでしょうか?
システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。
正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。
システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。
無料で読めるようにしてあります。累計15万人に参考にしていただきました!