winpcap抓取的包是否会乱序呢?

jiakehuigui 2009-06-17 04:45:26
如题!
...全文
247 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
activeserver 2009-07-13
  • 打赏
  • 举报
回复
排序是ip层的事情
yekoufeng 2009-06-24
  • 打赏
  • 举报
回复
winpcap整过,有问题,可以单聊 357262356
proad 2009-06-22
  • 打赏
  • 举报
回复
是TCP包还是UDP?
如果是UDP,那是会有乱序的。
lovejingtao 2009-06-22
  • 打赏
  • 举报
回复
上面不是告诉你了吗:"自己做的话,根据SEQ和ACK来计算吧."
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wenxy1 的回复:]
P.S. 你可以参考大名顶顶的开源软件:wireshark
[/Quote]

确定是数据包乱序了,后继的重发并未得到相应的后继数据包。 目前正打算看看wireshark是如何处理的。处理的方法应该还是需要增加一个缓存来保存乱序包。
Wenxy1 2009-06-17
  • 打赏
  • 举报
回复
P.S. 你可以参考大名顶顶的开源软件:wireshark
Wenxy1 2009-06-17
  • 打赏
  • 举报
回复
如果我使用winpcap抓取数据包的话,那么我要如何处理乱序包比较合适呢
----------------
分析TCP数据包的目的IP、目的端口、序列号,这样可以去掉超时重传的包。
Wenxy1 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiakehuigui 的回复:]
引用 1 楼 wenxy1 的回复:
winpcap抓取包与网卡收到的包的顺序是一样的。



今天发现一个问题是这样的,假设winpcap抓取到tcp封包:会出现这样的情况1,2,3,7,8,9,4,5,6...,而且在随后接收的包中并未发现有789这样的封包。因此怀疑是否是winpcap抓取的数据包就是乱序的呢?
[/Quote]

你确定你的捕捉的TCP包1,2,3,7,8,9,4,5,6...的源IP和源port与目的IP和目的端口全部相同?
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
人呢?

顶,顶。

帖子给我浮起来!

寻求解决方案啦!或者给点建议啦!
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jiakehuigui 的回复:]
引用 4 楼 lovejingtao 的回复:
网络包是会存在重发包和乱序包的(以下均针对TCP协议,窗口滑动机制):
例如:A发送给B,中间经过了X个路由,假如3秒内B没反馈收到包,那么A会再发送一次,这就是重发包.结果在A再发送的时候,B收到了前面那个龟速包.这就叫做重发包.
另外,A可能同时发送了3个数据包,第三个是有可能比第一个先到达的.这个就叫做乱序包.
如果从网卡层抓包,你的自己处理这些.应用层的话不用考虑这些啦,WINDOWS的TCP协议栈…
[/Quote]

大侠我问一下,如果我使用winpcap抓取数据包的话,那么我要如何处理乱序包比较合适呢?能否说得详细些呢?
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lovejingtao 的回复:]
网络包是会存在重发包和乱序包的(以下均针对TCP协议,窗口滑动机制):
例如:A发送给B,中间经过了X个路由,假如3秒内B没反馈收到包,那么A会再发送一次,这就是重发包.结果在A再发送的时候,B收到了前面那个龟速包.这就叫做重发包.
另外,A可能同时发送了3个数据包,第三个是有可能比第一个先到达的.这个就叫做乱序包.
如果从网卡层抓包,你的自己处理这些.应用层的话不用考虑这些啦,WINDOWS的TCP协议栈本身就是干这个的.它会处理后再传…
[/Quote]

非常感谢
lovejingtao 2009-06-17
  • 打赏
  • 举报
回复
网络包是会存在重发包和乱序包的(以下均针对TCP协议,窗口滑动机制):
例如:A发送给B,中间经过了X个路由,假如3秒内B没反馈收到包,那么A会再发送一次,这就是重发包.结果在A再发送的时候,B收到了前面那个龟速包.这就叫做重发包.
另外,A可能同时发送了3个数据包,第三个是有可能比第一个先到达的.这个就叫做乱序包.
如果从网卡层抓包,你的自己处理这些.应用层的话不用考虑这些啦,WINDOWS的TCP协议栈本身就是干这个的.它会处理后再传递给应用程序.自己做的话,根据SEQ和ACK来计算吧.
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
斑竹,斑竹
jiakehuigui 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wenxy1 的回复:]
winpcap抓取包与网卡收到的包的顺序是一样的。

[/Quote]

今天发现一个问题是这样的,假设winpcap抓取到tcp封包:会出现这样的情况1,2,3,7,8,9,4,5,6...,而且在随后接收的包中并未发现有789这样的封包。因此怀疑是否是winpcap抓取的数据包就是乱序的呢?
Wenxy1 2009-06-17
  • 打赏
  • 举报
回复
winpcap抓取包与网卡收到的包的顺序是一样的。

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧