IPパケット
インターネット層では、IPパケットが作られる。
IPパケットは以下の部品から構成される。
- IPヘッダー
- IPペイロード
IPヘッダーに含まれるもの(一部抜粋)
- バージョン:IPバージョンを示す(IPv4の場合は「0100」)
- ヘッダー長:ヘッダーの長さを示す
- フラグメントオフセット:元となるデータをどこまで送ったかを判定する値
- TTL(time to live):パケットの生存時間
- プロトコル番号:ペイロードを構成しているプロトコル(TCPとかUDP)
- 送信元/宛先IP
IPv4(Internet Protocol version 4)
IPv4ネットワークに接続されている端末を表すIDです。IPv4ネットワーク内の住所のようなもの。
4バイト32ビットで表される。
似たようなものでMACアドレスというものが存在するが、これは物理的に決められたアドレス。
NIC(ネットワークインターフェースカード)に割り当てられている。
具体的にはルーターやPCなどにある差し込み口とかのこと。
IPアドレスは動的に決定されるもので、ISP(インターネットサービスプロバイダー)が決める。
ISPは例えば、ドコモとかsoftbankとか。
PCごとに決まっているとかではなく、ISPが決めるのでここが変わればIPも変わる。
IPv4アドレスは基本的に「ドット付き10進記法」というやらで表現される。
先ほど、4バイト32ビットで表現されると書いたが、それはこんな感じ。
11000000 10101000 01100100 00000001
これを先ほどのやつで表すと
192.168.100.1
こんな感じ。
IPアドレスは「ネットワーク部」と「ホスト部」で分かれて、その分かれ目は「ネットワークマスク」で表現される。
192.168.100.1/24
最後の24が「ネットワークマスク」で、先頭から24ビットで区切る。という意味。
つまり、このIPアドレスは、
192.168.100ネットワークに所属する端末1ということを指す。
このIPアドレスは「0.0.0.0」から「255.255.255.255」までの組み合わせがあり、約43億個あるみたい。
そして、この組み合わせは5つグループに分けられています。
「クラスA」から「クラスE」の5つ。
先頭の8ビットによって決まっていて、
- 0 ~ 127:Aクラス:大規模ユニキャスト:ネットワーク部8ビット
- 128 ~ 191:Bクラス:中規模ユニキャスト:ネットワーク部16ビット
- 192 ~ 223:Cクラス:小規模ユニキャスト:ネットワーク24ビット
- 224 ~ 239:Dクラス:マルチキャスト
- 240 ~ 255:Eクラス:研究用
といった感じ。
「192.168.100.1」さっきのこれはCクラスとなる。
最後の8ビットからさらに、ネットワーク部とホスト部を分けることもでき、これはサブネットと呼ばれる。
IPには
- グローバルIP
- プライベートIP
があります。
前者は一つのみしか存在しない。後者は会社や学校などのローカル内で利用されるもので、その中で一つ。
IPv6
IPv4よりも長いアドレス。
340潤個という、天文学的な数のIPを割り当てることができるので不足しない。
ちなみに、16バイトの128ビット
IPv6は長すぎて、実際には扱いづらいらしいです。
理由は長すぎるが故に表記方法は様々あり、多すぎて覚えにくかったりします。
実際にネットワーク上の機器には「IPアドレス管理表」みたいなものがあり、ここにIPアドレスを登録していきます。
この表に正確にIPv6アドレスを表記しないと、パケットが届かなくなってしまいます。
人間が一つ一つ登録するわけではないですが、この辺が難解でなかなか普及が進まない理由だそう。