-shared-img-thumb-SAYA151005488094_TP_V

コンピューター同士でデータ通信を行う場合、厳密に通信規約を定め、かつお互いにその通信規約を守る必要があります。このような通信規約を「プロトコル」といいます。データ通信のプロトコルとして、業界標準の地位を得ているのが「TCP/IP」(Transmission Control Protocol/Internet Protocol)というプロトコルです。

TCP/IPは、インターネットで広く使われているばかりでなく、イントラネットや家庭内ネットワークなどのLAN(ラン:Local Area Network)環境でも使われています。パソコンには標準的に採用されており、タブレットやスマホにおける無線LANも、TCP/IPに対応しています。

ここでは、TCP/IPの基礎と情報システム設計のために知っておくべきTCP/IPのプロトコル群についてお話します。ここで述べる内容は、情報システムのネットワーク設計を行う際の基礎知識として活用できます。また、この知識を持つことによりパソコンやサーバーが行うデータ通信への理解を深めていくことができます。

TCP/IPの動作

TCP/IPとは、その名の通り「TCP」と「IP」を組み合わせた総称です。実際には、これら2つだけでなく後に述べる補助的ないくつかのプロトコルも含まれています。

まずIPとは、データを一定量の小分けにした「パケット」を送るプロトコルです。また、ネットワークに接続された装置はそれぞれ識別用の「IPアドレス」を持ち、そのIPアドレスを頼りに通信相手を判別します。

なぜ小分けにするのかというと、大きなデータを一度に送ることにした場合、途中でエラーが起きたり事故などで回線が一時的に切断したりしたときに、エラー復旧に大変時間がかかってしまうからです。

しかしIPでパケットを送った場合に、そのうちのいくつかがエラーを起こして受信側でパケットが失われたりパケットの順番が入れ替わったりすることがあります。

TCPは、セッション(接続の開始から終了までの期間)の間で、パケットを順番通りに並べ替えたり、失われたパケットを送信側に再送させたりする機能を持ちます。そのとき、どうしても送信側の応答が得られないならばTCPを使ったソフトウェアにエラーとして伝えることもします。

このように、TCPは送信側と受信側の間で「セッション指向」で「信頼性のある」双方向通信を実現するためのプロトコルです。こうして、TCP/IPによるデータ通信は、データがエラーなく送られることを保証してくれるのです。

IPは、OSI基本参照モデルにおける第3層(ネットワーク層)に対応します。またTCPは、第4層(トランスポート層)に対応します。

IPv4とIPv6

IPには、TCP/IPのバージョンに応じてIPv4とIPv6があります。先にIPv4が世に広まりましたが、ネットワーク機器の台数が飛躍的に増え、機器に割り当てるIPアドレスが枯渇する懸念が生じたためにIPv6が後から開発されました。

IPv4とIPv6の違いのうち、代表的なものを次に示します。

  • IPアドレスは、IPv4では32ビット、IPv6では128ビットで示される
  • IPアドレスの表記方法は、IPv4では10進数を「.」(ピリオド)で区切る(例)「192.168.0.1」。IPv6では16進数を「:」(コロン)で区切る(例)「2016:8ab:eeee:dddd:cccc:dddd:eeee:1」」
  • IPアドレスの割り当ては、IPv4ではプロバイダなどからネットワークに対して行う。IPv6では1機器1アドレスを固有に割り当てが可能である

TCP/IPのプロトコル

TCP/IPには、TCPとIP以外に補助的なプロトコルも含まれています。その中で、情報システム担当者が知っておくべきプロトコルを次に示します。

・UDP

データグラム指向」の通信サービスです。データグラム指向とは、データを相手側に送りつけるだけの機構のことです。送信に失敗した場合でも、このプロトコルの中で再送信を行うことはありません。1対1だけでなく、1対他の「マルチキャスト」や「ブロードキャスト」にも対応します。

TCPが、電話をかけてお互いに反応を確かめながら話をするイメージならば、UDPはスピーカーで連絡事項を流すイメージです。

・ICMP

短いメッセージを送受信して相手方へ問い合わせや通知を行います。2つの機器の接続確認に、「ping」コマンドを使うことがよくありますが、この「ping」コマンドはICMPにおける「エコー要求」や「エコー応答」を使ったものです。

・DHCP

機器が、起動時にDHCPサーバーに自分自身のIPアドレスなどの情報を問い合わせ、結果を取得して自分自身にセットするためのものです。

・DNS

IPアドレスは人間にとって覚えにくいものです。そのため、機器を特定するために「ホスト名」、さらに所属を示す「ドメイン名」という名前を付けることができます。DNSは、ホスト名やホスト名+ドメイン名からIPアドレスを求めたり、その逆を行ったりします。

・WINS

Windows コンピューターにおけるネットワークでは、「TCP/IP」以前に「NetBIOS」(ネットバイオス)というプロトコルが使われていました。NetBIOSでは、機器に「NetBIOS名」という名前が付けられます。WINSは、NetBIOS名からIPアドレスを取得するものです。

最新のWindowsには、TCP/IPもNetBIOSも実装されていますので、その結果としてWINSもそのまま残っています。

TCP/IPの補助プロトコルは、他にも「ARP」「RARP」「LLMNR」などがありますが、ここでの説明は省略します。

このように、TCP/IPはインターネットやLANにおけるネットワークプロトコルとして広く利用されています。「IPアドレス」や「ホスト名」といった言葉は、TCP/IPから発生しているものです。

TCP/IPを理解することにより、現代のネットワークプロトコルに関する基礎知識を習得できます。さらには、その知識を情報システムにおけるネットワークの設計に役立てることができます。