解析第三层交换技术( 三 )


3Com公司的快速IP属于端系统驱动流交换技术,其工作原理基于NHRP标准(草案) 。源端主机发送一个快速IP连接请求,该请求就像数据报文一样被路由穿过网络,假如目的端主机也运行快速IP,则它发送一个包含其MAC地址的NHRP应答报文给源端主机,假如源端主机和目的端主机存在二层交换通路,当NHRP应答报文到达源端主机时将在经过的交换机中建立目的端主机MAC地址和端口的映射表,随后源端主机可根据目的端主机MAC地址直接通过交换机二层通路交换数据报文,不再经过路由器;假如两端主机之间没有交换路径而无NHRP应答返回,则报文如前进行路由 。
快速IP软件主要运行在源、目的端主机的网络接口卡(NIC)的驱动程序之上 。它与主机的IP协议栈和NIC驱动程序接口,以协调NHRP交换 。总之,快速IP试图改善在交换网络上完成路由的转发性能,但它没有潜在的灵活性,也不能通过报文过滤提供任何安全保障,而且需要在参与快速IP交换的主机上安装NHRP协议软件 。实际上增加了设备的维护工作量 。
多种流交换技术最初是在路由选择比较慢和代价比较大的前提下开发的 。报文到报文交换产品已经证实了情况不再如此 。与报文到报文交换产品相比,流交换方法显得更复杂和难以理解 。在动态网络环境下,成功地标识、建立、治理和撤消大量的流需要哪些措施,仍然是一个有待研究的问题 。目前应用在局域网互联的第三层交换设备多是基于报文到报文交换技术 。流交换更可能在广域网中找到其位置 。
3 对第三层交换机“路由一次,处处交换”或“基于目的MAC地址的第二层交换”这一观点提出质疑
当前,很多文章对三层交换机的工作原理进行过介绍,在交换机对三层报文转发机制上基本趋向一致观点,那就是“路由一次,处处交换”或“基于目的MAC地址的第二层交换” 。现摘录这些文章中比较有代表性的原文如下:
“第三层交换的原理是,假设两个使用IP的主机A、B通过第三层交换机进行通信 。发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判定B站是否与自己在同一子网内 。若目的站B与发送站A在同一子网内,则进行二层的转发 。若两个站点不在同一子网内,如发送站A要与目的站B通信,发送站A要向“缺省网关”发出ARP请求(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块 。当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,假如三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址 。否则三层交换模块根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中 。从这以后,A向B发送的数据包便全部交给二层交换处理,信息得以高速交换 。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此第三层交换机的速度很快,接近第二层交换机的速度,同时比相同路由器的价格低很多” 。
分析上面这段文章,笔者认为这种观点违反了主机与缺省网关通信的基本原理 。文章提到“当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,假如三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址 。否则三层交换模块根据路由信息向B站广播一个ARP请求” 。实际上,A站向三层交换模块发送网关IP地址的ARP请求时,ARP请求报文并不包含B站IP地址,三层交换模块只会把自己IP地址对应的MAC地址回复给A站,根本不会向发送站A回复B的MAC地址 。这是错误之一 。

推荐阅读