パケットの流れを追う
previously on Mona OS
最近Season4見ているもので・・・(調子に乗りました)
前回の調査で Monaの内部でパケットが消失していることが確定した。
そこで今回はMonaのデバイスドライバがreadしたパケットと、uIP(プロトコルスタック)が受け取ったパケットを比べる。
比較
NICSERVERがデバイスドライバ、UIPがプロトコルスタックです。
パケットの順序はMona内の時系列順です。
** OK NICSERVER:80 to 1025 ACK SYN seqno=90fc24fe ackno=0000019b UIP :80 to 1025 ACK SYN seqno=90fc24fe ackno=0000019b NICSERVER:80 to 1025 ACK seqno=90fc24ff ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc24ff ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc24ff ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc24ff ackno=000001c5 ** NG NICSERVER:80 to 1025 ACK seqno=90fc2a85 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc24ff ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc24ff ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc2a85 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc2a85 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc2aa5 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc2aa5 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc302b ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc304b ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc302b ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc2aa5 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc304b ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc302b ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc2aa5 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc302b ackno=000001c5 * OK NICSERVER:80 to 1025 ACK seqno=90fc304b ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc304b ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc35d1 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc35d1 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc35f1 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc35f1 ackno=000001c5 * NG NICSERVER:80 to 1025 ACK seqno=90fc3b77 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc35d1 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc35d1 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc35f1 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc35f1 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc3b77 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc3b77 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc3b97 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc3b97 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc411d ackno=000001c5 * OK NICSERVER:80 to 1025 ACK seqno=90fc3b77 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc3b77 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc3b97 ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc3b97 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc411d ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc411d ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc413d ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc413d ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc46c3 ackno=000001c5 NICSERVER:80 to 1025 ACK seqno=90fc411d ackno=000001c5 UIP :80 to 1025 ACK seqno=90fc411d ackno=000001c5
問題
OKと書いているところはパケットのフローが正常だと思われるところです。
逆にNGと書いている部分は、seqnoを手がかりに追ってみていくとかなり怪しいです。
例えば1番目のNGの部分でseqnoが90fc2a85, 90fc24ffのものがありますが、NICSERVERとUIPでパケットをうけとっている順番が逆です。