課題2:

tcpv6sはAF_INET6でソケットをオープンしているにもかかわらず,IPv4でも通信できる.この理由は何故か説明せよ.
(ヒント:IPv6アドレスとIPv4アドレスの互換性に着目せよ)



IPv6には,IPv4射影IPv6アドレスとIPv4互換IPv6アドレスの2つが存在する.



IPv4射影IPv6アドレス

IPv4のみをサポートしたインターフェースをIPv6から見た時の表現が, IPv4射影IPv6アドレスである.

(例)0:0:0:0:0:FFFF:133.13.59.53 or ::FFFF:133.13.59.53



IPv4互換IPv6アドレス

IPv6をIPv4ネットワークをトンネルして接続するために使われるのが,IPv4互換IPv6アドレスである. IPv4互換IPv6アドレスは,下位32bitに割り当てられているIPv4アドレスを埋め込み,上位のビットは全て0 にする. また,IPv6アドレスは16進表記が基本であるが,この場合には IPv4の10進表記でも良い.

(例)0:0:0:0:0:0:133.13.59.53 or ::133.13.59.53



AF_INET6でソケットをオープンしているにもかかわらず,IPv4でも通信できるのは, プログラム中でIPv4アドレスをIPv4射影IPv6アドレスに変換し,IPv4にも対応させているためである.


戻る