路由器工作在网络层,用于互连网络,主要工作是转发分组。
把某个输入端口收到的分组,按照分组要去的目的网络,把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
(根据目的网络的IP地址转发分组)
路由器的结构:
路由选择部分(控制层面) 核心: 路由选择处理机
根据所选定的路由选择协议构造出路由表,同时定期和相邻路由器交换路由信息,不断地更新和维护路由表。
分组转发部分(数据层面):
交换结构,输入端口,输出端口
交换结构:
根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
交换三种方式:
通过储存器:
通过总线:
通过纵横交换结构:
输入端口对线路上收到的分组的处理:
输出端口对线路上收到的分组的处理:
路由器实现了物理层、数据链路层、网络层的功能。
路由器传输延迟最大。
当路由器检测到拥塞时,可合理丢弃分组,并向该IP分组的源主机发送一个源点抑制的ICMP报文。
路由器收到的IP分组进行差错检验,丢弃有差错首部的报文,但不保证IP分组不丢失。
转发和路由选择的区别:
转发:
路由器根据转发表将用户的IP数据报从合适的端口转发出去,仅涉及一个路由器。
转发表根据路由表得出,每一行包含到达的输出端口和某些MAC地址信息。
路由选择:
按照路由选择算法,根据网络拓扑的变化情况,动态地改变选择的路由,并由此构造出整个路由表。涉及到很多路由器。路由表一般仅包含从目的网络到下一跳的映射。
路由表的书写:
(1)路由表包括:目的网络、子网掩码、下一跳
其中目的网络的IP地址。路由表要包括所有网络的IP地址。
(2)分组转发过程:
主机H1首先构造一个源IP地址为202.99.98.18,目的IP地址为202.99.98.35的IP数据报,主机H1先把本子网的子网掩码与H2的IP地址逐位相与,所得结果不等于H1的网络地址,所以H1和H2不在同一子网,无法直接交付,然后将数据报传送给数据链路层。
主机H1通过ARP协议获得路由器R1所对应的MAC地址,并将其作为目的MAC地址,H1的MAC地址作为源MAC地址填入封装有IP数据报的帧,然后将帧发送出去。
路由器R1收到该帧后,去除帧头和帧尾,得到IP数据报,然后根据IP数据报中的目的IP地址去查找路由表,得到下一跳地址为直接相连。
路由器R1通过ARP协议得到主机H2的MAC地址,并将其作为目的MAC地址,R1的MAC地址作为源MAC地址填入封装有IP数据报的帧,然后将该帧发送到子网net2上。
主机H2收到帧后,去除帧头和帧尾,并最终得到从主机H1发来的IP数据报。