深度讲解网桥架构和转发工作原理

www.net130.com     日期:2012-6-26    浏览次数:
出处:数据中心天空

在网络世界中,网桥转发是最基础的知识,想学习好的网络知识,必须先掌握网桥转发原理。基础先打好,以后学习新的网络知识才不费劲。费话不多说,马上进入正题。
一、网桥基本架构: 

网桥工作在OSI模型中的数据链路层,数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。 LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。它的工作原理是这样的:主机接收到帧并查看其LLC报头,以找到数据包的目的地,比如说,在网络层的IP协议。LLC子层也可以提供流量控制并控制比特流的排序。  IEEE 802.2 LLC 应用于 IEEE802.3 (以太网)和 IEEE802.5(令牌环) LAN,以实现如下功能:

1.管理数据链路通信
2.链接寻址
3.定义服务接入点 Service Access Points (SAP)
4.排序


LLC 为上层提供了处理任何类型 MAC 层的方法,例如,以太网 IEEE 802.3 CSMA/CD 或者令牌环 IEEE 802.5 令牌传递(Token Passing)方式。
LLC 是在高级数据链路控制(HDLC : High-Level Data-Link Control)的基础上发展起来的,并使用了 HDLC 规范的子集。LLC 定义了三种数据通信操作类型:
类型1:无连接。该方式不保证发送的信息一定可以收到。
类型2:面向连接。该方式提供了四种服务:连接的建立、确认和数据到达响应、差错恢复(通过请求重发接收到的错误数据实现)以及滑动窗口(系数:128)。滑动窗口用来提高数据传输速率。
类型3:无连接应答响应服务。
类型1的 LLC 无连接服务中规定了一种静态帧格式,并允许在其上运行网络协议。使用传输层协议的网络协议通常会使用服务类型1方式。
类型2的 LLC 面向连接服务支持可靠数据传输,运用于不需要调用网络层和传输层协议的局域网环境 。

网桥的基本架构如下图:
深度讲解网桥架构和转发工作原理
MAC ENTITIES的作用:存储和学习地址,并计算是否写入学习转发表,MAC 转发软件负责转发或过滤所接收到的 MAC 帧 。
LLC ENTITIES的作用:负责传送高层网桥管理协议。
MAC RELAY ENTITIES的作用:过滤数据库其中包含两张表:学习和转发表。
HIGH LAYER ENTITIES:高层的软件来负责产生、接收、及处理。高层的软件有网桥管理系统、网桥通讯协议等等。

网桥最基本结构:
1.桥端口间的MAC中继实体,端口间中继,过滤帧,学习过滤信息。使用每个端口的独立MAC实体提供的interal sublayer service报文被中继到不同VLAN.
2.至少两个端口,每个端口独立的MAC实体。
3.高层实体,至少包括桥协议实体。

二、转发原理:
MAC转发实体负责转发和过滤所有MAC帧。
转发程序:负责转数据到相应的端口和根据过滤数据库的内容和端口的状态来过滤一些数据。
学习程序:检查每个端口接收到的数据,并根据SOURCE IP来更新过滤库的内容。
过滤数据库:这里的内容是过滤信息,这些内容可以由网络管理系统或学习程序自动填入。根据这里的内容可以判断出数据该往哪个端口转发。

网桥彼此之间也有控制信息需要交换(网络管理系统,网络通讯协议)等,因此每一网桥端口应该提供LLC 种类1给网络通讯协议使用。首先接收程序接收到网络帧后,根据目标MAC判断是否属于网桥通讯软件,如果不是交由MAC实体,如果是由LLC交给网桥通讯软件,网桥通讯软件根据目标MAC来判断是否更新过滤数据库,网桥通讯软件也可以产生或转发帧给其他网桥上的通讯软件,此时可经由LLC转给传送程序。

说了这么多理论知识现在举个报文转发的例子,结合三层转发:
深度讲解网桥架构和转发工作原理
拓扑描述:sw1和sw2为二层交换机,R1,R2为路由器

下面就讲解一下报文如何从PC1转发到PC2:
首先PC1向网关发送一个ARP请求,网关R1会给一个回应,并记录下PC1的相关信息,PC1也从回应信息中学习到网关的IP和MAC地址映射关系。这样PC1就会发送一个目标MAC为网关MAC R1,源MAC为自己,源IP为自己,目标IP为PC2的帧到SW1的fa0/1口,这时SWI会检查一下目标MAC地址,看过滤数据库是否存在如果存在则丢弃如果不存在转发到除了这个端口之外的所有端口,也就是fa0/2口,接下来进入学习状态,查看源MAC,看过滤数据库是否是有存在有,查端口是否一样,不一样就更新,如果过滤数据库不存在这样的表项,便写入表内,记录下,MAC,端口,时间。接着便传到R1 FA0/3口,检查目标MAC发现是给自己的,便解开封装,查看目标IP是否自己的路由表中存在这样的出口,如果没有便丢弃,如果存在便转到下一跳出口中,由S0/1出去,转发到R2 S0/1,R2查看目标IP发现是自己的直连路由,出口是F0/1,这时还不知PC2的具体位置,需要发一个广播ARP报文,这样PC2会有一个ARP回应。这样SW2学习到源MAC地址(网关R2)。这是一个单向过程还需要一个回程的过程。反向过程同理。

分享道
相关新闻