1、寻址转发(寻址指的是寻找IP地址)
路由表放在一个公共的地方,比如主控板上,由主控板 的CPU运行路由协议,计算路由,生成和维护路由表。
转发表与路由表:
- 转发表是根据路由表生成的。路由表中可能包含到达目的地址的多条路由,但是转发表里面只取其中的最优路由。
2、报文的收发与解封装
2.1、报文的接受与发送(PIC接口卡处理)
数据在通信线缆上传输时还只是光/电信号(对应于物理层的比特流)。为了让路由器读懂这些信号,在路由器上插线缆的接口里边有一块物理接口卡——PIC(Physical Interface Controller)卡,能感知这些光/电信号,把信号转换成数据帧(比如以太帧、PPP帧、ATM信元)。
接口卡有两个重要的功能:
①就是完成上述的物理层功能,光/电信号的收、 发;
②进行数据帧的“合法性”检查。数据经过物理线路的传递 后,有可能发生畸变,变成错包,无法被包转发引擎PFE正确解析,因此在接口卡需要 进行一些必要的检查。
以太网标准中规定如下帧为无效帧:
- 帧的长度不是整数个字节;
- 用收到的帧检验序列FCS(Frame Check Sequence)查出有错误;
- 收到的帧的负荷长度不在46~1500字节之间。
对于检查出的无效帧就简单的丢弃,以太网不负责重传丢弃的帧。而这些检查,是在 接口卡上执行的。
- 上行接口卡,PIC卡把光/电信号转换成数据帧,并检查“合法性”之后,把数据帧的内容(不包含帧间隙、前导码、帧开始界定符和FCS)发送给包转发引擎PFE。
- 数据包经过PFE转发,经过交换网板交换,从下行接口发送时,下行的对应位置也有接口卡。
- 下行接口卡的作用是,用待发送的数据帧内容计算帧检验序列FCS,然后对数据帧加封装帧间隙、前导码、帧开始界定符和FCS,并将数据帧转换成光/电信号,再发送到出接口线路上。
2.2、报文解析
包转发引擎PFE(Packet forwarding engine)从PIC卡收到报文时,PFE首先做的就是解析报文的二层帧头,并根据 配置做一些检查和处理。
如果入接口属性表对应的转发状态与报文解析后的协议不匹配,则报文会被 丢弃。比如某接口并未使能IPv6,则属性表的IPv6转发能力为”未使能“,如果收到的 报文是IPv6报文,则报文会被丢弃。
2.3、报文封装
举例以太网封装:由主机PC-A向主机PC-B发送IP报文,那么该报文的目的IP地址就是PC-B的IP地址,源 IP地址就是主机PC-A的IP地址,目标MAC地址就是其网关路由器Port1的MAC地址,源 MAC地址就是PC-A的MAC地址。
路由器转发过程:
1. 路由器收到这个报文,发现其目的MAC为本机Port1端口的,表明需要本机来进行 进一步解析(如果目的MAC不是本机,表明直接进行二层转发,不需要再解析帧 的其他内容了);
2. 路由器进一步解析报文,得知帧所承载的协议类型为IPv4(协议类型值 =0x800),即需要进行IPv4转发;
3. 查转发表(FIB表),得知该报文并不是发给自己的,而是需要送往出端口Port2, 因此,路由器不再继续分析IP头后面的内容。
4. 路由器将目的MAC更换成PC-B的MAC,将源MAC更换成出接口Port2的MAC,并 将报文发给PIC卡,PIC卡将报文从Port2发送出去。
在上述过程中,将报文原来的源/目的MAC更换成新值的过程,称为“封装”;往报文 里添加新的字段,也称为“封装”。需要被封装到待发送报文的信息称为“封装信 息”。
2.4、出接口处理
同上行,封装完成后,数据帧送往下行接口卡之前,也要根据出口属性表做出口检查 和处理。例如,检查报文长度是否超出接口的MTU值,如果超出则进行分片或其他处 理。