YAHYAHYAH
驱动牛犊
驱动牛犊
  • 注册日期2003-07-31
  • 最后登录2004-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1325回复:2

请问如何取得TCP出错重发的数据包的数目?

楼主#
更多 发布于:2003-08-02 02:21
请问如何编程取得: 1. 数据在传输过程中, 由于网线受干扰等原因, 出现错误, 由TCP协议底层要求重发的数据包数目; 2 TCP发出的数据包的总数目; 3 TCP接收到的数据包的总数目? 只要指导一下研究方向就好, 我现在不知道从哪里下手, 多谢诸位大虾.

在命令行下执行的\"netstat -s\"可以查看到:
TCP Statistics for IPv4

Active Opens = 9640
Passive Opens = 1323
Failed Connection Attempts = 391
Reset Connections = 1047
Current Connections = 5
Segments Received = 421709
Segments Sent = 310227
Segments Retransmitted = 2507

这样的数据, 其中的Segments Retransmitted是否就是出错重传的数据包数目? 如果是, 这些出错重传的包是属于发送(Segments Sent)的,还是属于接收(Segments Received)的部分? 如何编程自己取得这些数据?

sword3i
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2013-01-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望112点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-02 10:38
  TCP协议是提供一种面向连接的可靠的字节流服务。所以利用TCP的双方主机要先建立一个端对端的连接,关于TCP协议在《tcp/ip详解》里有非常详细的说明,你可以取看一下。
  如果想截获TCP包有很多中方法,比如用原始SOCKET,winpcap,ndis等都可以,就看你具体情况定了。
随风奔跑自由是方向 追逐雷和闪电的力量 把浩瀚的海洋装进我胸膛 即使再小的帆也能远航 随风飞翔有梦作翅膀 敢爱敢做勇敢闯一闯 哪怕遇见再大的风险再大的浪 也会有默契的目光 努力蹭分! ..................
YAHYAHYAH
驱动牛犊
驱动牛犊
  • 注册日期2003-07-31
  • 最后登录2004-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-02 11:51
我不是想截获TCP包,只是想获取一些统计数据 我在帖子:
http://www.driverdevelop.com/forum/viewthread.php?tid=41921
中看到可以用\"发DeviceIOControl()下IOCTL_NDIS_QUERY_GLOBAL_STATS的IRP去查。\", 对不对?
游客

返回顶部