内容説明
TCP/IPプロトコルの動作を実験プログラミングで学ぶ!
TCP/IPの動作メカニズムの詳細を理解するには、実際に動作を確認するためのプログラム作成し、解析することが最良の方法といえる。
この本では、IP、TCP、UDP、ICMP、IP(v6)などのヘッダを直接操作したり、生成するプログラムの作成をとおして、これらのプロトコルのもつ性質、メカニズムの本質を理解していく。
プログラムはC言語対応、OSは、FreeBSD、Linux対応。実験プログラムをとおしてプロトコルの詳細を学ぶのに最適の1冊。
2001年8月に発行された初版を、現状に合わせて改訂し、第2版として発行するもの。
目次
はじめに
本書使用上の注意
ダウンロードサービスから入手できるファイル
第1章 TCP/IPプロトコルスタック入門
1.1 TCP/IPプロトコルスタックの基礎
1.1.1 TCP/IPネットワーク
1.1.2 パケット交換の基礎
1.1.3 ソフトウェアとハードウェア
1.1.4 アプリケーションとオペレーティングシステム
1.1.5 通信を制御する3つのソフトウェア
1.1.6 プロトコルスタックとパケットの処理
1.2 プロトコルスタックの詳細
1.2.1 アドレスとプロトコルスタック
1.2.2 アドレスの変換処理と表
1.2.3 プロトコルスタックの内部処理
1.2.4 クライアントサーバモデル
1.3 プロトコルスタックの実現方法
1.3.1 ソケット
1.3.2 システムコールと内部の処理
1.3.3 Raw IPとデータリンクアクセスインタフェース
1.3.4 多重化とバッファ
第2章 TCP/IPプロトコルとヘッダの構造
2.1 プロトコルヘッダと構造体
2.1.1 プロトコルとヘッダ
2.1.2 ヘッダと構造体とメモリ
2.1.3 ヘッダ構造とCの型
2.1.4 ビットフィールド、フラグによるヘッダの処理
2.1.5 配列によるヘッダの処理
2.1.6 メモリの整列(アライメント)
2.1.7 バイトオーダ
2.2 Ethernet
2.2.1 Ethernetの基礎
2.2.2 Ethernetのフレームフォーマットと構造体の定義
2.2.3 Ethernetの基本動作
2.3 ARP(Address Resolution Protocol)
2.3.1 ARPの基礎
2.3.2 ARPのパケットフォーマット
2.3.3 ARPプロトコルの動作
2.4 IP(Internet Protocol)
2.4.1 IPの基礎
2.4.2 IPヘッダとヘッダ構造体について
2.4.3 ルーティングの基礎
2.4.4 IPフラグメント
2.4.5 IPフラグメントの問題点
2.4.6 経路MTU探索
2.5 ICMP(Internet Control Message Protocol)
2.5.1 ICMPとは
2.5.2 ICMPエコー要求・エコー応答メッセージ
2.5.3 ICMP到達不能メッセージ
2.5.4 ICMPリダイレクトメッセージ
2.5.5 ICMP時間超過メッセージ
2.5.6 共用体と実際のicmpパケット構造体
2.6 UDP(User Datagram Protocol)
2.6.1 UDPの概要
2.6.2 UDPヘッダとヘッダ構造体について
2.7 TCP(Transmission Control Protocol)
2.7.1 TCPの概要
2.7.2 TCPヘッダとヘッダ構造体について
2.7.3 TCPのコネクションの確立
2.7.4 TCPのコネクションの切断
2.7.5 TCPによる信頼性の提供
2.7.6 バッファサイズとウィンドウ
2.8 チェックサム
2.8.1 チェックサムが保証する内容
2.8.2 チェックサムのアルゴリズム
2.8.3 チェックサム計算プログラム
第3章 ソケット
3.1 ソケットの概要
3.2 ソケットで利用される構造体
3.3 ソケットシステムコールによる処理の流れ
3.3.1 UDPによる通信の場合
3.3.2 TCPによる通信の場合
3.4 ソケットシステムコールの詳細
3.4.1 プロトコルの選択とアドレスの指定
3.4.2 コネクションレス
3.4.3 コネクション指向
3.4.4 ソケットオプション
3.4.5 DNS関連関数
3.4.6 ポート番号関連関数
3.4.7 IPアドレスを操作する関数
3.4.8 Rawソケット(Raw IP)
3.4.9 selectシステムコールによる多重処理
3.5 UDPによる通信
3.5.1 UDPサンプルプログラムの概要と使用方法
3.5.2 実行例
3.5.3 処理の流れ
3.5.4 UDPサーバプログラムリスト
3.5.5 UDPサーバプログラムリストの解説
3.5.6 UDPクライアントプログラムリス