Tôi là lưu lượng truy cập mạng và muốn chia mỗi phiên TCP thành một loạt các yêu cầu và phản hồi (các giao thức tôi đang làm việc với tất cả các công việc theo cách đó, như HTTP hoặc SSL).
Tôi đã có một giả định đơn giản (bỏ qua các gói không theo thứ tự và bực bội) - được cung cấp một khối dữ liệu cần gửi, nó sẽ được gửi bằng các gói lớn nhất có thể và gói cuối cùng sẽ nhỏ hơn kích thước tối đa hoặc được theo dõi bởi một gói từ phía bên kia (bỏ qua các gói trống ACK). Vì vậy, trong một phiên HTTP, tôi hy vọng sẽ thấy một cái gì đó như (một lần nữa, không quan tâm đến acks) -
Gói 1 - Yêu cầu "Nhận ..."
Gói 2 - Phản hồi, kích thước 1434
Gói 3 - Phản hồi, kích thước 1434
Gói 4 - Phản hồi, kích thước 1434
Gói 5 - Phản hồi, kích thước 500
Đó là những gì tôi nhận được trong hầu hết các phiên, tuy nhiên có ít nhất một lần tôi thấy nó trông giống như
Gói 1 - Yêu cầu "Nhận ..."
Gói 2 - Phản hồi, kích thước 1434
Gói 3 - Phản hồi, kích thước 1080
Gói 4 - Phản hồi, kích thước 1434
Gói 5 - Phản hồi, kích thước 500
Không truyền lại, các gói ngoài đơn đặt hàng ở đây hoặc không có sự chậm trễ đặc biệt nào trên máy chủ.
Tôi muốn biết - điều gì có thể gây ra điều này và khi nào nó sẽ xảy ra? Làm thế nào sai là giả định của tôi?
CẬP NHẬT
Tôi đặt một tập tin pcap ví dụ ở đây
CẬP NHẬT 2
Bao gồm một tshark
bãi chứa với các lĩnh vực liên quan ...
$ 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 206.33.49.126 0
2 62 206.33.49.126 192.168.1.103 0
3 64 192.168.1.103 206.33.49.126 0
4 411 192.168.1.103 206.33.49.126 1 GET /money/.element/script/3.0/video/xmp/xmp_playlistapi.js
5 54 206.33.49.126 192.168.1.103 0
6 1434 206.33.49.126 192.168.1.103 0
7 1434 206.33.49.126 192.168.1.103 0
8 64 192.168.1.103 206.33.49.126 0
9 1434 206.33.49.126 192.168.1.103 0
10 1434 206.33.49.126 192.168.1.103 0
11 1434 206.33.49.126 192.168.1.103 0
12 64 192.168.1.103 206.33.49.126 0
13 1434 206.33.49.126 192.168.1.103 0
14 1434 206.33.49.126 192.168.1.103 0
15 1434 206.33.49.126 192.168.1.103 0
16 1434 206.33.49.126 192.168.1.103 0
17 64 192.168.1.103 206.33.49.126 0
18 1434 206.33.49.126 192.168.1.103 0
19 1434 206.33.49.126 192.168.1.103 0
20 1434 206.33.49.126 192.168.1.103 0
21 1434 206.33.49.126 192.168.1.103 0
22 1434 206.33.49.126 192.168.1.103 0
23 64 192.168.1.103 206.33.49.126 0
24 1434 206.33.49.126 192.168.1.103 0
25 1434 206.33.49.126 192.168.1.103 0
26 1434 206.33.49.126 192.168.1.103 0
27 1434 206.33.49.126 192.168.1.103 0
28 1434 206.33.49.126 192.168.1.103 0
29 1434 206.33.49.126 192.168.1.103 0
30 64 192.168.1.103 206.33.49.126 0
31 1434 206.33.49.126 192.168.1.103 0
32 1434 206.33.49.126 192.168.1.103 0
33 1434 206.33.49.126 192.168.1.103 0
34 1082 206.33.49.126 192.168.1.103 1 <------ Packet in question
35 1434 206.33.49.126 192.168.1.103 0
36 1434 206.33.49.126 192.168.1.103 0
37 1434 206.33.49.126 192.168.1.103 0
38 64 192.168.1.103 206.33.49.126 0
39 1434 206.33.49.126 192.168.1.103 0
40 1434 206.33.49.126 192.168.1.103 0
41 1434 206.33.49.126 192.168.1.103 0
42 1434 206.33.49.126 192.168.1.103 0
43 1434 206.33.49.126 192.168.1.103 0
44 1434 206.33.49.126 192.168.1.103 0
45 1434 206.33.49.126 192.168.1.103 0
46 626 206.33.49.126 192.168.1.103 1 200
47 64 192.168.1.103 206.33.49.126 0