免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2034 | 回复: 9
打印 上一主题 下一主题

[网络管理] NAT设备会主动发RST包? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-12 14:50 |只看该作者 |倒序浏览
    请教大家一个问题, 最近发现,设备A与设备C连通,  设备B挂在A后面, 通过A帮B做NAT后,B可以与C通信。 B与C建立正常的TCP连接后可以通信一段时间, 随后发现设备A主动发出RST包给设备C, 该RST包 win=0,len =0.  请教下大家会有什么场景会出现这种情况。

    个人感觉win=0不是原因。 因为NAT设备自身应该没有必要接受TCP数据,因此在NAT设备而言,应该不会存在BUFFER不够导致Win为0的问题; 最多也就是设备B 的win为0,发出RST,由A 转发给C, 但是现实却不是如此。。。。
    另一个理由是,从RST包算起,A发出给C的最后一个报文中,win = 65536, 随后接收到得C的报文,加起来总长度还不够1000字节,不会使window变空的。  求大神解答,在线等哈。。。。

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-09-12 15:28 |只看该作者
NAT设备必须会有RST包.
要不然, NAT表会越来越大, 最终设备自己就 OOM 了.

产生 RST 的原因是超时.
也就是说, NAT 设备认为这条连接中超过一定的时间没有数据传输,
可能是两端中的一端出现了问题, 所以, 会向两端发送RST,
然后, 直接关闭这个连接.

论坛徽章:
0
3 [报告]
发表于 2014-09-12 15:54 |只看该作者
TO 2楼, thanks for your  answer。 从抓包来看从“上一次A发给C”到“A发RST”只有20ms不到的时间,而且中间还有C发给A的包,A发RST距离上一次C发给A的报文,只有500us, 这样应该不会使超时引起的吧, 也就是说A发出RST包之前, 一直有数据通信的。回复 2# q1208c


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2014-09-12 16:05 |只看该作者
回复 3# zouyp1989

那要考虑是否有错包的现象.

NAT设备如果收到不该收到的包, 比如在连接之后, 重新收了 syn的包, 也可能会 RST 断开连接的.
   

论坛徽章:
0
5 [报告]
发表于 2014-09-12 17:44 |只看该作者
要看C返回的报文情况,有条件的话在B、C两端同时抓包

论坛徽章:
0
6 [报告]
发表于 2014-09-12 18:04 |只看该作者
基本上在发出RST之前都收到c过来的dup ack,但不一定是发出前最后一个收到的包。回复 4# q1208c


   

论坛徽章:
0
7 [报告]
发表于 2014-09-12 18:06 |只看该作者
基本上在发出RST之前都收到c过来的dup ack,但不一定是发出前最后一个收到的包。回复 5# deeperpurple


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
8 [报告]
发表于 2014-09-15 07:01 |只看该作者
回复 6# zouyp1989

dup ack ? 怎么会有这样的情况?

那果断被 RST 了呀.
   

论坛徽章:
0
9 [报告]
发表于 2014-09-15 09:43 |只看该作者
dup ack 不一定会被RST的吧。  网上的资料说dup  ack 是因为接收方收到乱序的包,需要通知对方。 而且我抓包也发现有时候出现DUP ack , 链路一直能正常通信 回复 8# q1208c


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
10 [报告]
发表于 2014-09-15 10:19 |只看该作者
回复 9# zouyp1989

这个我不能确定.
但NAT设备没有能力处理这个问题的时候, 最简单的办法就是 RST, 等待双方重新建立连接.
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP