uIP

uIP is an implementation of the TCP/IP protocol stack intended for small 8-bit and 16-bit microcontrollers. It provides the necessary protocols for Internet communication, with a very small code footprint and RAM requirements - the uIP code size is on the order of a few kilobytes and RAM usage is on the order of a few hundred bytes.

http://www.sics.se/~adam/uip/の実装の小ささに驚愕した。
自分の想像していた規模の10%位の規模でかなりのことが実現できるという実例だ。


もちろん自分の知識が貧弱なため規模感に誤りがあったのだろうがそれにしても小さい。
以下2つのことが頭に浮かんだ

  • このサイズとドライバインターフェースなら少しがんばれば移植できるのではなかろうか? unix/tapdev.h
  • このサイズでの実装例があるのだから、自分が想像しているよりも道は遠くない、今のままがんばって進もう。


短期的には、前者はかなりありだと思うのだが、このあたりの実装をブラックボックス化してしまうと、その上のレイヤーのインターフェースを決めるときに困ったりするだろう。


後者は時間はかかるだろうが、続けることさえできれば勉強になるし自分にとってもMonaにとってもプラスになると思う。


というわけで後者の方向性で。


さらに今日は某IRCチャンネルで、ARPの実装についてぼやいてみたらid:mjt氏が相手をしてくれて少し前に進んだ気がする。
やっぱり実装に迷ったら、言葉にして人に説明してみるのが効果的だなぁ。