跪求一个关于sctp的问题,很紧急啊
时间:2011-01-18
来源:互联网
在建连阶段的 INIT是,客户端就把自己的两张网卡地址都发给了服务端,经过一些系统初始化数据传输之后,客户端
发送给服务端heartbeat时,服务端返回abort,之后连接断开,这个问题非常严重啊,一直想不到问题出在哪里,现在
只能推测在INIT时上报了客户端的两张网卡。抓包出来显示服务端会定时发送给客户端那张不是直接相连的网卡地址 heartbeat,客户端当然没有heartbeat ack,但是当真正相连的地址发送给服务端heartbeat时服务端就断掉。
请问怎么样才能让客户端在INIT时只上报直接相连的网卡的IP地址。这样可能能解决这个问题。
查了鞋资料似乎是在创建socket后在setsockopt中有选项可以做到这一点,但资料实在是太少,不知道该怎么设置,知道的大侠帮下忙啊。
作者: zjkelehaha 发布时间: 2011-01-18
在建连阶段的 INIT是,客户端就把自己的两张网卡地址都发给了服务端,
为什么要用两张网卡啊,网络通信,一对一就可以了。你的两张网卡都启用了吗,都配置 IP 并连接到链路上了吗
作者: Godbach 发布时间: 2011-01-18
我们这个项目客户端需要两张网卡以上的,只有一张网卡连到服务端。现在就是想让sctp在建立连接时只报上去当前连接的网卡
作者: zjkelehaha 发布时间: 2011-01-18
作者: Godbach 发布时间: 2011-01-18
我已经绑定了。sctp建链时默认情况下会把当前启用并设有ip地址的网卡都报上去,当其中一条连接断开时就切换到另外一条。
但我现在没必要用他这个特性,因为另外的网卡并没有与目标机子相连。因为这个特性导致程序出现断开。所以我要关闭这个特性,
在建立连接时客户端不要上报其他的网卡地址,只要报当前直接相连的就行了。这个设置可以通过setsockopt()函数来搞定。但我不知道
怎么设,网上的资料和示例代码实在太少了。
作者: zjkelehaha 发布时间: 2011-01-18
sctp支持多宿主通信。也就是说,通信双方(association)之间可以有多个传输路径(transport)。
Godbach 发表于 2011-01-18 16:02
作者: asweisun 发布时间: 2011-01-18
sctp支持多宿主通信。也就是说,通信双方(association)之间可以有多个传输路径(transport)。
受教。
之前只是看过 TCP详解卷3中介绍 SCTP,实际中没有使用过。内核模块配置的时候,SCTP 还是标注为 Experimental.
作者: Godbach 发布时间: 2011-01-18
是的,请问怎么才能让客户端连接服务端时不上报未与服务端直接相连的网卡ip呢。
差不多就是setsockpot()这个函数应该怎么写
作者: zjkelehaha 发布时间: 2011-01-18
是的,目前sctp在linux中的使用还是比较少的,其他地方用的比较多。所以各方面资料也比较少啊
作者: zjkelehaha 发布时间: 2011-01-18
客户端本地地址是可以自己指定的。
直接去掉不能用的本地地址呢。
另外,多宿主的特性是关闭不掉的。关闭掉就不是sctp了。
sctp的选项可以参考rfc: (这个现在只是草案)
http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-25
我已经绑定了。sctp建链时默认情况下会把当前启用并设有ip地址的网卡都报上去,当 ...
zjkelehaha 发表于 2011-01-18 17:51
作者: asweisun 发布时间: 2011-01-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28