我查看了Akka文档中的一些关于路由器的例子。
从文件中:
默认情况下,当路由器发送消息时,它将隐式地将自己设置为发送方。
sender ! x // replies will go to this actor
但是,对于路由器来说,将路由器设置为发送方通常是有用的。例如,如果要隐藏路由器后面路由器的详细信息,则可能希望将路由器设置为发送方。下面的代码片段演示如何将父路由器设置为发件人。
sender.tell("reply", context.parent) // replies will go back to parent
sender.!("reply")
由于另一个不相关的问题,我找到了一个可用的网络图。
Internet
|
(dhcpc)
------------------------------
| Router A |
| default route via internet |
------------------------------
(192.168.2.1) *dhcp server on this interface*
|
我正在尝试为一个模拟路由器的类编写一个程序,到目前为止,我已经完成了基本设置(“路由器”可以通过模拟服务器向连接到该服务器的其他“路由器”发送和接收数据包)。每个数据包仅包含该路由器的距离矢量。当路由器接收到数据包时,它应该使用贝尔曼-福特算法相应地更新自己的距离矢量。我遇到的问题是,我发现自己无法在不作弊和使用邻接矩阵的情况下实现实际的算法。
例如,假设我连接了3台路由器,如下所示:
A ---1--- B ---2--- C
也就是说,A和B的链路开销为1,B和C的链路开销为2。因此,当路由器全部启动时,它们将向每个直接连接的邻居发送一个数据包,其中包含距离矢量信息。因此A将发送路由器B