我正在尝试在OMNet v5.2.1上创建SDN模型。但是,INET中没有SDN控制器模块。这就是为什么我将standartHost模块用作控制器。我可以获得合理的结果吗?
另外,我在网络上使用UDP协议。由于我想发送数据包遵循以下路径:
客户端->开关->控制器->开关-> host2,
我将客户端协议定义为UDPBasicApp,将控制器协议定义为UDPEcho。但是UDPEcho协议可以进行以下操作:
客户端->开关->控制器->开关->客户端
总而言之,客户端获取了他发送的数据包。如何解决?
我附上与UDP协议有关的.INI文件的一部分
[Config Step1]
network = Test
description = "Fully automatic static routing table configuration"
*.client.numUdpApps = 1
*.client.udpApp[0].typename = "UDPBasicApp"
*.client.udpApp[0].destAddresses = "controller"
*.client.udpApp[0].destPort = 5000
*.client.udpApp[0].messageLength = 1000B
*.client.udpApp[0].sendInterval = exponential(12ms)
*.client.udpApp[0].packetName = "UDPData"
*.controller.numUdpApps = 1
*.controller.udpApp[0].typename = "UDPEchoApp"
*.controller.udpApp[0].localPort = 5000
*.controller.pingApp[*].destAddr = "host2"
最佳答案
有一个用于INET的SDN扩展,请参见this paper和github上的相应代码。
关于UDPEchoApp
:此行为是有意的。回显应用程序响应所发送的任何请求。如果将请求发送到控制器(如配置中所示),然后在控制器上运行EchoApp,则将从控制器响应UDP数据包。但是,对于非SDN场景,您根本不需要控制器(只需使用client->switch->host2
)。