路由器仿真

时间:2012-04-21 02:18:07

标签: router packet

对于我的一门课程,我正在编写一个模拟网络活动的Java Applet。我有一台主机,它保存MAC到IP地址的ARP表,然后我让交换机跟踪MAC连接到什么物理端口。 (界面)

我的问题是,我应该如何模拟路由器。根据我的理解,主机将对传出IP执行计算以确定该IP是否在网络上,假设不是,主机将数据包发送到默认网关(通过查找IP地址的MAC地址)默认网关),在这种情况下是路由器。现在路由器将在两个不同的网络上至少有两个接口。

所以,我的理论是,路由器将查看目标IP地址,并将数据包传输到具有该网络的正确接口上。但是,路由器是否具有“默认网关”,如果目标网络上没有这些接口,路由器是否可以将其传递给其他路由器?

2 个答案:

答案 0 :(得分:1)

不完全是。路由器有路由表。它们获取数据包的目标地址并找到到达目的地的路由。他们使用的算法基本上是“最长匹配”(或“最具体的匹配”)。

要实现默认网关的等价物,请放置默认路由,即目的地为0.0.0.0/0的路由。这将匹配每个数据包(因为每个数据包都在该网络中),但它始终是最差的匹配。

这是我的一个路由器的匿名路由表:

C    x.y.z.104/29 is directly connected, FastEthernet0/0
S    10.0.0.0/8 is directly connected, Null0
S    192.168.0.0/24 [1/0] is directory connected, FastEthernet 1/0
S*   0.0.0.0/0 [1/0] via x.y.z.1
S    192.168.0.0/16 is directly connected, Null0

第一条路线是公共局域网。第三条路线是私人局域网。请注意两条“Null0”路由阻止未使用的私有IP地址的流量通过默认路由到我的ISP。倒数第二个路线是默认路线。

请注意,我们通常认为是终端系统的大多数设备都是路由器。典型的PC和服务器操作系统也具有路由器功能,因此它们内部也使用路由表,指标和最长匹配。

答案 1 :(得分:0)

路由器可以有默认路由。在最长前缀匹配中,/ 0条目将指向默认路由。