连接异常复位问题

czh604 2014-08-20 10:06:50
系统模式:
1、客户端使用TCP长连接,连接服务器;
2、连接成功之后,客户端马上发送登陆指令;
3、服务器会响应登陆结果给客户端。
4、客户端与服务器继续正常业务指令。

现在出现的问题:
1、部分客户端连接服务器正常,但是在发送第一个登陆指令之后马上就收到连接复位指令。
2、从服务器的抓包看到的信息是,服务器在收到客户端的登陆指令之后应答了客户端的登陆请求命令后就收到连接复位指令。

导致客户端怎么也没有办法进行正常的业务指令通信。

一般发生这种问题的客户端场景,概率最大的就是客户端跟服务器是不同运营商的网络。

比如有发现联通网络下的客户端 与 电信\联通双线服务器 出现该问题。还有客户端是铁通网络的也会有这种情况。
我们的服务器一般都是双线服务器。

请各路豪杰定力支持下,该问题困扰已久终无法找到解决办法。

...全文
457 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
czh604 2014-09-05
  • 打赏
  • 举报
回复
能否提供手段进行排查
Yofoo 2014-08-27
  • 打赏
  • 举报
回复
checksum均为0的报文, 这个可能是抓包软件的问题, checksum 可以在网卡计算 应该关注RST是谁发送的, 找到这个原因 TCP是面向连接的, 为了保证安全, 如果包内的连接信息不正确会导致RST, 如代理等可能 还有网络同路中如果其他恶意程序可以攻击该连接, 也可能导致RST
碼上道 2014-08-24
  • 打赏
  • 举报
回复
引用 13 楼 czh604 的回复:
不好意思,各位。 服务器下发的是三个指令有不同含义的,不是重复的指令。 这个我给搞错了。除了这个其他描述没有问题
你们用的什么TCP协议栈实现 ,自己实现的,还是系统自带的,什么系统? 我估计是因为服务端回的三个报文checksum不对,就是连续收到几个异常的本连接的报文,导致你这边回rst.这是你的协议栈实现 问题,你先看一下为会收到三个checksum均为0的报文。checksum错误,肯定报文有些问题了,对端实现的协议栈可能也有问题。
czh604 2014-08-22
  • 打赏
  • 举报
回复


再次从服务器端抓了一组异常的数据包。
其中第一个服务器返回包的错误提示:


上次提供的服务器抓包,里面的错误信息为:



我们的业务逻辑是,服务器只是返回一个数据包,这边怎么一下发送了三个包。而且时间间隔那么短,不像重发的包。
czh604 2014-08-22
  • 打赏
  • 举报
回复
不好意思,各位。 服务器下发的是三个指令有不同含义的,不是重复的指令。 这个我给搞错了。除了这个其他描述没有问题
碼上道 2014-08-21
  • 打赏
  • 举报
回复
引用 10 楼 czh604 的回复:
大家看下,这个是在服务器上面抓到的数据包。
只有一次的抓包吗,多抓几次,找出规律。 从现在的包来看,服务端发了三次数据过来了,但是client端没有回ack,直接就回了rst报文。 现在需要分析一下server端回来的三个报文,我这边没有报文,我无法分析,你看一下为啥显示红色的,是不是checksum或者其他的有错误。
czh604 2014-08-21
  • 打赏
  • 举报
回复
大家看下,这个是在服务器上面抓到的数据包。
czh604 2014-08-21
  • 打赏
  • 举报
回复
快乐鹦鹉 2014-08-20
  • 打赏
  • 举报
回复
跨不同服务商的问题我们也遇到过,特别是访问国外提供的网络数据服务时,常有问题,不定什么时候哪个好使,一直也没法解决。所以关注啊
czh604 2014-08-20
  • 打赏
  • 举报
回复
版主大大不要只是关注啊,赶紧召集一些大神过来议议这个问题。 我有在其他论坛版块看到过相类似的问题,也是没有人答复。 我觉得这个问题应该是很有技术含量,要是能解决的话,对于做网络应用程序的人是有非常大的帮助。
快乐鹦鹉 2014-08-20
  • 打赏
  • 举报
回复
强烈关注!。。。。。。。。。。。
碼上道 2014-08-20
  • 打赏
  • 举报
回复
能把抓包发给我看一下吗,我看一下报文可以分析一下。有没有代理的情况?
rangzidanfeiba 2014-08-20
  • 打赏
  • 举报
回复
我前段时间也碰到这个问题。 帖子是 http://bbs.csdn.net/topics/390851684?page=1 欢迎大家一起讨论下。
czh604 2014-08-20
  • 打赏
  • 举报
回复
为什么会复位指令,这个就是要问的问题啊。 现象看是复位指令导致了我们的系统异常,但是追究根源为什么客户端跟服务器都收到对方的复位指令,就没有搞明白。 注意:是双方都收到复位指令。
Eleven 2014-08-20
  • 打赏
  • 举报
回复
1、部分客户端连接服务器正常,但是在发送第一个登陆指令之后马上就收到连接复位指令。 2、从服务器的抓包看到的信息是,服务器在收到客户端的登陆指令之后应答了客户端的登陆请求命令后就收到连接复位指令。 ------------------ 为啥会有RESET指令?
赵4老师 2014-08-20
  • 打赏
  • 举报
回复
可能有服务商待解聘工作人员用斧子砍光缆!

18,356

社区成员

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

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