表紙 / 自作ソフト / 日記 / 宝箱 / サイト情報 / 検索
一般 / 新C言語 / 駄文
一覧 / 本文

IPvX Memo

Last update: 2003/01/13

(c)2001-2003 seclan. All rights reserved.
Homepage: http://seclan.dll.jp/
E-mail: seclan[ここはアトマークに置き換えてください]dll.jp


ネットワーク全般

  • ネットワークバイトオーダ (Network Byte Order)
    通常、ネットワークバイトオーダという場合には、Big Endian のことを指しています。
  • オクテット
    8 bit の固まりのことを言います。PC などでは、通常 byte=8bit ですが、これは必ずしも合意が取れていません。つまり環境によっては byte≠8bit が存在します。そのため、新たにオクテットという言葉が作成されました。

IPv4

  • IP とは Internet Protocol の略称で、インターネットで使用されるプロトコルを示しています。
  • IP アドレスとは、IP 上で各端末を識別するための番号で、IPv4 では 32bit の長さを持っています。ネットワーク上では、このアドレスはネットワークバイトオーダで流れます。
  • IPv4 では、32bit のアドレスをそれぞれオクテット単位 (つまり 8bit 単位) の4つの部分にわけ、それぞれを 10進数で記述し '.' でつなげて表現します。つまり IPv4 のアドレスが値 0x7f000001 の場合、127.0.0.1 として表現します。
  • 初期の IP アドレスはいくつかの Class で分類されていましたが、後にはこの Class という考えは廃止され、クラスレスアドレスを使用するようになりました。
  • クラスレスアドレスでは、IP アドレスとアドレスマスクを使用します。アドレスマスクは IPv4 と同じ長さで、ビット 1 の部分が netid を、0 の部分が hostid を示します。(例えば、IP アドレス 127.0.0.1 に対し、マスクは 255.0.0.0)
  • またマスクは左からの bit が 1 である数を表したプレフィックス長 (prefix length) としても表現できます。この場合には、IP アドレスの後ろに / を付け、そのあとにプレフィックス長をつけます。(例:127.0.0.1/8)
IPv4 class bit range

0
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1

Class A 0 netid (7 bit) hostid (24 bit)
Class B
10
netid (14 bit) hostid (16 bit)
Class C
110
netid (21 bit) hostid (8 bit)
Class D
1110
multicast address (28 bit)
Class E
11110
reserved (27 bit)

3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
0
9
0
8
0
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0

Notes:
 id == 0..0 はここをあらわすために用いられる。
 id == 1..1 は全部をあらわすために用いられる。

IPv4 class range

Class A 0.0.0.0 (0x00000000) - 127.255.255.255 (0x7FFFFFFF)
Class B 128.0.0.0 (0x80000000) - 191.255.255.255 (0xBFFFFFFF)
Class C 192.0.0.0 (0xC0000000) - 223.255.255.255 (0xDFFFFFFF)
Class D 224.0.0.0 (0xE0000000) - 239.255.255.255 (0xEFFFFFFF)
Class E 240.0.0.0 (0xF0000000) - 247.255.255.255 (0xF7FFFFFFF)

Notes: [RFC3330]
 0.0.0.0特定されていないアドレス (INADDR_ANY)
 0.0.0.0/8「この」ネットワーク [RFC1700]
 127.0.0.0/8ループバックアドレス (Loop Back Address) (INADDR_LOOPBACK)
 169.254.0.0/16リンクローカルアドレス (Link Local Address)
 192.0.2.0/24Test-Net アドレス: example.com の IP アドレス版
 192.88.99.0/246To4 リレーエニーキャスト [RFC3068]
 232.0.0.0/8送信元が特定されるマルチキャスト(SSM: Source-Specific Multicast) IP アドレス [RFC4607]
 224.0.0.0/4マルチキャストアドレス [RFC3171]
 255.255.255.255ローカルネットワークブロードキャストアドレス (Local Network Broadcast Address)
 10.0.0.0/8Class A: Private Address [RFC1918]
 172.16.0.0/12Class B: Private Address [RFC1918]
 192.168.0.0/16Class C: Private Address [RFC1918]

IPv6

  • IPv6 は、アドレスとして 128bit の長さを持つ IP で、IPv4 の後継として設計されました。
  • IPv6 では、128 bit のアドレスをそれぞれ 16bit の 8 つの部分にわけ、それぞれを 16 進数で表記し ':' でつなげます。つまり IPv6 のアドレスの値が、0x00000000000000000000000000000001 の場合、0000:0000:0000:0000:0000:0000:0000:0001 として表現します。(または、0:0:0:0:0:0:0:1)
  • また 0000 が連続して2回以上現れた場合、一回に限り '::' を使用してその間の 0 を省略して記述することができます。例えば、上記の例では 0000::0001、0::1、あるいは ::1 と表現できます。
  • IPv4 との混在運用のための表記があります。その場合には、後ろの 32bit 部分を IPv4 表記します。(例えば ::127.0.0.1 [IPv4 互換アドレス:自動トンネル用], ::ffff:127.0.0.1 [IPv4 射影アドレス:カーネルの実装に利用] など)
  • リンクローカルアドレス fe80::xxxx:xxxx:xxxx:xxxx。xxxx:..:xxxx はインターフェース識別子。インターフェース識別子は EUI-64 形式のアドレスを生成して割り当てる。mmmmを mac アドレス(= EUI-48) とすると、FE80::mmmm:mmFF:FEmm:mmmm とする。
  • サイトローカルアドレス fec0::ssss:xxxx:xxxx:xxxx:xxxx。xxxx:..:xxx はインターフェース識別子。ssss はサブネット識別子。 インターフェース識別子は EUI-64 形式のアドレスを生成して割り当てる。mmmmを mac アドレス(= EUI-48) とすると、FEC0::ssss:mmmm:mmFF:FEmm:mmmm とする。
IPv6 address type

0
0
0
0
0
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
0
0
8
0
0
9
0
1
0
1
2
7

reserved
0000 0000
(120 bit)
unassigned
0000 0001
(120 bit)
reserved for NSAP
0000 001
(121 bit)
reserved for IPX
0000 010
(121 bit)
unassigned
0000 011
(121 bit)
unassigned
0000 1
(123 bit)
unassigned
0001
(124 bit)
aggregatable global unicast address
001
(125 bit)
unassigned
010
(125 bit)
unassigned
011
(125 bit)
unassigned
100
(125 bit)
unassigned
101
(125 bit)
unassigned
110
(125 bit)
unassigned
1110
(124 bit)
unassigned
1111 0
(123 bit)
unassigned
1111 10
(122 bit)
unassigned
1111 110
(121 bit)
unassigned
1111 1110 0
(119 bit)
link local unicast address
1111 1110 10
(118 bit)
site local unicast address
1111 1110 11
(118 bit)
multicast addres
1111 1111
(120 bit)

1
2
7
1
2
6
1
2
5
1
2
4
1
2
3
1
2
2
1
2
1
1
2
0
1
1
9
1
1
8
1
1
7
0
0
0

Notes:
 ::特定されていないアドレス (in6addr_any,IN6ADDR_ANY_INIT)
 ::1ループバックアドレス (loop back address) (in6addr_loopback, IN6ADDR_LOOPBACK_INIT)
 FF3x::/32送信元が特定されるマルチキャスト(SSM: Source-Specific Multicast) IP アドレス [RFC4607] (xはスコープid)

参考:
 IPv6: [RFC2073,RFC1884,RFC1897] ←古い
 RFC2553: Basic Socket Interface Extensions for IPv6: IPv6 用ソケットインターフェースなど
 RFC3056: Connection of IPv6 Domains via IPv4 Clouds: 6to4 address
 RFC1933: Transition Mechanisms for IPv6 Hosts and Routers: IPv4 compatible address
 W.Richard Stevens: "UNIX NETWORK PROGRAMMING volume 1, Second Edition, Networking APIs: Sockets and XTI", Prentice HALL, 1998
 (訳: 篠田陽一: "UNIX ネットワークプログラミング 第2版 Vol.1 ネットワーク API: ソケットと XTI", トッパン, 1999)

表紙 - 著作権 - 注意事項 - リンクについて - 404 エラーについて
(c)2001-2003 seclan. All rights reserved.