ソースコードで体感するネットワークの仕組み ~手を動かしながら基礎からTCP/IPの実装までがわかる
価格: ¥0
(概要)
普段あたりまえのようにネットワークを使っていますが,「IPアドレスを持っている」とはどういったことか,本当に理解できているでしょうか。
本書では,IPやUDP,TCPを自作し,ネットワークの仕組みを体験。pingのやりとりを行うプログラムを,DHCPクライアント機能の実装,TCPの送受信と切断を行うものへと拡張していくことで,RFCを眺めるだけでは見えにくいプロトコルの全体の流れをつかめます。ソケットライブラリに頼っていては得られない,問題の切り分けや問題発生の予防に役立つ力も身につきます。
(こんな方におすすめ)
・ネットワークエンジニアの方
(目次)
第1章 本書で扱うプロトコル
1-1 ネットワークプロトコルのおさらい
1-2 階層化されたネットワークプロトコルのイメージ
第2章 pingのやり取りが可能なホストプログラムを作ろう ~仮想IPホストプログラム:第一段階
2-1 仮想IPホストの第一目標
2-2 プログラムのメイン処理 ~main.c
2-3 パラメータを読み込んで格納する ~param.c,param.h
2-4 ネットワークユーティリティ関数を準備する ~sock.c,sock.h
2-5 イーサネットフレームの送受信を行う ~ether.c,ether.h
2-6 宛先MACアドレスを調べてARPテーブルにキャッシュする ~arp.c,arp.h
2-7 IPパケットの送受信処理を行う ~ip.c,ip.h
2-8 ICMPパケットの送受信を行う ~icmp.c,icmp.h
2-9 コマンドを解析して処理する ~cmd.c,cmd.h
2-10 仮想IPホストプログラムを実行する
2-11 まとめ
第3章 UDP通信に対応させ,DHCPクライアント機能を実装しよう ~仮想IPホストプログラム:第二段階
3-1 仮想IPホストの第二目標
3-2 メイン処理に,UDPに関する処理を追加する ~main.c
3-3 設定情報にDHCP関連の情報を追加する ~param.c,param.h
3-4 IPパケットの処理にUDPパケットの送受信を追加する ~ip.c,ip.h
3-5 ICMPパケットの処理にUDPで必要な処理を追加する ~icmp.c,icmp.h
3-6 UDPのコマンド処理を追加する ~cmd.c,cmd.h
3-7 UDPの処理を行う ~udp.h,udp.c
3-8 ネットワークアドレスを動的に割り当ててもらう ~dhcp.h,dhcp.c
3-9 仮想IPホストプログラムを実行する
3-10 まとめ
第4章 TCP機能の基本機能を追加しよう ~仮想IPホストプログラム:第三段階
4-1 仮想IPホストの第三目標
4-2 メイン処理に,TCPに関する処理を追加する ~main.c
4-3 設定情報にTCP関連の情報を追加する ~param.c,param.h
4-4 IPパケットの処理にTCPパケットの送受信を追加する ~ip.c,ip.h
4-5 TCPのコマンド処理を追加する ~cmd.c,cmd.h
4-6 TCPの処理を行う ~tcp.h,tcp.c
4-7 仮想IPホストプログラムを実行する
4-8 まとめ