Chinaunix

标题: 怎么确定重复的tcp包? [打印本页]

作者: shue    时间: 2007-10-31 17:05
标题: 怎么确定重复的tcp包?
用winpcap截获了一个完整的tcp连接,需要过滤所有重复的包,由于可能存在的网络原因导致tcp包重复发送,本来过滤吊重复包的任务是由tcp栈完成的,但是winpcap截获的是原始包,怎么来判断某个重复的tcp包呢?   我们项目的设计文档中写的是只要source   ip   address,   source   port   和   sequence   number   相同就可以了,但是很显然这个是错的.
作者: ssffzz1    时间: 2007-10-31 18:15
源IP,源端口,IPID,目的IP,目的端口
TCP序列号。
作者: shue    时间: 2007-10-31 18:55
to ssffzz1, 多谢
ipid字段能解决tcp segment没收到ack,超时重发,产生的重复包吗?
作者: ssffzz1    时间: 2007-11-01 09:25
这2个包的头部应该是一样的。
作者: shue    时间: 2007-11-01 10:42
多谢ssffzz1,
1.我认为你说的增加一个比较ipid,这个能解决由于ip层产生的重发问题
2.你说的"这2个包的头部应该是一样的",我认为不能解决过滤tcp超时重发的包,tcp超时重发的包,sn应该是相同的,但是它是重新发送的一个包,ipid应该不同,而且重发的windowsize也可能不同,想判断这两个包头一样,应该不会成功. 这是我的一些理解,希望能得到你的指导.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2