数据链路层是干嘛的?
网络层是研究分组怎样从一个网络通过路由器转发到另一个网络
数据链路层主要研究在同一个局域网中,分组怎样从一个主机传送到另一个主机(不经过路由器)
数据链路层主要使用两种信道:
点对点信道:使用一对一的点对点通信方式,使用PPP协议。
广播信道:使用一对多的广播通信方式,使用CSMA/CD协议。
数据链路层的三个需要解决的基本问题:封装成帧、透明传输、差错检测
了解以太网MAC层的硬件地址
适配器、转发器、集线器、网桥、以太网交换机的作用以及适用场合
两个主机进行通信时数据链路层的地位
主机H1通过电话线上网,中间经过三个路由器(R1,R2和R3)连接到远程主机H2。中间经过的网络可以是多种的。
如下图中所示的:电话网、局域网、广域网。
当主机H1向H2发送数据时,从协议的层次上观察,数据的流动如下图所示。
主机H1和H2都有完整的五层协议栈,但是由路由器转发分组时使用的协议栈只有下面三层。
数据进入路由器后先从物理层开始最后上升的网络层,在转发表中查找到下一跳的地址后,再下到物理层转发出去。
当我们专门研究数据链路层的问题时,我们可以只关心在协议栈中水平方向的各个数据链路层,如下图所示。
H1的链路层---->R1的链路层---->R2的链路层---->R3的链路层---->H2的链路层
H1和H2的通信可以看成是由四段不同的数据链路层通信组成,即:H1--->R1,R1---->R2,R2---->R3,R3---->H2
这四段不同的链路层可能采用不同的链路层协议。
使用点对点信道的数据链路层
数据链路和帧
首先我们需要区分什么是链路什么是数据链路
- 链路(物理链路):就是从一个结点到相邻结点的一段物理线路(有线或无线),中间没有任何其他的交换结点。
两个计算机之间的通信路径,往往需要经过许多这样的链路。链路只是通信路径的组成部分
- 数据链路(逻辑链路):数据链路层上传输数据,在有物理线路之外,还需要有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层一般通过网络适配器(硬件和软件)来实现这些协议
- 帧:点对点信道的数据链路层的协议数据单元。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层
网络层协议数据单元---IP数据报(数据报、分组、包)
点对点数据链路层进行通信的主要步骤:
假设两个结点AB之间进行,则只需关注这两个节点的网络层、数据链路层、物理层
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- 结点A把封装好的帧发送给结点B的数据链路层
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧
需要解决的三个基本问题
- 封装成帧
什么是封装成帧?
在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
如何封装成帧?
网络层的IP数据报传送到数据链层就成为帧的数据部分。
在帧的数据部分的前面和后面分别添加上首部和尾部,就构成一个完整的帧。
这个完整的帧就是数据链路层的数据传送单元
帧的首部和尾部的作用
1.进行帧界定:接收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束
2.添加一些必要的控制信息
帧界定
帧的开始和结束的标记使用专门指明的控制字符:
在一个帧的最前面添加SOH(Start Of Header)控制字符,表示帧的首部开始
在一个帧的末尾添加EOT(End Of Transmission)表示帧的结束。
SOH和EOT只是控制字符的名称。并不是真正的字符S、O、H(或者E、O、T)。
它们十六进制编码分别为01(二进制为00000001)04(二进制为00000100)
最大传送单元MTU(Maximum Transfer Unit)——每一种链路层协议都规定的所能传送的帧的数据部分长度上限
- 透明传输
什么是透明传输?
无论什么比特组合的数据都能通过这个数据链路层。也就是说数据链路层对这些数据来说是透明的
怎么实现透明传输?
因为帧的开始和结束的标记使用专门指明的控制字符。
因此,所传输的数据中的任何8比特的组合一定不允许和用作帧界定的控制字符的比特编码一样。
为了解决透明传输问题,我们就需要解决在数据中可能出现的控制字符SOH或者EOT不被解释为控制字符
解决了以上问题就能实现透明传输。
解决办法:字节填充或者字符填充
在发送端的数据链路层的数据中出现控制字符 SOH 或者 EOT 的前面插入一个转义字符 ESC (其十六进制编码是1B,二进制是00011011)
如果转义字符也出现在数据当中,解决方法仍然是在转义字符前面插入一个转义字符
在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符,因此当接收端收到连续两个转义字符时,就删除其中前面的一个。
以上操作被称为字节填充(byte stuffing)或字符填充(character stuffing)
- 差错检测
在传输过程中可能会产生差错,如0变成1,或者1变成0。这称为比特差错。
在传输过程中没有出现比特差错,但出现帧丢失、帧重复、帧失序这三种情况,则属于传输差错,比特差错是传输差错的一种
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
如何解决比特差错?
目前在数据链路层广泛使用 循环冗余检验CRC(Cyclie Redundancy Check) 的检错技术
原理:在发送端的数据链路层传输的数据后面添加冗余码
在接收端的数据链路层收到的数据以帧为单位进行CRC检验
检验得出的余数是否为0。是,表示无差错就接受该帧;不是,表示有差错,但不确定哪里出错就丢弃该帧。
为了进行检错而添加的冗余码称为 帧检测序列FCS(Frame Check Sequence)
如何解决传输差错?
在CRC检错的基础上,增加帧编号、确认和重传机制
即:收到正确的帧就要向发送端发送确认。
发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
为了提高通信效率,通信质量良好的有线传输链路,数据链路层协议不使用确认和重传机制
也就是不要求数据链路层向上提供可靠传输的服务。如果出现差错,那么改正的任务交给上层协议
(如,运输层的TCP协议)完成。
通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,数据链路层向上提供可靠传输的服务,如无线网络
点对点协议PPP
由来:因为早期通信线路质量不好,因此在数据链路层使用的协议是能实现可靠传输的 高级数据链路控制HDLC(High-level Data Link Control)协议
随着通信线路质量的提高,现在HDLC已经很少使用了,改为使用相对简单的PPP协议
PPP协议就是用户计算机和ISP进行通信所使用的数据链路层协议
每一个ISP都从因特网的管理机构或从一个更大的ISP申请到一批IP地址。ISP拥有与因特网通过高速通信专线相连的路由器。大的ISP还拥有属于自己的通信线路,小的ISP则向电信公司租用通信线路。用户在某一个ISP缴费登记后(或购买了该ISP的上网卡),就可用自己的计算机通过调制解调器、电话线路接入到该ISP。用户在接通ISP后,ISP就分配给该用户一个临时IP地址。用户计算机在获得了临时的IP地址后,就成为连接在因特网上的主机,因而就可以使用因特网所提供的各种服务,当用户结束通信后,ISP就把刚才分配给该用户的IP地址收回,以便再分配给后面接通ISP的其他用户使用。
PPP协议应满足的需求
- 简单
因为IEFE设计的因特网体系结构中把最复杂的部分放在TCP协议中。
网际层协议IP则相对简单提供不可靠传输,因此下一层的数据链路层不必提供比IP更复杂的协议
因此数据链路层的帧不需要纠错、不需要序号、不需要流量控制
- 封装成帧
PPP协议必须规定特殊的字符为帧定界符
- 透明性
PPP协议必须保证数据传输的透明性,传输的数据中有和定界符一样的比特组合时,需要解决这个问题(字节或者字符填充)
- 多种网络层协议
PPP协议必须能够在同一条物理链路上同事支持多种网络层协议的运行,如IP何IPX等
- 多种类型链路
PPP协议还必须能够在多种类型的链路上运行
- 差错检测
能够对接收端收到的帧进行检测,并立即丢掉有差错的帧
- 检测连接状态
能够自动检测链路是否处于工作状态
- 最大传输单元
能够设置最大传送单元MTU的标准默认值(MTU的标准默认值为1500字节)
- 网络层地址协商
PPP协议必须提供一种机制使通信的两个网络层(如两个IP层)的实体能够通过协商通知或能够配置彼此的网络地址
协商的算法应尽可能简单,并且嫩够在所有的情况下得出协商结果
- 数据压缩协商
PPP协议必须提供一种方法来协商使用数据压缩算法
PPP协议的组成
PPP协议由三部分组成
1.一个将IP数据报封装到串行链路的方法
PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
IP数据报在PPP帧中就是其信息部分,该大小受MTU控制
2.一个用来建立,配置和测试数据链路连接的 链路控制协议LCP(Link Control Protocol)
3.一套 网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet等
PPP协议的帧格式
4个首部字段(分别为1、1、1、2字节)+信息字段(不超过1500字节)+尾部字段(分别为2、1字节)
各字段含义
首部字段:四个字段
第一个字段:标志字段 F(Flag),帧定界符,表示一个帧开始。规定为0x7E(十六进制的7E,二进制01111110),1字节。
注意:连续两个帧之间只需要一个标志字段。如果出现两个标志字段,表示一个空帧,应丢弃
第二个字段:地址字段 A。规定为0xFF(即11111111),1字节。
第三个字段:控制字段 C。规定为0x03(即00000011),1字节。
第四个字段:协议字段。2字节。
规定协议字段为0x0021时,PPP帧的信息字段就是IP数据报
若协议字段为0xC021时,PPP帧的信息字段就是LCP的数据
若协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据
信息字段:长度可变,不超过1500字节
尾部字段:两个字段
第一个字段:使用CRC的帧检验序列FCS,1字节。
第二个字段:标志字段 F(Flag)。帧定界符,表示一个帧结束。规定为0x7E(十六进制的7E,二进制01111110),1字节。
字节填充
信息字段中出现和标志字段一样的比特(0x7E)组合时
需要使用一些方法使这种形式上和标志字段一样的比特组合不出现在信息字段中
当PPP使用异步传输(逐个字符的传送)时,把转义字符定义为0x7D(即01111101),并使用字节填充
1.把信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)
2.若信息字段中出现一个0x7D的字节(即出现了和转义字段一样的比特组合),则把0x7D转变成2字节序列(0x7D,0x5D)
3.若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面加入一个0x7D字节,并改变该字符的编码
零比特填充
PPP协议进行同步传输(一连串的比特连续传送)时,采用零比特填充的方法来实现透明传输
标志字段是0x7E,二进制为01111110
1.在发送端,先扫描整个信息字段(硬件或者软件)只要发现有连续的5个1就立即填入一个0,保证不出现6个连续的1。
2.在接收端收到一个帧时,先找到标志字段 F 确定一个帧的边界
然后再用硬件对其中的比特流进行扫描
每发现5个连续1时,就把这5个连续1后的一个0删除
PPP协议的工作状态
PPP链路初始化过程:
设备之间无链路---------> 物理链路----------> LCP链路---------->已鉴别的LCP链路---------->已鉴别的LCP链路和NCP链路
PPP链路的起始和终止状态永远是 链路静止(Link Dead)状态
此时用户PC和ISP的路由器之间并不存在物理层的连接
1.当用户拨号接入ISP后,就建立了一条从用户PC到ISP的物理链路。
用户在屏幕上点击连接按钮,路由器就能够检测调制解调器发出的载波信息。
双方就建立了物理层连接,PPP进入 链路建立(Link Establish)状态。
目的是建立链路层的LCP连接
2.用户PC向ISP发送一系列的 链路控制协议LCP分组(封装成多个PPP帧),以便建立连接
LCP开始协商一些配置选项,发送LCP的配置请求帧(Configure-Request)
该帧是一个PPP帧,协议字段设置为LCP对应的代码,信息字段包含特定的配置请求
LCP的配置选项包括:
链路上的最大帧长
所使用的的鉴别协议(authentication protocol)的规约(有的话)
不使用PPP帧中的地址和控制字段(因为这两个字段的值是固定的,没有任何信息量,可以在PPP帧的首部中省略这两个 字节)
3.这些分组及其响应选择了将要使用的一些PPP参数
发送了LCP的配置请求帧后,获得响应。
链路的另一端可以发送以下几种响应中的一种:
配置确认帧(Configure-Ack):所有选项都接受
配置否认帧(Configure-Nak):所有选项都理解但不接受
配置拒绝帧(Configure-Reject):选项有的无法识别或不能接受,需要协商
协商结束后就建立了LCP链路,接着就进入 鉴别(Authenticate)状态。鉴别状态只允许传送LCP协议的分组、鉴别协议的分组、以及监测链路质量的分组。
如果使用口令鉴别协议PAP(Password Authtication Protocol),则需要发起通信的一方发送身份标识符和口令,可以允许用户重试若干次。
需要更好的安全性,则可使用更复杂的口令握手鉴别协议CHAP(Challenge-Handshake Authtication Protocol),在CHAP协议下,若鉴别身份失败,则转到 链路终止(Link Terminate)状态。成功,则进入 网络层协议(NetWork-Layer Protocol)状态
4.接着进行网络层配置,网络控制协议NCP 给新接入的用户分配一个临时的IP地址
PPP链路两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。通过同一个PPP协议进行通信
如:IP协议,就使用NCP中支持IP的协议---IP控制协议IPCP(IP Control Protocol).
把IPCP分组封装成PPP帧(协议字段为0x8021)在链路上传送。
网络层配置完后,链路进入到 链路打开(Link Open)状态,此时就可以进行数据通信。
此时,用户就是因特网上的一个有IP地址的主机了
数据传输结束后,由链路的一端发出终止请求LCP分组(Terminate-Request)请求终止链路连接
在收到对方发来的终止确认LCP分组(Terminate-Ack)后,转到 链路终止状态
当调制解调器载波停止后,回到 链路静止状态
通信完毕,NCP释放网络层连接,收回原来分配出去的IP地址,LCP释放数据链路层连接,最后释放物理层连接。
PPP协议不是一个纯粹的数据链路层协议,还包含了物理层和网络层的内容
使用广播信道的数据链路层
广播信道可以进行1对多通信,局域网使用的就是广播信道。
局域网的数据链路层
局域网
局域网特点:网络为一个单位所拥有,且地理范围和沾点数目均有限
优点:1.有广播功能,从一个站点可以很方便的访问全网。局域网上的主机可以共享连接在局域网上的各种硬件和软件资源
2.便于系统的扩展和逐渐的演变,各设备的位置可灵活调整和改变
3.提高了系统的可靠性、可用性、和生存性
局域网按照网络拓扑进行分类:星形网(通过集线器)、环形网、总线网。
为了让众多用户能够合理而方便地共享通信媒体资源,我们使用共享信道技术
通过两种方法来解决:
- 静态划分信道
如:频分复用、时分复用、波分复用、码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。代价高,但不适用于局域网
- 动态媒体接入控制(也叫多点接入)
信道不在用户通信时固定分配给用户,又分为两类:随机接入、受控接入
随机接入:所有用户随机发送信息,但是如果恰巧两个用户在同一时刻发送信息,则会发生碰撞,因此,必须有解决碰撞的网络协议
受控接入:所有用户必须服从一定的控制。如:分散控制的令牌局域网和集中控制的多点线路探询(也叫轮询)
以太网的标准
以太网:一种基带总线局域网--演变成-->两个标准的局域网:DIX Ethernet V2的局域网与 IEEE的802.3标准的局域网
因为商业原因802委员会制定了几个不同的局域网标准,如802.4令牌总线网、802.5令牌环网等。
802委员会把数据链路层拆分成两个子层:
逻辑链路控制LLC(Logical Link Control)子层
媒体接入控制MAC(Medium Access Control)子层
接入到传输媒体有关的内容都放在MAC子层,LLC子层则与传输媒体无关
通过总线可以实现广播通信方式:当一台计算机发送数据时,总线上所有计算机都能检测到这个数据。
再通过每个计算机的MAC地址和数据帧中的目的地址匹配达到广播中的一对一通信
以太网特点:
以太网提供的服务是尽最大努力的交付,是不可靠的交付。只处理传输差错,通过CRC检测。差错帧则交给高层协议处理
以太网是随机接入,通过CSMA/CD(载波监听多点接入/碰撞检测 Carrier Sense Multiple Access with Collision Detection)来解决碰撞
以太网发送的数据都是用曼彻斯特编码的信号
以太网规定了一个最短帧长为64字节,即512bit。6+6+2+46+4
因此,凡是长度小于64字节的帧都是由于冲入而异常中止的无效帧
适配器的作用
本来是主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡---个人计算机存储器卡接口适配器)就是现在的网卡,现在基本都集成在主板上了,适配器上装有处理器和存储器(RAM和ROM)
适配器与局域网之间的通信通过电缆或双绞线等以串行方式进行
适配器与计算机之间的通信则通过I/O总线以并行传输方式进行
因此,适配器的一个重要作用就是进行数据串行传输和并行传输的转换,通过安装缓存来提高效率
适配器收到正确的帧,就使用中断来通知该计算机并交付协议栈中的网络层
计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网
注意:计算机的硬件地址就在适配器的ROM中。
计算机的软件地址——IP地址则在计算机的存储器中
CSMA/CD协议
CSMA/CD(载波监听多点接入/碰撞检测 Carrier Sense Multiple Access with Collision Detection)
多点接入:表明是总线型网络
载波监听:就是检测信道。不管在发送前,还是发送中,每个站都必须不停地检测信道
发送前检测信道,是为了获取发送权,如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须要等到信道变为空闲时才能发送。
发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞,这就是碰撞检测。
碰撞检测:也就是边发送边监听。即适配器边发送边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
由此可见,在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。
因此使用CSMA/CD协议的以太网不可能进行全双工通信,只能进行双向交替通信(半双工通信)
以太网的MAC层
硬件地址、又叫物理地址或MAC地址(因为这种地址用在MAC帧中)
名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处
MAC地址:6字节(48位)的全球地址,局域网上的每一台计算机中固化在适配器的ROM中的地址
前三个字节由IEEE的注册管理机构RA(Registration Authority)分配,厂家必须购买
后三个字节则由厂家自行分配。
最后得到的48位的地址称为EUI-48(扩展的唯一标识符 Extended Unique Identifier)
第一字节最低位为I/G位(Individual/Group):为0表示一个单个站地址,为1表示组地址
第一字节的最低第二位为G/L位(Global/Local):为0表示全球管理,是向IEEE的RA购买的。为1表示本地管理,用户可以任意分配网络上的地址,以太网几乎不理会这个G/L位
字节顺序有两种:
第一种:就是把每个字节的最低位写在最左边(最左边的最低位是第一位),IEEE802.3标准就是采用这种记法
第二种:是把每一个字节的最高位写在最左边(最左边的最高位时第一位)
两种记法都是按照顺序传输的
适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。
如果是发往本站的帧就收下,进行其他处理;否则就丢弃,不做其他处理。
发往本站的帧有三种:
1.单播(unicast)帧(一对一):收到的帧的MAC地址与本站的硬件地址相同
2.广播(broadcast)帧(一对全体):发送给本局域网上的所有站点的帧(全1地址)
3.多播(multicast)帧(一对多):发送给本局域网上一部分站点的帧
所有适配器必须能够识别单播和广播地址。有的适配器可用编程方法识别多播地址
只有目的地址才能使用广播地址和多播地址
以太网适配器还能设置一种特殊工作方式,混杂方式
即:只要听到有帧在以太网上传输就都悄悄的接收下来,不管这些帧发往哪个站。
这样做就是窃听其他站点的通信而不终端其他站点的通信
嗅探器就是用了设置为混杂方式的网络适配器
MAC的帧格式
以太网的MAC帧格式有两种标准:
DIX Ethernet V2标准(即以太网V2标准)
IEEE的802.3标准
其中,使用最多的是以太网V2标准的MAC帧格式。而且现在市场上流行的基本都是以太网V2的MAC帧格式。
以太网MAC帧格式组成
由五个字段组成:
目的地址字段(6字节)+源地址字段(6字节)+类型字段(2字节)+数据字段(MTU46-1500字节之间)+FCS(4字节)
如果MAC帧格式中数据字段小于46字节,则MAC子层会在数据字段的后面加入一个整数字节的填充字段,来保证MAC帧长不小于64字节
上一层协议如何知道填充字段的长度呢?
在IP协议中,其首部就有一个总长度字段。因此总长度加上填充字段应等于MAC帧数据字段的长度。
在实际传送中还会在MAC帧前面插入8个字节,分为两个字段
第一个字段:前同步码(1和0的交替码)
作用:来让接收端的适配器在接收MAC帧时能够迅速地调整其时钟频率,使它和发送端的时钟同步
第二个字段是帧开始定界符,定义为10101011
它的前6位和前同步码一样,最后两个连续的1就是告诉接收端的适配器MAC帧的信息要来了,请注意接收
注意:以太网上的传输单位是 帧
各帧之间还必须有一定的间隙。
因此,接收端只需要找到帧开始定界符就可以了。不需要使用帧结束符定界符,也不需要插入字节来保证透明传输
无效MAC帧的情况:
1.帧的长度不是整数个字节
2.用收到的帧检验序列FCS查出偶差错
3.收到的帧的MAC客户数据字段打长度不在46-1500字节之间。MAC帧长度不在64-1518字节之间
无效的MAC帧则进行丢弃,不进行重传
在数据链路层扩展以太网
需要使用网桥
网桥
网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤
当网桥接收到一个帧时,先检查此帧的目的地址(目的MAC地址),然后再确定将该帧转发到哪一个接口,或者是把它丢弃(过滤)
网桥的内部结构
最简单的网桥有两个接口。复杂的网桥可以有更多的接口。
两个以太网通过网桥连接起来后,就成为一个覆盖更大的以太网,原来的每个以太网就可以称为一个网段(segment)
上图中接口1和接口2各连接到一个网段
网桥依靠转发表来转发帧,转发表也叫转发数据库或路由目录。
如:网桥从接口1收到A发给E的帧,则在查找转发表后,把这个帧送到接口2转发到另一个网段,使E能够收到这个帧
若网桥从接口1收到A发给B的帧,就丢弃这个帧,因为转发表中,转发给B的帧应当从接口1转发出去,而现在是从接口1中接收到的帧,说明A和B在同一个网段中,B能够直接收到这个帧而不需要借助于网桥转发
注意:网桥在转发帧时,不改变帧的源地址
网桥内部的接口管理软件和网桥协议实体来完成上述操作
网桥的好处:
1.过滤通信量,增大吞吐量
2.扩大物理范围
3.提高了可靠性
出现网络故障,一般只影响个别网段
4.可互联不同物理层,不同MAC子层和不同速率的以太网
网桥的缺点:
1.增加时延
因为需要对接收的帧进行存储和查找转发表,转发之前还需要进行CSMA/CD算法
2.导致广播风暴
网桥只适用于用户数不太多(不超过几百个)和通信量不太大的以太网,否则会因为传播过多的广播信息产生网络阻塞
透明网桥
目前使用的最多的网桥,即,以太网上的站点并不知道所发送的帧将经过哪几个网桥
网桥是按照存储转发方式工作的,一定是先把整个帧收下来再进行处理,不管气目的地址是什么。
集线器或转发器是逐比特转发
透明网桥是一种即插即用(plug-and-play device),只要把网桥加入到局域网中,不用人工配置转发表网桥就能工作
网桥通过自学习算法处理收到的帧(这样逐步建立转发表),使用生成树(spanning tree)算法确保任何两个站之间只有一条路径
自学习算法原理:
网桥只要每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目
注意:转发表中并没有“源地址”一栏,只有“地址”一栏。
在建立转发表时,是把帧首部中的源地址写在“地址”一栏下面
在转发帧时,根据收到的帧的首部中的目的地址来转发的。
网桥自学习和转发帧的一般步骤:
1.网桥收到帧后先进行自学习。查找转发表中与收到帧的源地址有无想匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)如有,则把原有的项目进行更新
2.转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。如没有,则通过所有其他接口(除了进入网桥的接口)进行转发。如有,则按转发表中给出的接口进行转发,若转发表中给出的接口就是该帧进入网桥的接口,则丢弃这个帧