fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:3309回复:5

NDIS层中抓住的TCP数据包如何识别是重发包?

楼主#
更多 发布于:2010-05-19 09:48
我发现用NDIS层抓住的数据包中,有好多数据包都是因为底层的TCP协议重发的数据包。但是我又不知道如何识别这些数据包,请问是否有方法可以很简单的就能识别出哪些数据包是正常发送的?哪些数据包是重发的? 谢谢
racle
驱动牛犊
驱动牛犊
  • 注册日期2009-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望251点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-05-20 05:45
为什么会有重发包,是你抛弃了别人的连接,TCP过几秒的不断尝试?

如果上那样,那你要和对方4次握手结束或者发重置包即OK断掉.
fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-05-22 22:03
TCP传输中一般都会有重发包的,如果发送出去的TCP包超时了,就会自动重新发送了。除非网路状况相当好,也会有,只是发生的频率高低而已。
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地板#
发布于:2010-05-23 12:24
温习tcp的重发机制就可以知道如何识别,重点是id
走走看看开源好 Solaris vs Linux
fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-05-25 09:59
谢谢楼主, 我看过那个 TCP 协议的 RFC793中文翻译文档,但是没有找到哪一段是描述的。
根据我一开始做的是根据 Sequence number 和 Next expected Seq number 来识别的。即把前面一个数据包的 Next expected Seq number  号码记录下来。然后在把 后一个数据包的 Sequence number  和前面那个记录下来的进行对比。如果一样则证明是正确的包,否则就当重发包。但是这样的判断机制好像有问题。大部分情况下是对的,但是有不对的时候。所以我搞不太清楚了。

能说一下,我这个还欠缺了什么判断机制吗,谢谢!
fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-06-04 17:57
鼎一下
游客

返回顶部