深入浅出IP路由选择过程
2015-10-21郭巍丛晓光
郭巍 丛晓光
【摘要】互联网技术的发展对从事智能建筑的技术人员提出了更高的要求,掌握计算机网络技术刻不容缓。本文以本地和远程网络为例深入探讨了IP路由选择过程。
【关键词】路由选择IP协议;ARP;ICMP;智能建筑
1、前言
据中国互联网络信息中心统计,截至2014年6月,我国的网民规模达6.32亿,互联网普及率为46.9%。近年来随着互联网络的迅猛发展,计算机网络渗透到了人们生活的方方面面。同样在智能建筑领域,终端设备正在加速向IP化方向发展,至今绝大部分常规类智能化子系统均实现了IP网络化架构。
互联网技术的发展对从事智能建筑的技术人员提出了更高的要求,掌握计算机网络系统的安装与调试技术刻不容缓。鉴于IP路由选择过程是学习计算机网络的重要基础内容,本文从较深层次上对其进行了探讨,以期能达到抛砖引玉的作用。
2、本地网络的通信过程
设图1中的各个Host主机在上电前均已按图所示设置好IP及网关地址,在Host_A上执行ping 192.168.1.3命令后与Host_B的通信过程如下:
1)在Host_A主机上ICMP生成一个回应请求,如图5所示TYPE填入0x8。
2)ICMP使用了IP协议,将该请求交给IP,后者将ICMP请求封装在如图2所示的分组中,该分组源IP地址(SRC IP)192.168.1.2、目的IP地址(DES IP)为192.168.1.3,协议PRO填入0x1代表该分组的有效负载为ICMP。
3)创建分组后IP判断出这是一本地请求,在LAN内Host_A与Host_B通过MAC地址便可直接通信。
4)接下来检查主机ARP缓存,查看Host_B的IP地址192.168.1.3是否已经被解析为硬件地址。
如果未被解析为硬件地址,应先把IP地址解析为硬件地址,这时Host_A将生成一个ARP请求包,如图4所示,PROTOCOL TYPE 填入0x800代表上议为IP协议,OPCODE填入0x1代表为ARP请求包,SOURCE MAC填入0001.C947.D592,SOURCE IP填入192.168.1.2,TARGET MAC填入0000.0000.0000.0000,TARGET IP填入192.168.1.3。该ARP请求包交给数据链路层后被封装在图3所示的帧中,DEST MAC填入FFFF.FFFF.FFFF.FFFF,SOURCE MAC填入0001.C947.D592,该帧从Host_A经Fa 0/1端口发送到SW1中,SW1交换机提取帧中的SRC MAC填入自身的CAM/MAC转发过滤表缓存中,SW1交换机提取帧中的DEST MAC后发现为二层广播地址,SW1交换机将該帧发送到所有端口,Host_B收到该帧后,提取ARP包中的TARGET IP 192.168.1.3与自身IP地址比较,地址相同则Host_B对改ARP请求做出反应,HOST_B生成一个ARP应答包,如图4所示,PROTOCOL TYPE填入0x800,OPCODE填入0x2代表为ARP响应包,SOURCE MAC填入0002.4A8A.BD56,SOURCE IP填入192.168.1.3,TARGET MAC填入0001.C947.D592,TARGET IP填入192.168.1.2。该ARP请求包交给数据链路层后被封装在图3所示的帧中,DEST MAC填入0001.C947.D592,SOURCE MAC填入0001.C947.D592,该帧从Host_B经Fa 0/2端口发送到SW1中,SW1交换机提取帧中的SRC MAC填入自身的CAM/MAC转发过滤表缓存中,SW1交换机查询自身CAM/MAC转发过滤表缓存后将该帧发给HOST_A,HOST_A提取帧中ARP包信息,将之存于ARP缓存中,ARP解析过程完成。
如果已被解析为硬件地址,封装有ICMP请求的分组将交给数据链路层后被封装在图3所示的帧中,SRC MAC填入0001.C947.D592,DEST MAC填入0002.4A8A.BD56,TYPE填入0x800,帧从Host_A经Fa 0/1端口发送到SW1中,SW1交换机提取帧中的SRC MAC填入自身的CAM/MAC转发过滤表缓存中(Fa 0/1端口对应0001.C947.D592),SW1交换机提取帧中的DEST MAC后查看对应端口为Fa 0/2,SW1交换机将该帧转发到Fa 0/2端口。
5)HOST_B从Fa 0/2端口收到该帧后,更新自身ARP缓存,查看帧中的TYPE字段后,提取帧中的分组交给网络层IP协议,IP协议检查分组的PRO字段,因PRO字段值为0x1,IP协议将有效负载交给ICMP协议。
6)HOST_B上的ICMP判断这个分组是ICMP的回应应答后,生成一个回应请求,如图5所示TYPE填入0x0。
7)IP协议将ICMP回应请求封装在如图2所示的分组中,该分组源IP地址192.168.1.3、目的IP地址为192.168.1.2,协议PRO填入0x1。
8)封装有ICMP请求的分组将交给数据链路层后被封装在图3所示的帧中,SRC MAC填入0002.4A8A.BD56,DEST MAC填入0001.C947.D592,该帧经SW1交换机转发给HOST_A,HOST_A提取ICMP包内容后,本次本地网络通信完成。
3、远程网络通信过程
设图1中路由器Fa 0/0端口的IP地址为192.168.1.1/24,MAC地址为00E0.B05D.10B3;路由器Fa 1/0端口的IP地址为192.168.2.1/24,MAC地址为0060.47D1.E5DD。在HOST_A执行ping 192.168.2.2命令后与HOST_C的通信过程如下:
1)在Host_A主机上ICMP生成一个回应请求,如图5所示TYPE填入0x8。
2)该ICMP请求封装在如图2所示的分组中,该分组源IP地址192.168.1.2、目的IP地址为192.168.2.2,协议PRO填入0x1代表该分组的有效负载为ICMP。
3)创建分组后IP判断出这是一远程请求,因此必须将该分组发送到默认网关,以便它能够被路由到远程网络。对windows注册表进行分析知默认网关为192.168.1.1。
4)封装有ICMP请求的分组交给数据链路层后被封装在如图3所示的帧中,SRC MAC填入0001.C947.D592,DEST MAC填入经ARP解析到的网关MAC地址00E0.B05D.10B3。
5)该帧从HOST_A开始,经SW1交换机从路由器的F 0/0端口进入路由器内部,过程参见本地网络通信过程。
6)路由器从该帧中提取封装有ICMP包的分组,IP接收该分组并检查其目标地址(DST IP),如果在路由选择表中找到了前往目标地址192.168.2.2的路由,路由器将该分组交换到指定的出站端口缓存内,这里是Fa 1/0端口。
7)该分组在路由器的出站端口Fa 0/1重新被封装成如图3所示的帧中,SRC MAC填入0060.47D1.E5DD,DEST MAC填入经ARP解析到的HOST_C的MAC地址0001.C793.1B2C,TYPE填入0x800。
8)该经重新封装的帧通过SW2交换机转发给HOST_C主机。
9)从帧中的提取分组交给IP协议,IP协议检查PRO字段后把有效负载交给ICMP协议。
10)ICMP判断这个分组是ICMP回应应答后,生成一个回应请求,如图5所示TYPE填入0x0。
11)该ICMP请求封装在如图2所示的分组中,该分组源IP地址192.168.2.2、目的IP地址为192.168.1.2。
12)創建分组后IP判断出这是一远程请求,因此必须将该分组发送到默认网关192.168.2.1,封装有ICMP请求的分组交给数据链路层后被封装在如图3所示的帧中,SRC MAC填入0001.C793.1B2C,DEST MAC填入经ARP解析到的网关MAC地址0060.47D1.E5DD。
13)该帧从HOST_C开始,经SW2交换机从路由器的F 1/0端口进入路由器内部,过程参见本地网络通信过程。
14)路由器从该帧中提取封装有ICMP包的分组,IP接收该分组并检查其目标地址(DST IP),在路由选择表中找到了前往目标地址192.168.1.2的路由后,路由器将该分组交换到指定的出站端口缓存内,这里是Fa 0/0端口。
15)该分组在路由器的出站端口Fa 0/0重新被封装成如图3所示的帧中,SRC MAC填入00E0.B05D.10B3,DEST MAC填入经ARP解析到的HOST_A的MAC地址0001.C947.D592,TYPE填入0x800。
16)该经重新封装的帧通过SW2交换机转发给HOST_A主机。
17)从帧中的提取分组交给IP协议,IP协议检查PRO字段后把有效负载交给ICMP协议。
18)ICMP判断这个分组为回应应答后,本次远程网络通信过程完成。
4、结束语
以上IP路由选择过程理解两点很重要。MAC地址是数据链路层物理地址,该地址只能用于LAN内部通信,而不能用于穿越路由器进行通信;传统交换机为二层设备,相当于数据链路层“路由器”,根据MAC地址对帧进行转发。路由器为三层设备,根据IP地址进行转发,帧经过路由器后帧的源地址和目的地址均发生了变化,但封装在帧中分组的IP源地址和目的地址没有发生变化。
参考文献
[1]《中国互联网发展状况统计报告》(2014年7月)中国互联网信息中心.
[2]《CCNA学习指南》Todd Lammle著袁国忠译.
[3]《PacketTracer6 Tutorials》.