一 、什么是路由
路由就是从源主机到目的主机的过程,能够将数据包正确的转发到正确的目的地,并且在转发过程中选择最佳的传输路径。
路由器的工作原理
用一句话概括:根据路由表转发数据
如图所示,数据想要从1.1转发到4.1需要通过路由器,在路由器A的路由表中寻找4.0网段所对应的接口,当数据进入S0端口后,进入路由器B,寻找4.0端口对应的接口,数据就会通过E0接口到达主机4.1.
二 、路由表的形成
- 路由器中维护路由条目的集合
- 路由器根据路由表选择路径
- 路由表中有直连网段和非直连网段两种
1、直连网段 - 配置IP地址、端口状态,形成直连网段
2、非直连网段
对于非直连的网段,需要静态路由或动态路由,将网段添加到路由表中
如图所示,AR10和AR7就是属于直连网段,AR7和AR9也是直连网段,但是AR10和AR9就是非直连网段,相邻的两个网段属于直连网段,而不相邻的才是非直连网段。
静态路由
特点:
- 由管理员手工配置的,单向的
- 缺乏灵活性,准确性高
它会告诉路由器发送数据的目的地址是哪,以及下一跳所到达的位置。
配置静态路由:链接: link
动态路由
RIP OSPF IS-IS (内部网关路由协议) BGP(外部网关路由协议)
默认路由
当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口。比如我想上个外网,但是我不知道外网的网段,路由表中也没有相对应的路由信息。于是我就可以设置一个默认路由(0.0.0.0)作为目的地址,将下一跳的路径设置为自己路由器的接口,最后就可以访问外网了。
三 、路由器转发的封装过程
PC A向PC B发送数据,路由器对数据包的封装过程如下图所示:
(1) PC A在网络层将来自上层的报文封装成IP数据包,其首部包含了源地址和目的地址。源地址即本机IP地址192.168.1.2,目的地址为HostB的IP地址 192.168.2.2。PC A 和 PC B 地址不在同一网段,因此发往PC B的数据包需要经过网关路由器A转发;
(2)PC A 通过ARP请求获得默认网关路由器 A 的 E0 端口MAC地址00-11- 12-21-11-22。在数据链路层PC A将IP数据包封装成以太网数据帧,在以太网帧首部的源MAC地址为00-11-12-21-11-11,目的MAC地址为网关 E0 端口的MAC地址00-11-12-21-11-22;
(3)路由器人从 E0 端口接收到数据帧,把数据链路层的数据解封装。路由器A查找自己的路由表, 寻找到与目标IP地址192. 16.2.2相匹配的路由表项即 E1 端口,然后封装数据,根据路由表的下一跳地址将数据包转发到 E1 端口;
(4)在 E1 端口路由器 A 重新封装以太网帧,此时源MAC地址为路由器A的 E1 端口MAC地址00-11-12-21-11-33,目的MAC地址为与之相连的路由器B的E1端口MAC地址00-11-12-21-11-44。 路由器A发送ARP请求,路由器B做应答,实现单播;
(5)路由器B从E1接口接收到数据帧,同样会把数据链路层的封装去掉,对目的IP地址进行检查,并与路由表进行匹配,然后根据路由表的下一跳信息将数据包转发到E0端口。路由器B发现目的网段与自己的E0端口直接相连,通过ARP广播, 路由器B获得Host B以太口的MAC地址00-11-12-21-11-66。路由器B再将IP数据包封装成以太网帧,源MAC地址为路由器B的E0接口的MAC地址00-11-12-21-11-55,目的MAC地址为Host B的MAC地址00-11-12-21-11-66。封装完毕,将以太网帧从E0接口发往PC B。
总结:转发过程中ip始终不变,MAC地址一直在变。
四 、交换机与路由器的对比
路由器
- 工作在网络层
- 根据路由表转发
交换机
- 工作在数据链路层
- 根据MAC地址表转发