TCP流中的数据包大小
我的网络流量很大,希望将每个TCP会话划分为一系列请求和响应(我正在使用的协议都以这种方式工作,例如HTTP或SSL)。 我有一个简单的假设(忽略乱序和重发的数据包)-给定需要发送的数据块,它将使用最大可能的数据包发送,最后一个数据包小于最大大小或遵循来自另一侧的数据包(忽略ACK空数据包)。因此,在HTTP会话中,我希望看到类似的内容(再次,不考虑Ack)- 数据包1-请求“获取...” 封包2-回应,大小1434 数据包3-响应,大小为1434 数据包4-响应,大小为1434 数据包5-响应,大小为500 这是我在大多数会议中得到的,但是至少有一次我看到 数据包1-请求“获取...” 封包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 1 66 192.168.1.103 …