在 Inet 中寻找在应用层接收消息的最佳方法

Finding the best methods in the Inet which perform receiving messages the application layer

我需要找到 Inet 中的哪些方法最适合以下条件和请求:

应用层的所有应用程序,如TcpApp、UDPApp、UdpBasicApp等,在收到消息或数据包时,都以通用的方式进行处理。例如,当发送 UdpBasicApp 数据包时,该数据包将在该函数(方法)中进行处理。此外,还会收到一个 TcpApp 数据包,该数据包将在该函数(方法)中进行处理。我猜函数(方法)在到达所有应用程序之前应该属于公共路径上的 class(我猜应该在网络层或传输层)。

假设我的 omnetpp.ini 的一部分是:

*.hostA.numApps = 1
*.hostA.app[0].typename = "UdpBasicApp"
*.hostA.app[0].destAddresses = "hostB"
*.hostA.app[0].destPort = 5000
*.hostA.app[0].messageLength = 1000B
*.hostA.app[0].sendInterval = exponential(12ms)
*.hostA.app[0].packetName = "UDPData"

*.hostB.numApps = 1
*.hostB.app[0].typename = "UdpSink"
*.hostB.app[0].localPort = 5000

hostA和hostB是节点。 提前致谢

应用程序数据包的内容特定于任何给定的应用程序,因此没有可以捕获 'all' 应用程序数据的通用函数。即使有这样的方法,你也无法对数据包做任何事情,因为你不知道数据包里面有什么,也不知道如何解释它。您只会看到 X 字节的数据。

下层也没有公共点。

  • 在link层,如果你有多个网卡,数据可以从各种接口进来。
  • 在网络层,您可以有 IPv6 或 IPv4 流量,因此同样没有公共路径。
  • 在传输层上,您可以使用 UDP、TCP 或 SCTP
  • 在应用层,您有许多应用程序,每个应用程序都以不同的方式解释应用程序数据。

简而言之,没有这样的方法,事实上也没有意义。