|
|
通信とネットワークの基礎知識
|
通信とネットワークTCP/IPとはTCPとUDP上位プロトコルとポート番号IPアドレスとは〜その1IPアドレスとは〜その2IPアドレスとは〜その3回線の種類についてISPの選択ネットワークの構築ルーターの設定〜その1ルーターの設定〜その2ドメイン名について名前解決とネームサーバーダイナミックDNS |
絶対不変のMACアドレスコンピュータのネットワークには、多くの サーバー や クライアント などの ホスト が接続されているのが普通です。 コンピュータのネットワークで最大級のものはもちろんインターネットですが、ここまで規模が大きくなると、そのネットワークの中にはとんでもない数のホストが接続されています。 もちろん、今この コンテンツ を表示しているあなたの目の前のパソコンも、そのインターネット上のホストのひとつということになります。 つまり実際に今、このコンテンツを配信している「お便利サーバー」とあなたのパソコンは、サーバーとクライアントの関係で接続中、ということになるわけですが、世の中に星の数ほどもある ホスト機 の中で、たった二つのホスト機がお互いに相手を間違うことなく接続している訳です。 よく考えてみると、なんとなく不思議な感じがしませんか?。 実はコンピュータネットワークに接続している無数のサーバーやパソコン、 ルーター などの通信機器には、 それぞれの所在地を特定する識別情報 が割り当てられています。それは例えば世の中に同じものが存在しない、電話番号や住所のようなものだと考えてください。 世の中の通信機器にはそういった ユニーク な所在地情報が存在するからこそ、無数のホストの中で任意のホスト同士が間違いなく通信できるというわけです。 ホスト機や通信制御機器などの固有の識別情報にはいくつかの種類がありますが、その中のひとつが MACアドレス という識別情報です。 MACアドレスの"MAC"は「メディア・アクセス・コントロール」の略で、通信の出入り口である NIC に割り当てられている背番号のようなものです。 MACアドレスは、 IEEE という国際的な組織が厳密に管理していて、安いものであればパソコンショップでわずか数百円で入手できるNICでもその管理下で製造されていて、世の中に二つと同じ番号は存在しないようになっています。 NICはカードの形をしていなくても、マザーボードやルーターに内蔵にされているネットワークポートや、更に無線LANカードや無線アクセスポイントなど ノード としての役目を持つ通信機器には必ずMACアドレスが設定されています。 MACアドレスは、電子部品である ROM に書き込まれた情報としてNICに搭載されているため、ユーザーが勝手に内容を変えることはできません。 もし、これが何らかの方法で変更が可能だとしたら、世の中に同じ識別情報をもったノードが複数存在してしまう可能性が出てきます。もしそうなってしまうと大変な事態を招くであろうことは容易に想像できると思います。 MACアドレスが国際機関によって厳密に管理されなければならないのは、実はそういう理由があるからです。 ただ、実際にネットワークを構築してゆく上では、ネットワーク機器やホストのMACアドレスを具体的に調べ、その値を使って何かの設定を行う、というようなケースはほとんどありません。 TCP/IP の通信は通常、MACアドレスの上位の ノード 情報である IPアドレス によって接続が確立されます。 接続が確立したら、 ソフトウェア 的な識別情報であるIPアドレスは ハードウェア としての識別情報であるMACアドレスに引き継がれ、後はハードウェア同士がMACアドレスを識別情報として通信を行う、という手順になります。 つまり、MACアドレスは常にIPアドレスの「裏方」となって働くわけですから、一般的には意識する必要がないということです。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
| ユニーク :"unique"。独自の、唯一の、独特の、という感じの意味。日本では「独特の変わったもの」というフィーリングでとらえられていますが、技術用語では「他に同じ物が無い」という意味で使います。従って「ユーザーにユニークなIDを与える」といっても、hanamogeraとか、papparapaのような面白げなIDを与えることではありません。 |
後ほど説明しますが、IPアドレスはMACアドレスと違って物理的に決められたものではありませんから、完全にユニークなものではありません。しかしその裏に完全にユニークなMACアドレスという識別情報が存在してくれるおかげでIPアドレスはきちんと機能することになります。 MACアドレスについてユーザーが直接何かをしなければならないケースは多くはありませんが、厳密な セキュリティ が必要な場面では、稀に「設定の表舞台」に登場することがありますから、ここでは「そういう識別情報が存在する」という理解をしておいてください。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
ネットワーク上の電話番号"IPアドレス"さて、 MACアドレス による ノード 識別 は、任意の ホスト 同士が決して相手を間違えることがない、という点ではとても良い方法なのですが、実は大きな問題があります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
それは、その機器が破損や故障したときの対処が面倒だということです。 もし、MACアドレスがネットワーク上のノードの唯一の識別情報だとしたら、その情報源である NIC が破損してしまったとき、そのノードは識別情報を失ってしまうことになります。そして、もしも代わりのNICを取り付けてしまうと、その所在地情報そのものが変わることになってしまいます。 これは、家庭の電話器が壊れてしまうと同時にその家の電話番号まで失われてしまうようなものですから、これほど不便なものはありません。 この問題を解消するための、もう一つの識別情報が IPアドレス です。 IPアドレスもMACアドレスと同様、 NICに割り当てられる ユニーク な識別情報 です。ただ、IPアドレスがMACアドレスと異なるのは、その識別情報が ハードウェア 的に ROM に書き込まれて個別に提供されるものではなく、NICに対して ソフトウェア 的に割り当てられるものだということです。 MACアドレスが「住宅そのもの」だとすると、IPアドレスはその家の「電話番号」といったところでしょうか。 電話番号は具体的な場所を示すものではありませんが、「抽象的に」場所を特定することができる識別情報ですから、IPアドレスの考え方と非常によく似ています。 電話は、回線さえ同じであれば通話をするための電話機を交換しても電話番号が変更になるということはありません。これは、NICを交換することでMACアドレスが変更になっても、そのノードに割り当てられるIPアドレスさえ変化しなければ、識別情報に変化が起こることがない、という理屈によく似ています。 また一方では、IPアドレスは都合に応じて割り当てるNICを変更することができますし、一つのNICに複数のIPアドレスを割り当てることもできます。 これは電話交換局の操作で同じ回線の電話番号を変更したり、宅内の電話交換機を利用して、一つの電話機で複数の電話番号の着信を受け付けられるようにすることとよく似ています。 これらの優れた融通性は、NICに固定的に割り当てられたMACアドレスだけでは決して実現することはできません。 では、MACアドレスという識別情報は何のために存在しているのでしょうか。ノードを識別する情報など、IPアドレスだけで充分だとはいえないでしょうか。 例えば、ここにネットワークに接続した10台の ホスト機 があるとします。そして、その10台に各々異なったIPアドレスを割り当てて識別情報を与えようとする通信制御機器があるとします。 もしもその10台のホスト機が、ハードウェア的に全く同じものであって、何の識別情報も持っていなかったとしたらどうでしょう。通信制御機器はそれぞれのホスト機に異なったIPアドレスを割り当てようにも、「何を基準にして」IPアドレスを割り当てればよいのでしょうか。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
| MACアドレスは、単にIPアドレスを割り当てるための「目印」という訳ではありません。IPアドレスは、通信しようとするお互いを識別させるまでが主な仕事で、その後に行われる実データの送受信は、MACアドレスが識別情報として使われるのが普通です。つまり、最終的に行われるハードウェア同士の送受信は、ハードウェア情報を基準に行ったほうが都合がよい、という訳ですね。 |
つまり、IPアドレスという ソフトウェア的な識別情報 を利用するためには、それを割り当てるために最低限の ハードウェア的な識別情報 が予め必要となるわけで、その役目を担うのがMACアドレス、ということになるわけです。 それでは試しに、今あなたがお使いのホスト機が WindowsOS ならば、マウスを操作して、 スタート → プログラム(P) → アクセサリ → コマンドプロンプト で、 コマンドプロンプト 画面を開いてみてください。 そしてキーボードから、 ipconfig /all Enter とタイプしてみてください(/allの手前にはスペースが一つ入ります)。すると、黒抜きの画面に色々表示されると思いますが、その中で、 Physical Address. . . . . . . . . : に続いて表示されるのが、今使用しているNICの MACアドレス で、 IP Address. . . . . . . . . . . . : に続いて表示されるのが、現在割り当てられている IPアドレス ということになります。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
二進数の考え方とIPアドレスの表記法 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
コンピュータ(正確にはデジタルコンピュータ)にとっては十進数は扱い難い記数法です。例えば、電圧を十段階に分けて入出力すれば、コンピュータでも十進数が扱えない訳ではありません。ただしその場合には、電圧の高さを正確に変化させ、正確に計測する装置を内蔵しなければなりません。ところが二進数ならば、正確な電圧を出力したり計測したりする必要はありません。なぜなら、電圧が「ある」か「ない」かだけを出力し、計測すればよいだけだからです。そして、電圧が「ある」場合を「1」、「ない」場合を「0」として扱うような仕組みにしてしまえば、多少電圧がずれて出力されても、計測の精度がそれなりに悪くても動作に影響はない訳です。
パソコンを深く理解しようとすると、必ず二進数の勉強が必要になるのは、そういう理由からです。 |
IPアドレス は32ビットの数値、つまり32桁の 「二進数」 で表されます。 二進数といってもよく解らない方のために少し説明します。 私たちが普段使用しているのは、数値が10になる毎に位(くらい)が一桁ずつ上がってゆく、いわゆる 十進数 です。これは、人間が生物学上、両手で十本の指を持っているためにそうなったと考えられています。私たちは普段の生活でほとんど十進数を基準に物を数え、お金を計算していますが、例外もいくつかあります。 例えば、60秒で1分、60分で1時間ですから、これは 六十進数 です。また、12本で1ダース、12ダースで1グロスという数え方をする場合には 十二進数 という記数法を使っていることになります。 同じ考え方で、 数値が2になる毎に位が一桁ずつ上がってゆくような位取りを二進数 と呼びます。解り易いように、十進数と二進数を並べて書くと、以下のようになります。
十進数の場合、位(くらい)取りは小さいほうから「1の位」、「10の位」、「100の位」と10倍づつ増えてゆきますが、二進数の場合は「1の位」、「2の位」、「4の位」、「8の位」という具合に二倍づつ増えてゆくことになります。 ただ、二進数をコンピュータの記数法として扱う場合は、「位」という呼び方はせず、「 ビット 」と呼びますので、8桁の二進数は「8ビット」という呼び方になります。 例えば、
11010011
という8ビットの数値の場合、左から128、64、32、16、8、4、2、1の位になりますから、これを十進数になおすには、数値が1の部分のビットの位を合計すればよいことになります。従って、
128+64+16+2+1=211
となります。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
| IPアドレスの枯渇問題 :IPアドレスは32ビット、つまりその最大数を十進数に直すと、4,294,967,295、約43億です。つまり、世の中で利用できるIPアドレスの数は、現在の世界の人口の半分程度に過ぎません。少ないですよね。このまま世界のIT化が進めば、近い将来IPアドレスが不足することは明らかです。現在のIPアドレスの規格は IPv4 と呼ばれるものですが、現在導入が始められている IPv6 では、IPアドレスが128ビットになり、その数は十進数で38桁(現在は10桁)になりますから、そのアドレスが足りなくなるより、人類が滅びるほうが先ですね。 |
さて、このセクションの最初に述べたとおり、IPアドレスは32ビットの数値で表されます。つまり最小が、
00000000000000000000000000000000
最大が、
11111111111111111111111111111111
で示される二進数の範囲ということになります。 ところが、 「このサーバーのIPアドレスは、"11010011101101110110111100100010"です。」 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
| 普通じゃない人 :には、これが当たり前に理解できるのだそうです。少なくとも私は「普通の人」のようです。良かった。 |
みたいな書き方では、普通の人にとっては非常にわかりづらいため、IPアドレスは8ビットごとに「.(ドット)」で区切り、更に各8ビットを十進数に直した状態で表記されます。 つまり、
00000000.00000000.00000000.00000000
をIPアドレスの普通の表記になおすと、
0.0.0.0
となり、
11111111.11111111.11111111.11111111
は、
255.255.255.255
となります。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
管理人おススメの
ネットワーク解説書です ↓ |
例えば、先の例の、
11010011101101110110111100100010
は、
11010011.10110111.01101111.00100010
ですから、IPアドレスの普通の表記に直せば、
211.183.111.34
となります。こういう書き方になると、なんとなく、どこかで見かけたことのある数字に見えてきませんか?。
|
|
|
TCP/IPとは
<<Previous
|
Next>>
IPアドレスとは〜その2
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |