【问题标题】:Router Simulation路由器模拟
【发布时间】:2012-05-02 14:15:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: router packet


    【解决方案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 和服务器操作系统也具有路由器功能,因此它们在内部也使用路由表、指标和最长匹配。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-09-18
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 2021-11-02
        • 2016-11-02
        相关资源
        最近更新 更多