第6回 TCP/IP始めの一歩基礎から学ぶWindowsネットワーク(3/3 ページ)

» 2002年10月17日 00時00分 公開
前のページへ 1|2|3       

 先にご紹介したWindowsネットワークのプロトコル・レイヤの図では、TCP/IP(NBT)としてひとまとめに描いてしまったが、TCP/IPプロトコルの内部にもう一歩踏み込むと、次のようになっている。

TCP/IPのプロトコル・レイヤ
ネットワーク層の処理とトランスポート層の処理が混然一体となっていたNetBEUIとは異なり、TCP/IPでは両者がプロトコルとして完全に独立されている。このように実際のTCP/IPは、TCPやUDP、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アドレスがどのようなものか、簡単に見てみよう。

 IPアドレスは32bitの数値で、通常はこれを8bit単位に区切り、各バイトの値を10進数で表記する(ここではIPv6は対象外として解説する*1)。なおIPアドレスなど、ネットワーク・データを表す場合には、「バイト(byte)」ではなく「オクテット(octet)」という用語を使うことが多い。オクテットは、環境によらず常に8bitのサイズを表す単位である。現在では、1byte=8bitのシステムがほとんどなので、「オクテット」と「バイト」は同じ8bitであるが、過去には1byteが8bitではないシステムも存在していた。このため表記上の混同を避ける目的から、常に8bitを表すオクテットという単位が導入されたという経緯がある。

*1 説明を簡単にするために、ここでは、現在でも広く一般に使われているIPv4の説明だけを行う。IPアドレスの枯渇問題などを解決するため、IPv4の後継として128bit幅のアドレス・フィールドを持つIPv6も実用化されているが、ここでは触れない。


 10進数で表記した各オクテットの値は、ドット「.」で区切って表記する。例えば次のようになる。

IPアドレスの例
IPアドレスは、32bitの数値で、通常はこれを8bitずつに区切り、10進表記をして、区切り記号にはドットを使う。32bit固定長の数値表現は、人間にとっては分かりづらいかもしれないが、コンピュータにとっては処理が容易である。

 IPアドレスは数値であることから、コンピュータを使った系統的な管理が容易である。例えば上図において、上側の2つはアドレスの上位16bitがまったく同じアドレス同士であり(正確には上位20bitが同じであるが、8bit単位で数えると、上位16bitが同じとなる)、下側の2つは上位24bitが同じアドレス同士である。このように、アドレス値の一部が同じもの同士をまとめて処理するなどが非常に簡単にできる。実際、IPネットワークでは、サブネット・マスクと呼ばれる値を使って、このようなアドレスのグループ処理(サブネット化スーパネット化)を行い、効率よくネットワーク・アドレスを管理できるようにしている。具体的なIPアドレスの管理方法やルーティングのメカニズムについては、次回以降で解説する。

 ここでおさらいの意味も含めて、NetBIOS名についても図にしてみよう。

NetBIOS名の例
NetBIOSでは、16bytesの任意の文字列(ただし最後の1byteはリソース・タイプに使用)をネットワーク・アドレス(およびサービス・タイプ)として使用する。図中の数値は、各文字コードを16進表記したものだ。人間にとっては読みやすく覚えやすい名前を付けることが可能だが、機械的な処理には向かない。

 NetBIOSでは、16byteの文字列でアドレッシングを行う(最後の1byteはリソース・タイプを表すために使われることは以前に説明した)。任意の文字列を割り当てられるので、人間にとっては読みやすく、また覚えやすい名前を付けることが可能だが、コンピュータから見たアドレスのデータには規則性がなく、機械的な処理には向かない。IPアドレスで可能なサブネット・マスクのような処理も不可能である。NetBIOSは、ルーティングが必須の大規模ネットワークなどを想定して設計されたものではないことがよく分かるだろう。


 次回はIPアドレスについて、さらに詳しく解説する予定である。


「連載 基礎から学ぶWindowsネットワーク ―― Windowsネットワーク管理者への道 ―― 」のインデックス

連載 基礎から学ぶWindowsネットワーク ―― Windowsネットワーク管理者への道 ―― 

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。