【概要】

本書では最近話題のシステムプログラミング言語であるRustを用いて、TCP/IPのネットワーク処理に重きを置いた様々なアプリケーションの作成を行います。これらを通して、汎用的なネットワークプログラミングの手法や、Rustにおけるネットワークプログラミングの世界を体感します。



【構成】

第1章「ようこそソケット通信の世界へ」

Echoサーバを作成します。Rustのソケットライブラリ、ソケットの特性、TCPとUDPの特徴の違いについて学習します。



第2章「通信を監視する」

パケットキャプチャを作成します。データリンク層におけるフレームの扱いと、Rustでネットワークを扱う際によく使われるライブラリについて学習します。



第3章「手づくりパケットでポートスキャン」

ポートスキャンツールを作成します。4種類のスキャン手法(SYN, FIN, NULL, X-mas)を実装することでパケットの構築について学習します。



第4章「ノンブロッキングなWEBサーバ」

webサーバを作成します。Node.jsやNginxのようなイベントループ型のサーバを作成することで、ネットワークI/OやHTTPについて学習します。



第5章「RFCから作るDHCPサーバ」

DHCPサーバを作成します。RFCを読んで実装することで、仕様から最低限の動作をする実装への起こし方を学習します。最終的には自宅LANのPCやスマホなどにIPアドレスを割り当てる様子が確認できるところまで行うので、最も感動の大きな章です。



【対象読者】

• Rust の基本的な文法を知っている人

• TCP/IP の基本的な知識がある人

• Linux の基本的な知識がある人

• ネットワークプログラミングに興味のある人

• Rust で何か作りたい人、Rust でネットワークプログラミングに利用できるライブラリ等を知りたい人

• セキュリティに興味のある人