TCP/IPは、わかりやすく言うとUDP/IPとともに、アプリケーションと、ハードウエアの中間を規定するプロトコルのことです。イメージがしづらいかも知れませんが、膨大で広大なインターネットを使う為の入口出口で使われる大事なプロトコルです。
当記事では、イーサネットケーブルを使い、パケットを届けるプロトコルTCP/IPとUDP/IPについて説明します。
目次
TCP/IPの役割
TCP/IPを使うアプリケーション
UDP/IPを使うアプリケーション
最後に
TCP/IPの役割
インターネットを使うアプリケーションの代表は、ブラウザです。遠くにあるサーバからデータを「どこにいても」参照することができます。ブラウザやスマホなどで使われるアプリケーションはTCP/IPやUDP/IPを使って、IPパケットを送受信しています。
インターネットでは、たくさんの通信プロトコルがブラウザやアプリケーションの向こう側で使われ、世界中を繋いでいます。
光ケーブルなどを使うイーサネットとIPは、基本的に接続されたネットワークを「誰も使ってない?」「僕が通信するよ」「このデータは僕が出している」と、短時間にネットワークを占有し、ネットワーク間をルータがデータを転送する仕組みです。
1つのネットワークに多数の機器が接続され、遠くまで通信しようとすると、ネットワークを誰も使っていない時間を見つけにくくなるので、ネットワークを分断し、送信キュー・受信キューというバッファを使い、自動車が道路を信号などに従い整列して移動するように、ルーターがIPパケットを送受信します。
TCP/IPの意味とメリット
IP(インターネットプロトコル)とイーサネットは、パケットサイズを決めたり、道路幅を決めたりする通信の基本だけが定められています。自動車で例えるなら、渋滞やガス欠、事故対応などは別のTCP/IPやUDP/IPなどが担当します。
IP(インターネットプロトコル)は、失敗する可能性があっても、ひたすらデータを送るプロトコルです。TCP(ティーシーピー:Transmission Contorol Protocol)は、送信を制御するプロトコルです。
1つのネットワークにたくさんの機器が接続されると、混雑した道路同様にたくさんの「信号」「通行制御」が必要になります。信号を認識して道路に進入したり、走ったりするときの安全を保証する通信プロトコルがTCP/IPです。IPと一緒に使うことが前提なので、TCPとは呼ばずTCP/IPと必ずセットで呼ばれます。
TCP/IPプログラムを使うと、送信の失敗や遅延などを自動で制御してくれるので、アプリケーションやユーザーは、データが正しく届けられることを信用出来るのです。
正確なデータ交換を事故無く行うTCP/IPは、インターネットでの「縁の下の力持ち」と言えます。
TCP/IPを使うアプリケーション
TCP/IPは、パケットが抜けると再送データが届いて順序が正しくなるまで、通信を続けます。
HTTP/2(エイチティティーピー2)
Webページの読み書きに使われるHTTPでの大量データ送受信管理や、データが殺到してきたときなどの輻輳(ふくそう)制御をTCP/IPが行います。現在はHTTP/2が主として使われ、古いHTTP/1は使われなくなってきています。
SMTP(エスエムティーピー)
電子メールを送るときのプロトコル・SMTP(Simple Mail Transfer Protocol)が、メールデータを正しく届けられるのは、TCP/IPが通信エラーなどを監視しているからです。
IMAP4(アイマップ4)
クラウドに蓄積されたメールボックスから、メールを読み出すときのプロトコル・IMAP4(Internet Message Access Protocol 4)が、メールを探して正しく受信するときに、通信エラーなどを監視しているのがTCP/IPです。
SSH(エスエスエッチ)
インターネットの中に電線を引いたようなVPN(仮想プライベートネットワーク)を構築するときに使うのが、SSHです。遠隔のパソコンと、正しくコマンドを送受信出来ているかを監視しているのがTCP/IPになります。
UDP/IPを使うアプリケーション
ビデオ視聴などでエラーが出たら再送するより新しいデータを送った方が都合良いアプリケーションでは、UDP/IP(ユーディーピーアイピー:User Datagram Protocol/インターネットプロトコル)を使います。
UDP/IPがTCP/IPと大きく違うのは、バッファー管理で、大量データ管理は別のプログラム・アプリケーションに任せることです。よってTCP/IPと比べて短時間にたくさんのデータを送ることができます。
DHCP(ディーエイチシーピー)
DHCPは、新たにネットワークに接続した機器がIPアドレスを設定するときに使うプロトコルです。機器がIPを持つ前なので、正確性レベルを落として、より広くネットワークを探し、より速くIPアドレスを自動的に設定するためにUDP/IPを使います。
RTP(アールティーピー)
RTPは、IP電話などに使われ、混雑しているインターネットを使っていても、途切れること無くリアルタイムに会話できるプロトコルです。正確にデータを送る事より、途切れず音質が良いことが大事なのでUDP/IPを使います。
QUIC for HTTPS(クイック フォアー エイチティーティーピーエス)
QUIC for HTTPSは、Web通信を高効率化するHTTP/3での新しいプロトコルです。TCP同様の輻輳制御を行い効率の良い接続(コネクションと呼ぶ)管理、再送処理、暗号化などを行いますが、UDP/IPを使い、TCP/IPを使うHTTP/2よりもエラー無く約2倍速い通信ができます。
最後に
インターネットを支えるTCP/IPやUDP/IPは、日頃ユーザーが意識することなく使われています。イーサネット、IP、TCP/IP、HTTPなどと共に、インターネットを支えるプロトコルと言えます。TCP/IPのお陰で、データを正しく送り届けたり受信できたり、UDP/IPのお陰で電話出来たりするのです。
プロトコルの違いを理解すれば、画面が真っ白でWebサイトに繋がらない時や、Wi-Fiなどでの暗号通信の必要性、偽サイトに関係した時など、「こんな時は最初にTCP/IPなのにデータが化けているからだ」とか「UDP/IPだからノイズが混ざっていても大丈夫」などというように判断できるようになります。
杉田正
インターネットハンドルはsugipooh。アマチュア無線、TK-80BS、PC-8001、APPLEII、MacintoshPlusからのアップル信者。大型ストレージ、RAIDやNAS開発からWebサーバー開発、データセンターにおけるセキュリティ規格ISO27001(ISMS)を日本で最初に取得。現在はクラウド用省エネデータセンター研究開発や省エネデータセンター構築コンサルタントを行っている。
構成・編集/京都メディアライン(http://kyotomedialine.com FB)