查看: 7945|回复: 27

TCP意外中断

[复制链接]
发表于 2008-8-21 20:59:59 | 显示全部楼层 |阅读模式
请问各位高手:
小弟现在遇到很麻烦的事,就是工作站与服务器交换TCP数据时,经常无故TCP意外中断(两数据相差1分钟,中间无任何其它数据),PING不掉包,而且对拷数据相当快,但工作与服务器交换数据时原来只需几秒,现在需要几分.请大家多多指教哟!
回复

使用道具 举报

发表于 2008-8-22 11:32:24 | 显示全部楼层
你可以在传输数据时用科来抓包,设置过滤器,地址一为工作站,地址二为服务器。
回复

使用道具 举报

发表于 2008-8-22 19:49:22 | 显示全部楼层
原帖由 lushengjun 于 2008-8-21 20:59 发表
请问各位高手:
小弟现在遇到很麻烦的事,就是工作站与服务器交换TCP数据时,经常无故TCP意外中断(两数据相差1分钟,中间无任何其它数据),PING不掉包,而且对拷数据相当快,但工作与服务器交换数据时原来只需几秒,现在需要 ...

对于这类应用问题属于高级故障,只能抓包定位了,建议楼主先上传故障时数据包。
回复

使用道具 举报

 楼主| 发表于 2008-8-22 21:37:17 | 显示全部楼层

出现故障数据包

传数据时无故中断,PING不掉包.
希望大家多多帮忙.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2008-8-22 22:14:47 | 显示全部楼层
原帖由 lushengjun 于 2008-8-22 21:37 发表
传数据时无故中断,PING不掉包.
希望大家多多帮忙.

大致看了下楼主的数据包,发现:
1,存在两个会话;
2,第一个会话异常终止是由于在客户端还有数据没有传完时,服务器端主动发送FIN结束请求,导致后续客户端到服务器的数据包被服务器发送RESET包重置;
3,第二个会话异常是由于服务器端在给客户端回包时,其中一个数据包(在46包之前应该还有个包)丢失了,导致服务器最终发送RESET数据包重置了这个会话。

分析了数据包情况,接下来分析故障原因:
1,我们主要看第二个会话的异常,首先我们将注意力放在服务器数据包丢失的地方,通过比较44、46两包的seq值(46包的seq=1906062,44包的seq=1905038,其差值为1906062-1905038=1024),也就是说,中间被丢失的tcp段长为1024字节;
2,我们再回过头看看前面的TCP三次握手过程,看看客户端与服务器端协商时的MSS值,哈哈,发现没?1024字节啦。
3,推论一下吧,是否是中间链路的某个原因(MTU值?MPLS封装?ADSL封装?其他封装?)导致无法传输大于1044字节的数据包呢?

好人做到底吧,哈哈。分析了故障可能的原因,我们再给个解决方案:
请楼主检查中间链路吧,特别是MTU和相应封装。改下MTU试试。

最后,楼主如果问题解决了,记得反馈一下,我也敲的很辛苦的~~

[ 本帖最后由 孤独的意尹者 于 2008-8-22 22:26 编辑 ]
回复

使用道具 举报

发表于 2008-8-22 22:34:55 | 显示全部楼层
楼上的是怎么看出来的啊?能否给详细解释一下啊?对我们也是促进啊。
呵呵,刚想问楼上呢。太感谢了。学到不少知识啊。

[ 本帖最后由 wahaha 于 2008-8-22 22:44 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2008-8-22 23:17:00 | 显示全部楼层
非常感谢版主分析!!
不管问题解决没有,最起码有一个很重要的参考价值与学习价值!!
我们的网是这样的,服务器端采用光纤,工作站是ADSL,与版主分析有非常接近的地方.
再次问下版主:
1,如何修改MTU值?
2,中间停顿的近一分钟时间,服务器和和客户端在干什么?
再次感谢!!
回复

使用道具 举报

发表于 2008-8-22 23:36:37 | 显示全部楼层
原帖由 lushengjun 于 2008-8-22 23:17 发表
非常感谢版主分析!!
不管问题解决没有,最起码有一个很重要的参考价值与学习价值!!
我们的网是这样的,服务器端采用光纤,工作站是ADSL,与版主分析有非常接近的地方.
再次问下版主:
1,如何修改MTU值?
2,中间停顿的 ...

1,至于mtu值的修改不同产品修改方法都不一样,你可以根据你产品的品牌和型号网上找下。
2,你给的数据包文件只有那两个会话,中间那些时间的确没有数据包,不知是否是你使用了过滤器造成的。
3,如果你的网络环境比较复杂,那么,建议在客户端与服务器端同时抓包做对比分析。
回复

使用道具 举报

 楼主| 发表于 2008-8-23 00:05:39 | 显示全部楼层
这是只设置了服务器IP的过滤数据包

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2008-8-23 00:29:53 | 显示全部楼层

回复 9# 的帖子

这个包跟上面的包差别不大,再次确认的确是由于段长为1024的那个ip报文被丢弃了。
建议楼主下次说明一下抓包的位置,上面那个是通过端口镜像抓取的数据包吗?如果方便的话,楼主最好在服务器端抓包看下,因为如果是中间mtu造成的,那么在服务器端可能会收到icmp差错报文。
回复

使用道具 举报

 楼主| 发表于 2008-8-23 10:49:30 | 显示全部楼层
我是在抓包机器与服务器串了一个HUB,并过虑只抓服务器的包.
但我敢肯定的是服务器与客户端数据是准确的,这个被丢弃的数据包是怎么重传的呢?
服务器与工作站采用轮询方式,服务器不断PING各工作站,当发现工作站存活时,就与之交换数据,待交换完成后,便转入下一个工作站,当与下一个工作站进行数据交换时如果还有上一个工作站的数据包我认为是不正常的事情.
回复

使用道具 举报

 楼主| 发表于 2008-8-23 16:43:20 | 显示全部楼层
请问版主:
1、既然工作站与服务器协商的MSS值为1024,为什么服务器还会发大于1024的数据包?
2、第44包和46包时间相差很少(毫秒级),应该不会造成很大的延时吧?
3、版主如何判断44包和46包中有丢失的数据包?还有在计算丢失数据大小为1024时我有点看不懂,能否详细说明一下?
4、我发现服务器提出的MSS为1460,属于正常数值,而工作站提出的MSS值为1024,是不是重要工作应放在工作站上?
非常感谢版主所做的工作及耐心的分析!
回复

使用道具 举报

 楼主| 发表于 2008-8-24 16:19:46 | 显示全部楼层
我用PING -F -L 数据包大小 对方IP 测试了链路,对于大于1024的包是可以PING通的啊!
回复

使用道具 举报

 楼主| 发表于 2008-8-25 12:00:06 | 显示全部楼层
请大家和版主帮我分析一下嘛!
回复

使用道具 举报

发表于 2008-8-26 09:18:04 | 显示全部楼层
原帖由 lushengjun 于 2008-8-23 10:49 发表
我是在抓包机器与服务器串了一个HUB,并过虑只抓服务器的包.
但我敢肯定的是服务器与客户端数据是准确的,这个被丢弃的数据包是怎么重传的呢?
服务器与工作站采用轮询方式,服务器不断PING各工作站,当发现工作站存活时 ...

关于业务应用的网络行为在解决故障时是非常有用的,呵呵,楼主应该早点提出来哈
回复

使用道具 举报

发表于 2008-8-26 09:20:22 | 显示全部楼层
原帖由 lushengjun 于 2008-8-23 16:43 发表
请问版主:
1、既然工作站与服务器协商的MSS值为1024,为什么服务器还会发大于1024的数据包?
2、第44包和46包时间相差很少(毫秒级),应该不会造成很大的延时吧?
3、版主如何判断44包和46包中有丢失的数据包?还 ...

关于第一个问题:
服务器的MSS是1024,但是中间设备的MTU值可能小于1024+20ip头长,对吧,而这个是服务器是不知道的,所以服务器还是以1024作为tcp的段长来传输数据啊。
其他的问题等该故障解决了,我可以考虑做成文档供大家参考
回复

使用道具 举报

发表于 2008-8-26 09:21:01 | 显示全部楼层
原帖由 lushengjun 于 2008-8-24 16:19 发表
我用PING -F -L 数据包大小 对方IP 测试了链路,对于大于1024的包是可以PING通的啊!

不知你ping的值是多少
回复

使用道具 举报

 楼主| 发表于 2008-8-26 20:56:38 | 显示全部楼层
问题终于找到了!!!感谢版主的大力支持!
原因是一个交换机光模块故障,对于超过1024的包转发困难,换了一个光模块,马上全网就正常了,哎,这个问题我研究了近两个月,我原以为通过我的经验可以解决的,但抓包才是最终的解决办法!
再次感谢论坛,感谢孤独的意尹者-----版主!
但我有几个问题想再问一下:
1、如何判定数据交换中有包丢失?
2、通过观察数据包的情况,可以发现网络的运行情况吗(是正常还是有隐患)?
3、比如说,我要观察某一台网络设备(如一台以太网收银机)和服务器是否正常交换数据,怎么看?假如有延迟和丢包怎样才能发现?
回复

使用道具 举报

发表于 2008-8-27 09:28:02 | 显示全部楼层
版主真是太厉害了。我以前很少这么分析问题,今天看了版主的精彩分析真是受益匪浅啊。
回复

使用道具 举报

发表于 2008-8-27 10:50:04 | 显示全部楼层
好文章!收藏!!

楼主的问题很详细,版主的回答更全面.可见版主的理论与实践经验都很强!!受益匪浅

我也一直加强网络分析,支持CSNA 支持科来.呵呵
回复

使用道具 举报

发表于 2008-8-27 14:10:05 | 显示全部楼层
原帖由 孤独的意尹者 于 2008-8-26 09:20 发表

关于第一个问题:
服务器的MSS是1024,但是中间设备的MTU值可能小于1024+20ip头长,对吧,而这个是服务器是不知道的,所以服务器还是以1024作为tcp的段长来传输数据啊。
其他的问题等该故障解决了,我可以考虑做 ...

前面兄弟问的四个问题很到位,期待LZ做的文档~~~~~
回复

使用道具 举报

发表于 2008-8-28 14:18:19 | 显示全部楼层
好贴!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

 楼主| 发表于 2008-8-29 10:47:36 | 显示全部楼层
期待LZ做的文档~~~~~
回复

使用道具 举报

发表于 2008-12-16 19:15:26 | 显示全部楼层
好人啦~!
回复

使用道具 举报

发表于 2009-3-16 21:40:30 | 显示全部楼层
“1、如何判定数据交换中有包丢失?”
难道通过看一个一个的数据包序列号连不连续?
强烈顶起来,请孤独的意尹者-----版主!给予解答!!!!
回复

使用道具 举报

发表于 2009-3-17 16:48:17 | 显示全部楼层
好帖  记录一下  期待文档
回复

使用道具 举报

发表于 2009-3-17 17:37:31 | 显示全部楼层
原帖由 lfgao 于 2009-3-16 21:40 发表
“1、如何判定数据交换中有包丢失?”
难道通过看一个一个的数据包序列号连不连续?
强烈顶起来,请孤独的意尹者-----版主!给予解答!!!!



强烈要求回答这个问题
回复

使用道具 举报

发表于 2009-3-18 13:13:04 | 显示全部楼层
真是受益匪浅  希望做成稳当
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表