Python 如何使用Ryu SDN应用程序模拟延迟?

Python 如何使用Ryu SDN应用程序模拟延迟?,python,sdn,ryu,Python,Sdn,Ryu,我需要使用Ryu SDN控制器模拟网络延迟。我首先尝试在decorator之后添加一个睡眠时间,每当控制器接收到消息中的数据包时,decorator调用一个函数,但问题是这个函数在当前数据包完成之前无法处理下一个数据包。有没有办法使这个函数成为多线程的 @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def _packet_in_handler(self, ev): time.sleep(LATENCY) ... 如果要模拟网络

我需要使用Ryu SDN控制器模拟网络延迟。我首先尝试在decorator之后添加一个睡眠时间,每当控制器接收到消息中的数据包时,decorator调用一个函数,但问题是这个函数在当前数据包完成之前无法处理下一个数据包。有没有办法使这个函数成为多线程的

@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
time.sleep(LATENCY)
...

如果要模拟网络延迟,则应尝试将延迟应用于链接,而不是应用程序

如果您使用的是网络模拟器,则可以在其API(例如mininet:mininet.link.Tlink)中完成此操作


如果您使用的是虚拟机,则可以设置为在您使用的接口上模拟延迟。

我使用的是真实设备。无论如何,谢谢。你也可以将netem用于真正的物理设备。