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アドレスを表記しないと、パケットが届かなくなってしまいます。
 
人間が一つ一つ登録するわけではないですが、この辺が難解でなかなか普及が進まない理由だそう。