TCPストリームのパケットサイズ
私はネットワークトラフィックであり、各TCPセッションを一連の要求と応答(HTTPやSSLなどのすべての方法で機能しているプロトコル)に分割したいと考えています。 私は単純な仮定をしました(順不同でパケットを再送信することは無視します)-送信する必要があるデータのチャンクが与えられると、それは可能な最大のパケットを使用して送信され、最後のパケットは最大サイズよりも小さいか、または従います反対側からのパケット(ACK空パケットを無視)。したがって、HTTPセッションでは、(再び、ackを無視して)のようなものが表示されることを期待しています- パケット1-「Get ...」の要求 パケット2-応答、サイズ1434 パケット3-応答、サイズ1434 パケット4-応答、サイズ1434 パケット5-応答、サイズ500 ほとんどのセッションでこれが行われますが、少なくとも1回は次のようなことがありました。 パケット1-「Get ...」の要求 パケット2-応答、サイズ1434 パケット3-応答、サイズ1080 パケット4-応答、サイズ1434 パケット5-応答、サイズ500 ここでは再送信、順序正しくないパケット、サーバーでの例外的な遅延はありません。 知りたい-何が原因で、いつ発生するのか?私の仮定はどのように間違っていますか? 更新 ここに pcapファイルの例を入れます アップデート2 tshark関連フィールドのあるダンプを含める... $ tshark -r http_1082.pcap -T fields -e frame.number -e frame.len \ -e ip.src -e ip.dst -e tcp.flags.push -e http.request.method \ -e http.request.uri -e http.response.code | head -n 47 …