路由器的作用是实现网络的三层通信,将二层网络互联形成一个三层网络。
路由器工作内容
1. 封装和解封装(网卡CU)数据帧。
2. 维护路由表。
3. IP转发(也叫网络转发,三层转发)。
路由器接口特点
路由器接口和计算机网卡接口一样,都能封装和解封装数据帧。交换机的接口(两层接口)不能封装和解封装数据帧,除非数据帧匹配到三层接口vlanif。路由器每一个接口就是一个网段.
1.当路由器接口收到单播帧,判断目的MAC地址与接口MAC地址是否相同。不相同就丢弃,相同就把数据包剥出来(去掉帧头帧尾),交给对应得三层模块处理(取决于上层协议类型, 0x0800 IP 0x0806 ARP)。
2.当路由器收到广播帧,直接将Data剥出来,根据上层协议类型交给上层模块处理。
3. 组播帧,HCNA书说我不配学。。。。。。
IP转发原理
1.当PC1 向PC2发送数据帧P时,查到路由表,匹配到出接口是E0/0/1 , 吓一跳地址是R1的E0/0/1 ip地址的路由。于是发送 SIP是PC1 e0/0/1的IP地址,SMAC是PC1 e0/0/1的MAC-PC1, DIP是PC2的IP,DMAC是 R1 e/0/1的MAC-R1 ,数据帧P.
2. R1的e0/0/1端口收到P时,CU发现P目的MAC是本端口的MAC,于是将IP数据包Data剥出来, 数据帧P的上层协议类型是0x0800,于是将Data交给三层模块IP模块处理。
3. R1的IP模块根据Data的目的IP, 匹配到一条静态路由, 出接口是R1的 e/0/0/0 , 吓一跳地址是R2的e0/0/0。 于是把Data 封装数据帧S1( 目的地址是PC2的e0/0/1 IP地址,目的MAC是R2的e0/0/0 MAC地址,原地址是R1的e0/0/0 IP地址,原MAC是R1的e0/0/0 MAC地址)。这就是IP转发。
4.R2收到R1发送的数据帧S1,也需要进行解封装和封装操作。 R2的端口e0/0/0 发现S1的目的MAC是本端口的MAC, 于是解封装,交给IP数据报交给IP模块处理,IP模块根据路由表匹配到直连路由,于是将IP数据包封装帧S2(目的IP: PC2 , 目的MAC: PC2, 原IP: R2的e0/0/1 , 原MAC:R2的e0/0/1),从E0/0/1 转发。
5. PC2收到R2发送的数据帧S2时,发现S2的目的MAC是本地e0/0/1的MAC,于是将S2收下,等待进一步处理。
PC2和PC1不在同一个网段,PC2无法收到PC1发送的数据帧,只能收到PC2发送数据帧的载荷数据(三层PDU)部分。所以PC1和PC2通过路由器进行了一次三层通信,即对等层IP层通信。
IP数据格式
IP数据报文不能超过2的16次方 65536 字节。