为什么抓包时发现时两个发送包一个应答包? 本帖最后由 VisualEleven 于 2010-12-13 11:20:53 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该好好看下TCP IP协议。TCP分段不晓得神马意思,你带开一个网址,他首先会DNS解析 得到IP,再是那次握手,成功后发送get 请求,服务器返回http头,里面包含接下来数据的长度。浏览器再次按http响应头里面说明的长度接受接下来的数据。包如果大于MTU,则会进行IP分片、还有可以用EtherPeek 抓包。 Ethernet Header Destination: 00:E0:4C:39:B4:84 Realtek Semi:39:B4:84 Source: 00:A1:B0:20:02:78 Protocol Type: 0x0800 IPIP Header - Internet Protocol Datagram Version: 4 Header Length: 5 (20 bytes) Differentiated Services:%00000000 0000 00.. Default .... ..x. Reserved .... ...x Reserved Total Length: 1480 Identifier: 30976 Fragmentation Flags: %010 0.. Reserved .1. Do Not Fragment ..0 Last Fragment Fragment Offset: 0 (0 bytes) Time To Live: 53 Protocol: 6 TCP - Transmission Control Protocol Header Checksum: 0x546F Source IP Address: 220.181.111.15 hi.baidu.com Dest. IP Address: 192.168.102.83TCP - Transport Control Protocol Source Port: 80 http Destination Port: 1352 lotusnote Sequence Number: 2996481576 Ack Number: 2305855832 TCP Offset: 5 (20 bytes) Reserved: %000000 TCP Flags: %010000 .A.... 0. .... (No Urgent pointer) .1 .... Ack .. 0... (No Push) .. .0.. (No Reset) .. ..0. (No SYN) .. ...0 (No FIN) Window: 2630 TCP Checksum: 0xECEF Urgent Pointer: 0 No TCP OptionsHTTP - Hyper Text Transfer Protocol Continuation of existing HTTP stream Binary Data: b....l..p.>A.... 62 A9 A8 AE CA 6C 0E A4 70 13 3E 41 DC E3 06 BD ...,/..Fl.N... D9 B6 81 2C 2F 1B 0C 46 6C 0D 4E 89 BE EE 5C 45 YI......`....p.9 59 49 0B 90 B2 1C 1C AE 60 A0 1B 92 CB 70 12 39 .:....#.'.B.F.,. 96 3A BB B2 B7 FE 23 14 27 95 42 A1 46 0B 2C 04 .J)...Z...-..P.. A1 4A 29 98 A4 18 5A 80 CA 85 2D 89 0F 50 DE 95 WK..J.y.. ....z. 57 4B B8 B5 4A E1 79 E8 93 20 93 85 8B 07 7A E8 .!...d.RnX.V.._. C1 21 DB B4 07 64 85 52 6E 58 BD 56 05 03 5F B2 ].P. ..=.o_Nm..Q 5D 9A 50 D8 20 E0 11 3D D9 6F 5F 4E 6D E5 87 51 ...kA...|..... Y 08 A1 0A 6B 41 05 98 C6 7C F9 84 E6 9A A8 20 59 ....Y..t0...]..= 94 85 1E ED 59 92 CB 74 30 E9 03 F8 5D 1F D9 3D .........,L..&n. 81 92 F5 A8 E1 B6 A0 91 82 2C 4C 1D CB 26 6E F4 楼上的兄弟我讨论的是tcp包长度大于mss的情况。没说ip层的问题,更没说ip分片。目前测试为止,发现ethereal检查到一个有数据的ack包的标志位没有置psh标志时确认为 a reassembled pdu。ps:是有数据的ack包。纯ack回应len=0的数据包不会认为是a reassembled pdu。另外如果有类似syn,fin的标志也不会认为是a reassembled pdu。 另外,就是tcp/ip三本书翻烂了都找不到才来这请求牛人帮助的。 楼主,问题2 找到一个解释收到一个报文后如何确定它是一个"TCP segment"?如果有几个报文的ACK序号都一样,并且这些报文的Sequence Number都不一样,并且后一个Sequence Number为前一个Sequence Number加上前一个报文大小再加上1的话,肯定是TCP segment了,对于没有ACK标志时,则无法判断 对的哈,ack必须一样这个是个大前提。我倒是忘记说了。 但是ethereal不是根据这个来判断的,我后来做实验发现,我只发一个包,不带psh标志,就会认为是tcp segment of a reassembled pdu。 这是SOCKET的一个机制哈! TcpAckFrequency默认为2 我想找份不要经常加班的工作…… 请问如何在CListBox中得到列表筐中指定行的字符串呢? 如何让radiobutton处于选中状态 一道应聘题,求救! VC中怎样产生一个正态分布的随机数? 如何只显示对话框? 怎么捕获WM_MENURBUTTONUP消息? 有谁用过 DrawState() 这个API函数?? 请有空的大侠们留一下邮箱,帮忙看一下小工程 如何实现aspack功能 c++读位图至内存缓冲区 C++学习方法之二——如果看了一你还觉得难的话
Destination: 00:E0:4C:39:B4:84 Realtek Semi:39:B4:84
Source: 00:A1:B0:20:02:78
Protocol Type: 0x0800 IP
IP Header - Internet Protocol Datagram
Version: 4
Header Length: 5 (20 bytes)
Differentiated Services:%00000000
0000 00.. Default
.... ..x. Reserved
.... ...x Reserved Total Length: 1480
Identifier: 30976
Fragmentation Flags: %010
0.. Reserved
.1. Do Not Fragment
..0 Last Fragment Fragment Offset: 0 (0 bytes)
Time To Live: 53
Protocol: 6 TCP - Transmission Control Protocol
Header Checksum: 0x546F
Source IP Address: 220.181.111.15 hi.baidu.com
Dest. IP Address: 192.168.102.83
TCP - Transport Control Protocol
Source Port: 80 http
Destination Port: 1352 lotusnote
Sequence Number: 2996481576
Ack Number: 2305855832
TCP Offset: 5 (20 bytes)
Reserved: %000000 TCP Flags: %010000 .A....
0. .... (No Urgent pointer)
.1 .... Ack
.. 0... (No Push)
.. .0.. (No Reset)
.. ..0. (No SYN)
.. ...0 (No FIN) Window: 2630
TCP Checksum: 0xECEF
Urgent Pointer: 0
No TCP Options
HTTP - Hyper Text Transfer Protocol
Continuation of existing HTTP stream
Binary Data:
b....l..p.>A.... 62 A9 A8 AE CA 6C 0E A4 70 13 3E 41 DC E3 06 BD
...,/..Fl.N... D9 B6 81 2C 2F 1B 0C 46 6C 0D 4E 89 BE EE 5C 45
YI......`....p.9 59 49 0B 90 B2 1C 1C AE 60 A0 1B 92 CB 70 12 39
.:....#.'.B.F.,. 96 3A BB B2 B7 FE 23 14 27 95 42 A1 46 0B 2C 04
.J)...Z...-..P.. A1 4A 29 98 A4 18 5A 80 CA 85 2D 89 0F 50 DE 95
WK..J.y.. ....z. 57 4B B8 B5 4A E1 79 E8 93 20 93 85 8B 07 7A E8
.!...d.RnX.V.._. C1 21 DB B4 07 64 85 52 6E 58 BD 56 05 03 5F B2
].P. ..=.o_Nm..Q 5D 9A 50 D8 20 E0 11 3D D9 6F 5F 4E 6D E5 87 51
...kA...|..... Y 08 A1 0A 6B 41 05 98 C6 7C F9 84 E6 9A A8 20 59
....Y..t0...]..= 94 85 1E ED 59 92 CB 74 30 E9 03 F8 5D 1F D9 3D
.........,L..&n. 81 92 F5 A8 E1 B6 A0 91 82 2C 4C 1D CB 26 6E F4
收到一个报文后如何确定它是一个"TCP segment"?如果有几个报文的ACK序号都一样,并且这些报文的Sequence Number都不一样,并且后一个Sequence Number为前一个Sequence Number加上前一个报文大小再加上1的话,肯定是TCP segment了,对于没有ACK标志时,则无法判断
对的哈,ack必须一样这个是个大前提。我倒是忘记说了。
我后来做实验发现,我只发一个包,不带psh标志,就会认为是tcp segment of a reassembled pdu。