首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCTP多导心跳行为

SCTP多导心跳行为
EN

Stack Overflow用户
提问于 2014-04-21 08:26:21
回答 1查看 4.6K关注 0票数 0

我有一个关于SCTP多宿主心跳行为的查询。考虑下面的例子-

代码语言:javascript
复制
Host_A (IP a(Primary), IP b(secondary)) : Local MultiHomed endpoint
Host_B (IP c(Primary), IP d(secondary)) : Remote multiHomed endpoint

主次之间是否存在心跳通讯,即a<->d & c<->b?如果没有,我们能做这样的设置吗?

在我的例子中,我只看到HB发送/ACK消息在两个主要和两个秒之间,而不是在主和次要之间。

编辑:-

我做了个小测试。我在两个相互连接的系统上运行sctp_darn。

主机A:主IP 172.29.11.43;二级IP 172.29.11.75主机B:主IP 172.29.11.40;二级IP 172.29.11.72

在主机A上,我运行了-> sctp_darn -s -P 4445 -H 172.29.11.40 -P 4444 -h 172.29.11.43 -B 172.29.11.75和sctp_darn -l -p 4445 -H 172.29.11.40 -B 172.29.11.72

我没有从A->B发送任何数据来监测乙肝的行为。这就是我从tcpdump输出中得到的。

代码语言:javascript
复制
root@base0-0-0-4-0-11-1:/root> tcpdump -ni bond1 sctp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond1, link-type EN10MB (Ethernet), capture size 65535 bytes


17:09:23.856688 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [INIT] [init tag:    368944998] [rwnd: 63488] [OS: 10] [MIS: 65535] [init TSN: 2410047720]
17:09:23.856893 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [INIT ACK] [init tag: 797255774] [rwnd: 63488] [OS: 10] [MIS: 10] [init TSN: 659191795]
17:09:23.856988 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [COOKIE ECHO] , (2) [DATA] (B)(E) [TSN: 2410047720] [SID: 0] [SSEQ 0] [PPID 0x0]
17:09:23.857410 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [COOKIE ACK] , (2) [SACK] [cum ack 2410047720] [a_rwnd 63486] [#gap acks 0] [#dup tsns 0]
17:09:25.880280 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB REQ]
17:09:25.880519 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB ACK]
17:09:27.951827 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB REQ]
17:09:27.951868 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB ACK]
17:09:56.520282 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB REQ]
17:09:56.520526 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB ACK]
17:09:56.534773 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [HB REQ]
17:09:56.534797 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [HB ACK]
17:09:57.748715 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [HB REQ]
17:09:57.749006 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [HB ACK]
17:09:59.026986 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB REQ]
17:09:59.027013 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB ACK]
17:10:27.129950 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [HB REQ]
17:10:27.129982 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [HB ACK]
17:10:27.220294 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB REQ]
17:10:27.220576 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB ACK]
17:10:29.076286 IP 172.29.11.43.4444 > 172.29.11.40.4445: sctp (1) [HB REQ]
17:10:29.076582 IP 172.29.11.40.4445 > 172.29.11.43.4444: sctp (1) [HB ACK]
17:10:30.402389 IP 172.29.11.72.4445 > 172.29.11.75.4444: sctp (1) [HB REQ]
17:10:30.402430 IP 172.29.11.75.4444 > 172.29.11.72.4445: sctp (1) [HB ACK]
^C
24 packets captured
24 packets received by filter
0 packets dropped by kernel
root@base0-0-0-4-0-11-1:/root>

正如你所看到的,HBs正从初级到二级,而不是从初级到二级,反之亦然。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-22 07:39:57

引用RFC 4960

如果没有可用于更新路径RTT的新块(通常包括第一次传输数据、INIT、COOKIE回波、心跳等),则目标传输地址被视为“空闲”。在该地址当前的心跳周期内,没有发送任何心跳。

换句话说,只要有其他块可以用来确定RTT,心跳就没有必要了。

那么,在您的例子中,活动连接是否是a->d和c->b,它们有足够的通信量使心跳变得多余?

编辑回应作者的更多细节

根据SCTP多寻的实验研究中的图1,对于每个方向的if the routing is configured in such a way that these IP addresses are accessible through different paths,每个NIC都有两个NIC。我认为它们必须是心跳才能确定每条路径的性能。

看着你的主要路径和心脏跳动的配对,它总是

172.29.11.x <-> 172.29.11.x?

也就是.7?永远不要与.4配对?,这可能是路由配置和/或子网的问题吗(而SCTP实现在其配对决策中考虑了这些信息?)只是猜一下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23193688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档