TCP実装
TCPスタックをイチから実装する試みをしている。
参考書籍はこちら
Githubはこちらのよう
これをベース?にkoba789さんが24時間で実装しており影響を受けて自分も取り組んでいる。
進め方
参照書籍はC言語で書かれているためRustで実装するに当たっていくつか翻訳をする必要がある。が、さすがRust言語機能が豊富なのでC言語では頑張って関数ポインタなどでインターフェース定義するところをナイーブにtraitで実装出来て便利。
元々自分はC/C++をやっていたのでこのような点に少し感動した。Rustやってよかったなぁと感じられる瞬間であった。
それはともかくこの実装の進め方だが、Koba789は24時間縛りでザーッと実装しており最終的にはHTTPサーバーまでやりきった。 全く同じにすると面白く無いので少し趣向の異なる実装をしてみようと思う。
- 実装時間の計測
- 各ステップ毎の参照実装を残す
- この過程を記事に残す
- TCPをベースにFTPを実装して通信して遊ぶ
という感じだ(本当に少しだな)。
TCPの勉強とFTPも実装出来てこういう低レイヤ実装は良いことづくしでとても良い。ついでにネットワークツールでも開発してみようか。
ただ家族サービスの時間を縫って行なうので少し時間が掛かるかもしれない。やれても1日2時間とかだし。
1月中には終えられるようにしたいところ。
実装のレポジトリはこちらに残しているので興味のある人は覗いてみてください。