[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12814] ネットワークプ ログラミングの真髄:予習編( Part 1 )



高橋(徹)です。

第1回ということもあり、ネットワークプログラミングの真髄の予習編として、
今回の読書想定範囲から課題・トピック抽出をしました。(Part 1)

・RFCの参照方法
TCP/IP関連は、明確な定義(仕様)はIETFが発行するドキュメント(RFC)で
記述されています。そこで、ちょくちょくこのRFCを参照することが必要です。
ということで、RFCを見るにはどこへ行けばいいかを押さえておくのが課題
です。(英語原文および日本語訳それぞれ知っておきたい)

・IPv6アドレス表記方法
p.10 2.2.2 IPアドレス
IPv6のIPアドレスの表記について、本書では「8ビットずつをコロンで区切って
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1のように
書き表します。」とありますが、RFC 2373を引用している JavaDocの
Inet6Addressクラスの記述を見ると、
http://java.sun.com/javase/ja/6/docs/ja/api/java/net/Inet6Address.html
「推奨の形式はx:x:x:x:x:x:x:xです。ここで、『x』は、アドレスを8つの16
ビット部に分けて16進数で表した値です。」
とあるので、本書の誤記と思われます。
→課題:RFC 2373を探して上記記述を探してみましょう。

・ポート番号の範囲
p.11 2.2.4 ポート番号
本書では「サイズが16ビットなので範囲は1から65535までです。」とあります
が、0をあえて範囲から除外しているのは何故だろう、と疑問に思いました。
ポート番号はIANAが管理しており、IANAのWebサイトを見ると、ポート番号0は
"Reserved"および"Shirt Pocket netTunes"および"Shirt Pocket launchTunes"
に割り当てられています。
http://www.iana.org/assignments/port-numbers
さて、どう解釈すればよいのでしょうか・・・

・IPv6
p.15 2.4 IPv6
 本書では「IPv4とIPv6の両方を自動的にサポートします。」とあります。
後に出てくるTCPサーバ・プログラムを実行してみて、netstatコマンドを実行し
てIPv4とIPv6のサポート状況を調べてみるとよさそうです。

・TCP低レベルの通信
p.25 3.2 TCPの特徴と費用
ここでは、TCPコネクションを確立・クローズする際のパケット交換の説明があ
ります。が、なかなか読むだけでは理解しずらいので、ネットワーク・パケッ
ト・キャプチャ・ツールを使って実際に見てみるのがよいと思います。

ということで、フリーのキャプチャ・ツール「Wireshark」を入れて、次に出て
くるTCPのサンプルコードを動かして解析してみるのがよさそうです。

http://www.wireshark.org/

−−− Part 1 −−−