繁体   English   中英

在开发多宿主可靠udp时,如何使用mininet检测到链路断开?

[英]While developing multihomed reliable udp, how can I detect that a link is down using mininet?

这是拓扑:

      -----s0---s1-----
 h1 --|               |--h2
      -----s2---s3-----

h1以可靠的方式使用UDP将文件泵送到h2。 s0和s1之间的链接可能断开。 然后,它应继续仅使用底部路径发送数据。 有没有办法检测到链接已断开?

到目前为止,我为每个路径在h1中创建了两个python套接字,在h2中创建了两个。 使用select.select我可以获得准备好读取ack的套接字。 如果发生超时,我可以重新传输。 但是,当链接断开时,我不知道它断开了。

如果出于某种原因必须从头开始执行此操作;

尝试ping否则,等待确认; 如果您在一段时间内未收到确认,则超时; 尝试另一条路。 有什么原因不使用TCP? 在UDP之上实现可靠性基本上是TCP通过IP实现的。

有关如何建立TCP握手的图示和指南,请参阅3向握手


您还可以考虑使用SCTP ,它是基于数据流的多宿主传输控制协议。 相当多的平台支持它,包括Linux,BSD,Windows等。

还有一个Python SCTP库

就像这样简单:

import socket
import sctp

sk = sctpsocket_tcp(socket.AF_INET)
sk.connect("10.0.1.1")

并实现与套接字大多数相同的接口

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM