先にご紹介したWindowsネットワークのプロトコル・レイヤの図では、TCP/IP(NBT)としてひとまとめに描いてしまったが、TCP/IPプロトコルの内部にもう一歩踏み込むと、次のようになっている。
このようにTCP/IPは、トランスポート層の処理を行うTCP(Transmission Control Protocol)とUDP(User Datagram Protocol)という上位層と、ネットワーク層の処理を行うIP(Internet Protocol)層に分離されている。このうちIPは、異なるネットワーク間でのデータのルーティングや転送を可能にし、TCP/UDPはIPの機能を使ってエンド・トゥ・エンド(ネットワーク上に存在する2つのノード間)での通信を可能にする。このうちTCPはコネクション指向のプロトコルであり(通信の信頼性が保証される)、UDPはコネクションレス指向のプロトコルである(通信の信頼性は保証されない)。またこれ以外にも、実際にはARP(Address Resolution Protocol。IPアドレスから、物理層のMACアドレスを取得するためのプロトコル)やICMP(Internet Control Message Protocol。IP接続をテストしたり、通信経路でのエラー報告などを行ったりするためのプロトコル。pingコマンドはこのICMPを使って実装されている)など、一連のさまざまなプロトコルがある。一般に「TCP/IPプロトコル」といった場合には、これら一連のプロトコルもひとまとめにして指す。
TCP/IPの全体像はこのようなものだが、以後この連載では、ネットワーク層プロトコルであるIPに注目して解説を行う。IPの上位レイヤであるTCPやUDPについては、IPの解説を一通り終えたところで手を付けることにしよう。
IPネットワークでは、IPアドレスと呼ばれる数値をネットワーク内の各ノードに割り当て、通信の制御を行う。詳細は以後の連載で解説するとして、まずはIPアドレスがどのようなものか、簡単に見てみよう。
IPアドレスは32bitの数値で、通常はこれを8bit単位に区切り、各バイトの値を10進数で表記する(ここではIPv6は対象外として解説する*1)。なおIPアドレスなど、ネットワーク・データを表す場合には、「バイト(byte)」ではなく「オクテット(octet)」という用語を使うことが多い。オクテットは、環境によらず常に8bitのサイズを表す単位である。現在では、1byte=8bitのシステムがほとんどなので、「オクテット」と「バイト」は同じ8bitであるが、過去には1byteが8bitではないシステムも存在していた。このため表記上の混同を避ける目的から、常に8bitを表すオクテットという単位が導入されたという経緯がある。
*1 説明を簡単にするために、ここでは、現在でも広く一般に使われているIPv4の説明だけを行う。IPアドレスの枯渇問題などを解決するため、IPv4の後継として128bit幅のアドレス・フィールドを持つIPv6も実用化されているが、ここでは触れない。
10進数で表記した各オクテットの値は、ドット「.」で区切って表記する。例えば次のようになる。
IPアドレスは数値であることから、コンピュータを使った系統的な管理が容易である。例えば上図において、上側の2つはアドレスの上位16bitがまったく同じアドレス同士であり(正確には上位20bitが同じであるが、8bit単位で数えると、上位16bitが同じとなる)、下側の2つは上位24bitが同じアドレス同士である。このように、アドレス値の一部が同じもの同士をまとめて処理するなどが非常に簡単にできる。実際、IPネットワークでは、サブネット・マスクと呼ばれる値を使って、このようなアドレスのグループ処理(サブネット化/スーパネット化)を行い、効率よくネットワーク・アドレスを管理できるようにしている。具体的なIPアドレスの管理方法やルーティングのメカニズムについては、次回以降で解説する。
ここでおさらいの意味も含めて、NetBIOS名についても図にしてみよう。
NetBIOSでは、16byteの文字列でアドレッシングを行う(最後の1byteはリソース・タイプを表すために使われることは以前に説明した)。任意の文字列を割り当てられるので、人間にとっては読みやすく、また覚えやすい名前を付けることが可能だが、コンピュータから見たアドレスのデータには規則性がなく、機械的な処理には向かない。IPアドレスで可能なサブネット・マスクのような処理も不可能である。NetBIOSは、ルーティングが必須の大規模ネットワークなどを想定して設計されたものではないことがよく分かるだろう。
次回はIPアドレスについて、さらに詳しく解説する予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.