ネットワークとプロトコル
プロトコルとは何か
続いて、インターネットの構造の基本をなす、パケットとプロトコルについて説明します。パケットとは、すでに説明した通り、インターネットで情報をやりとりするための単位です。しかし、それだけでデータを転送することはできません。パケットで情報をやりとりするためには、そのしくみの取り決めであるプロトコルが必要です。プロトコルには様々なものがありますが、ここでは特にもっとも有名なものであるTCP/IPについて説明します。
IPプロトコル
IPとは
冒頭で説明したとおり、ネットワークで情報をやり取りする際には、プロトコル(Protocol)と呼ばれる仕組みが必要です。プロトコルとは、ネットワークを構成するための「約束事」のあつまりであり、実に様々な種類があります。しかし、その中で最も中心的であり、基本的なプロトコルがあります。それが、IP(Internet Protocol:インターネットプロトコル)と呼ばれるものです。
IPの基本的な仕組みは、データをネットワークのあるノードから別のノードまで届けることにあります。ネットの情報を小包にたとえるのならば、その小包を送り主から宛先の受け取り手まで届けるのが、IPの役割なのです。
IPの仕組み
では、そのIPの仕組みはどのようになっているのでしょうか?IPの仕組みには大きく分けて二つあります。以下、それぞれについて説明していきます。
(1) ルーティングIPは、ネットワーク上のパケットを届ける宛先にデータを送りますが、その際、宛先となるノードに直接到達できない場合がほとんどであり、いくつかの機器を経由して目的地にたどり着くことになります。このような機能のことを、ルーティングと言い、IPの主要な機能の一つです。(図2-1.)
図2-1.ルーティング(2) フラグメント化
IPは、データをパケットに分割して送信しますが、送信するデータを細かいデータの固まり(フラグメント)に分ける作業のことを、フラグメント化と言います。フラグメント化されたデータは、ここにIPヘッダと呼ばれるデータが付加されて、IPパケットと呼ばれる情報に分割されて送受信されます。(図2-2.)
図2-2.フラグメント化IPアドレス
IPが、ネットワーク上の機器の宛先を認識する方法として用いられるのが、IPアドレスと呼ばれるものです。IPアドレスには、IPv4と呼ばれるものと、IPv6と呼ばれるものがありますが、ここでは通常付かされている前者のIPv4での場合について説明します。
IPアドレスとは、4バイトの数値で表されるデータで、表記する際には、バイトごとに.(ピリオド)で区切って表記します。例えば、
43.31.2.7のように表わします。一つのネットワークの中には、同一のIPアドレスをもつ機器は一つに限定されます。IPアドレスがバッティングする場合は、その機器はネットワークに参加できません。
TCP
TCPの働き
続いて、TCPについて説明します。TCPとは、IPと並んでネットワークの代表的なプロトコルの一つで、IPプロトコルを正しく送信させるために必要なプロトコルで、IPプロトコルの上位のプロトコルと言えます。
IPで送られるデータは、ネットワーク上のトラブルなどで、すべてが相手側に正しく届く保障はありません。そこで、TCPは、データが相手に正しく届いたかどうかを確認し、もし正しく届いていなければ再送したり、エラーがあれば訂正したりする働きをします。
ポート番号
また、IPアドレスは、あくまでも相手側のホストを、IPアドレスという数値によって特定しているだけで、そのデータがどんなアプリケーションで使われるのかということまでは指定していません。そこで、TCPでは、ポート(port)番号と呼ばれる番号を割り振って、そのパケットがどのアプリケーションやサービスで使われるかということを特定できるようにしています。(図2-3.)
たとえば、現在一つのコンピュータで同時にメール、Webブラウザ、ネットワークゲームなどといったアプリを同時に使うことができます。これらは、同一のIPアドレスをもつコンピュータ上にありますが、それぞれが異なるポート番号を持っているため、コンピュータに到達後、ポートバン番号によって、それぞれのアプリに割り振られます。(図2-3.)
図2-3.ポート番号TCP/IP
TCPの情報は、TCPパケットと呼ばれるパケットによって情報がやりとりされます。通常、ネットワークは、TCPとIPがほぼセットになって運用されており、そのため、この二つをセットにして、TCP/IPと呼ばれています。これら二つは異なるプロトコルですが、セットになってインターネットの仕組みを支えています。(図2-4.)
図2-4.TCP/IPその他のプロトコル
UDP
インターネットのプロトコルは、TCP/IPだけではなく、さまざまなものがあります。その中で、よくつかわれるのが、UDP(User Datagram Protocol)と呼ばれるプロトコルです。UDPはTCPのように、ポート番号でアプリケーション・サービス間のデータのやりとりを行うプロトコルです。(図2-5.)
UDPとTCPの大きな違いは、UDPはエラー制御をおこなわないことです。そのため、データの欠損などが起こりますが、データの転送速度は速くなります。そのため、データの欠損が起きても大きな問題にならない、音声や動画などといったデータのやりとりを行う際に用いられます。
図2-5.UDP