IPアドレスとドメイン名

IPアドレスとドメインの関係

コンピュータで扱うIPアドレスは、現行の32bit(4byte)、または128biteのサイズになっています。
しかし、我々人間が32ビットのIPアドレスを表記する場合、それぞれのバイトを10進数にして、コンマで区切って表現するのが一般的です。
例えば 01001010011111011110101110111000 の32ビットであれば

01001010 01111101 11101011 10111000 のバイトで区切り、10進数にして、

それを、ドットで区切って、74.125.235.184 という表記になります。

しかし、これでも一般の人にとっては、IPアドレスの番号は扱い難い番号といえます。
そこで、一般にインターネットを使う場合は、次のようにドメイン名を使います。

ドメイン名は、サーバーのIPアドレスを表現するためのもので、 IPアドレスに名前を付けたものと考えると分かりやすでしょう。
クライアントからサーバーに接続する時、コンピュータ内部ではIPアドレスを使います。
ですからインターネットブラウザでは、、次のようにIPアドレスの表記でも対応できます。

上記で分かるように、www.google.co.jpに対応するのが 74.125.235.184になっています。

なお上記のIPアドレスで、現在のwww.google.co.jpを閲覧できないかもしれません。(以前は閲覧できました。)
IPアドレスとドメイン名の対応表はDNSで管理され、それは以下で示すように「IPアドレス管理指定事業者」で管理され、 IPアドレスが変わることもあるのです。
windowsで調べる場合は「nslookup google.co.jp」、Linuxは「dig google.co.jp」のコマンドライン操作で google.co.jpのIPアドレス情報が得られます。
それによると現在(2015年5月)は、「173.194.126.255」などが使えています。今後、また変わることでしょう。

ドメインの表現方法と決められ方

上記例のwww.google.co.jp において、正確には、google.co.jpの部分がドメイン名で、 wwwはサーバーの名前(ホスト名)になっています。
(ホスト名も含めたドメイン名は、完全修飾ドメイン名(FQDN:Fully Qualified Domain Name:フリー・クオリファイド・ドメイン・ネーム) と呼ばれます)。
そしてドメインは、階層化されていて、それぞれの階層をドット( . )で区切る形になっており、 後ろから順に『第1またはトップレベルドメイン(TLD:Top Level Domain)』、 『第2レベルドメイン』、『第3レベルドメイン』、第4、第5、...呼ばれます。 (階層的には、『トップレベルドメイン』が最上位になります)
ドメインの直訳は『領域』ですが、最も大きな領域指定が『トップレベルドメイン』で、 その領域の中にある次の大きさの領域を『第2レベルドメイン』で指定し、その中の次の領域を『第3レベルドメイン』 で指定します。(住所を順番に指定しているに似ています。)
各ドメインの使われ方は、上位のドメインによって異なりますが、jpのトップレベルでは次のようになります。

なお、この例における『トップレベルドメイン』は、国ごとに割り当てられるccTLD(country code Top Level Domain)に分類されますが、 他にgTLD(generic Top Level Domain)と呼ばれ名前(例:com、org、net、biz、info)が存在します。

そして、IPアドレスとドメイン名の割り当ては自由にでききるわけではなく、 ICANN (Internet Corporation for Assigned Names and Numbers)及び、 その下部組織のNIC(Network Information Center)と呼ばれる非営利機関が管理しています。
日本の場合は、NICの下部組織に位置する JPNIC (JaPan Network Information Center)が、これら資源を管理しています。
(実質的には、「IPアドレス管理指定事業者」の管理を行っています。)

なお、「jp」トップレベルドメインは、「汎用JPドメイン」、「属性型JPドメイン」、「地域型JPドメイン」に分けることができます。
これは、セカンドレベルドメインで、汎用JP型、組織種別型JP、地域型JP、に分かれるからです。

「汎用JPドメイン」は、日本国内に住所があれば、個人・法人を問わず、ひらがなや漢字を使ったドメイン名でも登録できます。
(JPRS「株式会社日本レジストリサービス」が登録業務を行っています)

対して、「属性型JPドメイン」は、色々な制限があります。
この組織種別型JPのセカンドレベルドメイン名として、「co」、「ac」、「ne」などが有名ですね。
「co」セカンドレベルドメインは、会社組織用で、一つの組織に対して、一つのドメインしか登録できない規則になっています。
また、「ac」セカンドレベルドメインは教育機関用でしか使えません。
「ne」は、プロバイダなどのネットワークサービス用で、個々のサービスに対して一つのドメインが登録できます。

IP version 6 (IPv6)

ちょうど現在、IP version 4 (IPv4)の番号割り当てが足りなくなり、IP version 6 (IPv6)に移行中の状況です。
(IPv4は、IANA(アイアナ)からRIR(Regional internal Registry)のIPアドレスの割り振りは2011年2月に枯渇しました。)
今後しばらくは、IPv4とIPv6が混在する形で運用するでしょう。

IPv4のアドレスは32bitに対してIPv6は16byte(128bit長)になります。 ですが、ネットワーク部とホスト部に分かれる構造や、あて先のネットワークに伝達するためにネットワーク部を使う考えは同じです。 ほとんど場合、IPv6のネットワーク部サイズは64ビット固定長にするため、ルータ内部のハードが簡単になる分だけ高速化しやすいようです。
この場合のネットワーク部に対応する64ビット部分が「ネットワークプレフィックス」、 ホスト部に対応する部分は「インターフェイスID」と呼び、共に64ビットになります。
(なおネットワークプレフィックスが64ビットに決まっているわけではありません。正確には、ネットワークプレフィックスをnビットとすると、 インターフェイスIDの範囲は、「128-n]のサイズと定義されています。)
IPv4と違って、全ノードがグローバルな接続性を持つので、環境が整えばNAT/NAPTを使わずに直接インターネットの接続が可能になる。

2バイトずつ“:”で区切って、16進数で表記しています。(rfc3986)
16バイト(128bit)あるので、“:”により8ブロックに分けた表現で、1つのブロックは4桁になります。
例を示します。 →2001:0000:4137:9e76:2878:289d:3f57:fffc
そして IPv6のアドレス表記では、次の簡略表現ができます。

IPv6の詳細

デュアルスタック ( dual stack )

IPv4とIPv6とを共存させて用いるための技術です。
具体的には、一つのホストの中で IPv4とIPv6のアドレスをそれぞれ持って、相手に合わせてどちらでも使える方法です。
IPv4とIPv6のハードは全く違うため、IPv4からIPv6アドレスへの移行するに、相当な時間がかかると予想され、 しばらくはIPv4とIPv6を混在して使われるでしょう。
それを補う一つが「 デュアルスタック 」であり、他に「 トンネリング 」 と呼ばれる手法がある。

なおデュアルスタック環境では、IPv6通信が優先されることが多く、 始めにIPv6通信を試みてその通信が成立しない場合、IPv4通信で再送を試みることがあり、 それは「フォールバック」と呼ばれます。
このIPv4による再送のため遅延が発生ことがあります。 また、フォールバックしない機器も存在する時、通信は成立しないことも生じて さまざま対策がとられています。