路由器作为网络层的中间设备,起到了连接不同网络的功能
因此它可以同时属于不同的网络
如图,两个路由器连接了网1,网2与网3
路由器A连接网1与网2,同时具有网1与网2的IP15.0.0.9
与20.0.0.1
路由器A连接网2与网3,同时具有网2与网3的IP20.0.0.9
与30.0.0.1
路由器根据具体的IP地址来转发数据
当路由器接受到一个数据包,这个数据包包含了该数据包的目的IP地址,随后使用该IP查找路由表
根据匹配结果对照路由表来决定从哪个端口发送出去
对于路由器A
最简化的路由表结构如图
目的网络地址 | 下一跳地址 |
---|---|
20.0.0.0 | 接口1(20.0.0.1) |
15.0.0.0 | 接口2(15.0.0.1) |
30.0.0.0 | 20.0.0.9 |
当路由器A从网1收到来自IP15.0.0.2
发送往20.0.0.2
的数据报,
这时候会从15.0.0.1
处接受数据
然后根据路由表发现,目的IP为20.0.0.2
的目的网络为20.0.0.0
符合路由表的第一项,从接口1发送出去.
当从网1收到来自IP15.0.0.2
发送往30.0.0.2
的数据报
从15.0.0.1
处接受数据
然后根据路由表发现,目的IP为30.0.0.2
的目的网络为30.0.0.0
符合路由表的第三项,就发往路由器B的20.0.0.9
处
路由器B接受数据随后对照路由表发送给目的主机
即转发的基本步骤如下
- 从数据报的首部提取目的主机的IP地址D,得出目的网络地址N(子网掩码和IP地址做与运算可得出网络地址)。
- 若N就是于此路由器直接相连的某个网络地址,则进行直接交付,不需要在经过其他路由器,直接把数据报交付给目的主机;否则就是间接交付。
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器。
- 若路由表中有达到网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器。
- 报告转发分组出错。