捕获长度比较小的数据包时没事,如js,gif,css等。数据包大小和Http响应头的content-length标示的一致, 
pcap_pkthdr结构的caplen(实际捕获的包长度)和len(数据包长度)也一样。但当捕获如content-length:27003 等长度比较大,需要分片传输的Http数据报时
pcap_pkthdr结构的caplen和len有时会不一直,比如caplen = 1500,表示实际捕获了的分片数据包长度是1500,而len=1506,表示该包长度应该为1506,这就是说有6个字节丢失了??,我在本机做的测试,网卡缓存设置成16MB,只浏览一个纯文本的网页,应该也不会丢呀。我最终的目的是重组Http数据包进行分析,将TCP/IP协议中IP地址,端口,确认号一至的数据包放入一个链表, 累计各个包的caplen 去掉以太网头、IP头、TCP头、Http头部数据后的长度, 最终长度会小于content-length所标识的长度,这样我捕获的长度就和Http响应头的长度对不上了,缺少的长的正是len减去caplen的部分。我又不能按照len的长度来累计数据包,毕竟实际捕获的就是1500怎么多,采用len重组的数据包肯定是错误的,当然用caplen长度重组的也不对,少了很多字节。 在这里我还有疑问:[color=#FF0000]TCP包最大分片长度不就是1500吗?多出的那6个字节的东西是那的? 怎么能得到那6个字节的数据?[/color]这样就造成了我没办法判断Http是不是重组完成了。请求Http协议高人,WINPCAP才子们指点。