0

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

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

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

4

2 回答 2

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。第三条路线是专用局域网。请注意两条“Null0”路由,以阻止流向未使用的私有 IP 地址的流量从默认路由流出到我的 ISP。倒数第二个路由是默认路由。

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

于 2012-04-21T02:29:09.507 回答
0

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

于 2012-04-21T02:36:13.363 回答