关于TCP时延问题

河边放牛娃 2015-03-26 09:06:43
大家好!我在利用C#做TCP网络编程时遇到一个问题:我做了一个TCP服务端,然后利用客户端发包来测试服务器的响应速度。
当我隔一段时间发一次时,在客户端网口抓到的包是这样的:
发包时刻:Arrival Time: Mar 25, 2015 14:27:47.522490000 中国标准时间
回包时刻:Arrival Time: Mar 25, 2015 14:27:47.777323000 中国标准时间
时差:∆=254.833ms
当我连续发包时,在网口抓到的包是这样的:
发包时刻:Arrival Time: Mar 25, 2015 14:30:05.177101000 中国标准时间
回包时刻:Arrival Time: Mar 25, 2015 14:30:05.187818000 中国标准时间
时差:∆=10.717ms
可以明显看出在连续发包时,回包响应速度快很多。造成这种想象是由于TCP的延时确认机制ACK回包造成的,可以看到第二幅图是两个PUSH发送包在一起的,而第一幅图中两个PUSH发送宝之间有一个ACK确认包。
我想请问一下大家,在C#中怎么解决这个ACK确认问题,有办法直接禁用掉吗?
谢谢大家了!
...全文
501 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinmartin 2015-03-26
  • 打赏
  • 举报
回复
多做几次测试,看看是否每次都这样。 另外,确保单次和多次的都是握手成功以后的,说不定你的单次是包含握手时间呢
河边放牛娃 2015-03-26
  • 打赏
  • 举报
回复
额,禁用了,还是没效果
河边放牛娃 2015-03-26
  • 打赏
  • 举报
回复
引用 2 楼 wyd1520 的回复:
NO没的禁。TCP是三次握手。你要速度那你要先解决代宽问题 还有硬件问题 ,这与TCP无关的。
我二了,GUID~~找到了,可以禁用的
河边放牛娃 2015-03-26
  • 打赏
  • 举报
回复
引用 2 楼 wyd1520 的回复:
NO没的禁。TCP是三次握手。你要速度那你要先解决代宽问题 还有硬件问题 ,这与TCP无关的。
额,好像是可以禁的吧,首先我上面抓得包是已经握手过了的了,这是我目前看到通过修改注册表禁用TCP延迟确认机制的,你看看 http://www.xuebuyuan.com/1163785.html 我没找到后面那一个注册表地址~~
本拉灯 2015-03-26
  • 打赏
  • 举报
回复
NO没的禁。TCP是三次握手。你要速度那你要先解决代宽问题 还有硬件问题 ,这与TCP无关的。
河边放牛娃 2015-03-26
  • 打赏
  • 举报
回复
只能人工置顶了

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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