完全に作業ログとなっていて日記じゃない気がするけどこういう開発過程を全部見せるのがMona流ということでひとつ。
Ethereal, serial.log, QEMU.logを比べてどこでパケットが落ちているか調べる
HTTP GETした際にアプリケーション側にパケットが全て届かない現象が起きているのでその調査。
調査材料としては
Ethereal・・・NICレベルでのパケット確認が可能(一番信用できるデータ)
QEMU.log・・・QEMUが仮想NICから受け取ったパケット
serial.log・・・Mona内のプロトコルスタックが受け取ったパケット
結果は↓。
Ethereal == QEMU.log > serial.log
ほぼMona側の問題であることが確定した。
MonaからのパケットのIPヘッダのFlagmentsは0で良いか?
shadowさんから問題ないと教えてもらった。
残課題
- MSSが1446になっているが、データサイズが安定していない
- 調べる
- MonaからのAckパケットに’GET / HTTP/1.0’というデータが存在する
- 調べる
- Mutexを利用してきちんと排他処理をする。