首页 新闻 会员 周边

关于net网络通信

0
悬赏园豆:100 [已解决问题] 解决于 2011-06-02 10:55

有三个软件,简称服务A(c)、服务B(c#)、客户端(c#)

服务A和服务B在公司服务器上运行,服务器是双网卡双网段(100和0)的

服务A与服务B监听的都是两个网段的数据包

客户端在任意电脑上运行

工作原理:

客户端发信号给服务B,服务B处理后再将信号发给服务A,服务A接收到信号根据相应的内容与100网段的硬件通信,硬件执行相应的操作以后回信号给服务A,服务A再将信号回给服务B

问题:服务A给服务B发的信号有时候收的到有时候收不到,但是抓包工具抓的服务A有给服务B发信号。

备注:

1、在单网卡的服务器上没有出现这个问题

2、用一个模拟信号软件在服务器上以同样的方式发送信号给服务B,服务B可以收的到

3、服务A给服务B发送信号针对IP和端口(ip是0网段的),模拟信号亦是如此。

在这先感谢各位大虾的帮助啦!

QQ的丢丢的主页 QQ的丢丢 | 初学一级 | 园豆:75
提问于:2011-05-13 10:17
< >
分享
最佳答案
0

既然你都抓包了,应该可以通过包的信息推断出服务B对每个A发来的包的应答吧!

收获园豆:100
Launcher | 高人七级 |园豆:45045 | 2011-05-13 10:24
恩,端口和IP都没错,信号的校验和提示有问题,这个会造成什么后果么?
QQ的丢丢 | 园豆:75 (初学一级) | 2011-05-13 10:44
@QQ的丢丢:是不是说B收到了包了,但是对包做解析或者验证的时候,发现包的数据不对,还是说业务上的错误?
Launcher | 园豆:45045 (高人七级) | 2011-05-13 11:00
如果包的数据不对他就不会给A发啦,是不是服务器的网络环境有问题呢(比如在信号传递的过程给丢了)。而且针对IP发数据包用抓包工具不好抓。。
QQ的丢丢 | 园豆:75 (初学一级) | 2011-05-13 11:09
@QQ的丢丢:那你是怎么知道A给B发的包,B有时候收不到呢?
Launcher | 园豆:45045 (高人七级) | 2011-05-13 12:49
因为B收到信号就做了LOG了。。
QQ的丢丢 | 园豆:75 (初学一级) | 2011-05-13 13:40
也不知道是不是因为socket本身对数据包验证,发现校验和不对就丢了。。不晓得大哥知不知道如何关闭socket的校验和呀。。。
QQ的丢丢 | 园豆:75 (初学一级) | 2011-05-13 13:46
@QQ的丢丢:如果是socket本身对数据包验证丢包的话,你抓取的包信息应该能够看到TCP应答错误码。
Launcher | 园豆:45045 (高人七级) | 2011-05-13 14:30
是UDP,就是抓包看到校验和错误的如下:
Header checksum: 0x0000 [incorrect, should be 0x54b0]
QQ的丢丢 | 园豆:75 (初学一级) | 2011-05-13 14:38
@QQ的丢丢:checksum问题,你可以看这篇文章http://www.cnblogs.com/laoyur/archive/2011/03/22/1991688.html,应该只是抓包工具的问题。
Launcher | 园豆:45045 (高人七级) | 2011-05-13 15:27
其他回答(1)
0

Header checksum: 0x0000 [incorrect, should be 0x54b0

这个指出来包头不对,有可能是粘包/半包问题.

醉卧天南 | 园豆:369 (菜鸟二级) | 2011-05-16 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册