3.3路由器包的转发操作
路由器的基本知识
路由器是基于IP设计的
路由器包含转发模块和端口模块
转发模块:判断包的转发目的地
端口模块:复制包的收发操作
- 支持以太网,无线局域网、ADSL、FTTH
路由器端口会接收发给自己的以太网包,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。
路由器的各个端口都具有MAC地址和IP地址
路由表中的信息
- 路由器根据“IP地址”判断转发目标。
- [图片上传失败...(image-8ac456-1588333652723)]
路由器会忽略主机号,只匹配网络号
- 目标地址:接收方的IP信息进行匹配
- 子网掩码:只表示在匹配网络包的目标地址时需要对比的比特数量
- 网关和接口:网络包的转发目标(将网络包交给接口列表中指定的网络接口,并转发到网关列表指定的IP地址)
- 跃点数:目标IP地址的距离(数字越大,目标地址越大)
路由表的维护方法:
- 手动维护
- 根据路由协议机制
路由器包的转发操作
- 路由器的端口具备MAC地址,只接收与自己地址匹配的包,遇到不匹配的直接丢弃。
查询路由表确定输出端口
- 通过路由器转发的网络包,其接收方的MAC地址为路由器端口的MAC地址
- 根据目标地址和子网掩码匹配,路由器优先匹配网络号较长的,跃点数越少的进行匹配
- 如果路由器无法找到匹配的记录,路由器就会直接丢弃这个包。
找不到匹配路由时选择默认路由
- 路由表中子网掩码为“0.0.0.0”的记录表示默认路由
包的有效期
- 发送包一般会将TTL设置为64或128,
- 路由器会更新IP头部的TTL(Time to live,生存时间),每次经过一个路由器时TTL会减1,
- TTL为0时,表示超过开了有效期,这个包就会被丢弃
通过拆分功能拆分大网络包
一旦转发包的长度超过了输出端口能传输的最大长度,就无法发送这个包了
需要使用IP协议定义分配功能:
- 对包进行拆分的分配功能:尽管TCP头部不适用户数据,从IP协议的角度看它也算数据的一部分。
路由器的发送操作与计算机相同
路由器判断下一个转发目标的方法:
- 如果路由表中的网关列表内容为IP地址时,改地址就是下一个转发目标
- 如果路由表中的网关列表内容为空时,则IP头部的接收方IP地址为下一个转发目标
- 路由器也会使用ARP查询下一个转发目标的MAC地址
路由器和交换机的关系
- IP(路由器)负责将包传达给通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)负责的