uIP でTCP/IP を試しているが、はまり気味なので整理してみよう


今日は日曜日。
Mona 上で uIP を動かす。
5555ポートで listen して受信したら内容を鸚鵡返しという作りにしてある。


外部から、Mona上の uIP に向けて送信しまくる。
↓な感じ。

require "socket"
print("start\n");
s = TCPSocket.open("localhost", 5555)

(1..10).each {|i|
  s.write("Hello I'm packet #{i}")
  print("sent packet #{i}")
  print(s.gets)
}
s.close

こんなのを動かすと、期待する動作が得られるし、パケットも確実にやりとりれている。
ただ、ひとつだけ問題があって i が大きくなるにつれて極端にパケットのやりとりが遅くなる。
10秒とか待たされたりする。


現在確実に分かっていること

  • Ethereal で見てみると Mona 側から送るべきパケットの送信が遅れている場合がほとんど
  • Monaのコンソールで観察していると、割り込みと割り込みの間隔が極端に長い場合がある


登場人物は

と多くデバッグに苦労してる。


どこで誰がパケットを遅延させているのかを調べたいのだけど
テストするたびにEthereal上で見える現象が違ったりと難しい。
という状況。