当前位置: 技术问答>linux和unix
sctp心搏的超时以及重传控制
来源: 互联网 发布时间:2016-10-01
本文导语: 问题:1. 开启了sctp的心搏机制,在偶联对端B意外关闭,并且没有向本端A发送shutdown消息,属于意外的非法关闭。现在A会一直向B发送心跳。A收到的包是ICMP目标不可达。心跳会一直发送5次。 我使用了struct sctp_paddrpa...
问题:1. 开启了sctp的心搏机制,在偶联对端B意外关闭,并且没有向本端A发送shutdown消息,属于意外的非法关闭。现在A会一直向B发送心跳。A收到的包是ICMP目标不可达。心跳会一直发送5次。
我使用了struct sctp_paddrparams pathmaxrxt;中的spp_pathmaxrxt来设置为1。
以及struct sctp_assocparams assocmaxrxt;sasoc_asocmaxrxt来设置为1。
但是这两个地方好像都没起作用:
这是一个示例:
struct sctp_assocparams assocmaxrxt;
memset(&assocmaxrxt,0,sizeof(assocmaxrxt));
assocmaxrxt.sasoc_asocmaxrxt = 2;
setsockopt(sockfd, IPPROTO_SCTP, SCTP_ASSOCINFO, &assocmaxrxt,sizeof(assocmaxrxt));//sockfd有效。
2. 在发送完5次的心跳的时候,触发事件 address 不可达。我在这里close了socket,但是sctp会继续发送shutdown 5次才关闭。这是为什么
感谢大家踊跃顶贴
我使用了struct sctp_paddrparams pathmaxrxt;中的spp_pathmaxrxt来设置为1。
以及struct sctp_assocparams assocmaxrxt;sasoc_asocmaxrxt来设置为1。
但是这两个地方好像都没起作用:
这是一个示例:
struct sctp_assocparams assocmaxrxt;
memset(&assocmaxrxt,0,sizeof(assocmaxrxt));
assocmaxrxt.sasoc_asocmaxrxt = 2;
setsockopt(sockfd, IPPROTO_SCTP, SCTP_ASSOCINFO, &assocmaxrxt,sizeof(assocmaxrxt));//sockfd有效。
2. 在发送完5次的心跳的时候,触发事件 address 不可达。我在这里close了socket,但是sctp会继续发送shutdown 5次才关闭。这是为什么
感谢大家踊跃顶贴
|
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。