2012-04-21 104 views
0

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

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

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

回答

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 

第一条路线是公共LAN。第三条路线是专用LAN。注意这两个“Null0”路由可以阻止未使用的私有IP地址的流量通过默认路由到达我的ISP。倒数第二条路线是默认路线。

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

0

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