2012-04-21 139 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條目將指向默認路由。