「IPv6プログラミング」

<作成者>
学籍番号:055752J
2班 氏名:比嘉安史
提出日:12月22日(金)

目次

    動作環境
    課題1
    解答
    課題2
    解答
    課題3
    解答
    実行結果
    参考サイト

動作環境

    この実験は以下の環境で行った.

課題1

解答

    tcpv6cではtcpcでは使われていないgetaddrinfoという関数を使っているからである.getaddrinfo関数はgetipnodebyname関数,getipnodebyaddr関数,getservbyname関数,getservbyport関数の機能をまとめて一つのインターフェースにしたものである.tcpcではIPアドレスとポート番号を別々に調べていることを,tcpv6cではgetaddrinfo関数を使ってまとめて行っているのでソースコードが短くなっている.

課題2

解答

    IPv6アドレスにはIPv6アドレス下位32ビットにIPv4アドレスを組み込んだ,下記の2種類のグローバルアドレスを定義している.

課題3

解答

    書き換えたプログラムを下に示す. 講義資料で与えられたヒントと,メーリングリストの質問などにだいぶ助けられた.

実行結果

  1. サーバを起動
    [nw0552:~/jikken2/ipv6] j05052% ./tcp6s 6400
     
  2. クライアントを起動(IPv6)
    [nw0552:~/jikken2/ipv6] j05052% ./tcp6c 2001:02f8:001c:d048:0211:24ff:fe74:311a 6400
    connected to '2001:2f8:1c:d048:211:24ff:fe74:311a' by IPv6
    trying 2001:2f8:1c:d048:211:24ff:fe74:311a port 6400
    Hello 2001:2f8:1c:d048:211:24ff:fe74:311a
     
  3. クライアントを起動(IPv4)
    [nw0552:~/jikken2/ipv6] j05052% ./tcp6c 133.13.59.52 6400
    connected to '133.13.59.52' by IPv4
    trying 133.13.59.52 port 6400
    Hello ::ffff:133.13.59.52
     
    実行結果よりIPv4アドレスを使って起動させた場合,IPv4射影アドレスに変換されていることが分かる.

参考サイト

課題のページに戻る