03.Data Link Layer
数据链路层概述
- 主要是以太网的介质和无线网的介质两大类
- 是一个直连线路上的介质控制, 在无线路由器上, 会有不同的第二层(如: 手机到路由器, 路由器到远端), 数据链路层只能在一个网段, 不能跨链路
三个重要问题
封装成帧
-
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
-
帧头和帧尾中包含有重要的控制信号
-
帧头和帧尾的作用之一就是帧定界
-
-
透明传输是指数据链路层对上层交付的传输数据没有任何限制, 就好像数据链路层不存在一样
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
- 面向比特的物理链路使用比特填充的方法实现透明传输
-
为了提高帧的传输效率, 应当使帧的数据部分的长度尽可能大些
-
考虑到差错控制等多种因素, 每一种数据链路层协议都规定了帧的数据部分的长度上限, 即最大传送单元MTU(Maximum Transfer Unit)
差错检测
-
实际的通信链路都不是理想的, 比特在传输过程中可能会产生差错: 1可能会变成0, 而0也可能变成1, 这称为比特差错
-
在一段时间内, 传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
-
使用差错检测码来检测数据在传输过程中是否产生了比特差错, 是数据链路层所要解决的重要问题之一
奇偶校验
循环冗余校验CRC(Cyclic Redundancy Check)
-
收发双方约定好一个生成多项式G(x)
-
发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码), 将其添加到带传输数据的后面一起传输
-
接收方通过生成多项式来计算收到的数据是否产生了误码
可靠传输
-
使用差错检测技术(例如循环冗余校验CRC), 接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)
-
数据链路层向上层提供的服务类型
- 不可靠传输服务: 仅仅丢弃有误码的帧, 其他什么也不做
- 可靠传输服务: 想办法实现发送端发送什么, 接收端就收到什么
-
一般情况下, 有线链路的误码率比较低, 为了减小开销, 并不要求数据链路层向上提供可靠传输服务, 即使出现了误码, 可靠传输的问题由其上层处理
-
无线链路易受干扰, 误码率比较高, 因此要求数据链路层必须向上层提供可靠传输服务
-
比特差错只是传输差错中的一种
-
从整个计算机网络体系结构来看, 传输差错还包括分组丢失, 分组失序以及分组重复
-
分组丢失, 分组失序以及分组重复这些传输差错, 一般不会出现在数据链路层, 而会出现在其上层
-
可靠传输服务并不仅局限于数据链路层, 其他各层均可选择实现可靠传输
-
可靠传输的实现比较复杂, 开销也较大, 是否使用可靠传输取决于应用需求
停止-等待协议SW
-
自动请求重传ARQ(Automatic Repeat reQuest)
-
接收端检测到数据分组由误码时, 将其丢弃并等待发送方的超时重传. 但对于误码率较高的点对点链路, 为使发送方尽早重传, 也可给发送方发送NAK分组
-
为了让接收方能够判断所收到的数据分组是否是重复的, 需要给数据分组编号. 由于停止-等待协议的停等特性, 只需1个比特编号就够了, 即编号0和1
-
为了让发送方能够判断所收到的ACK分组是否是重复的, 需要给ACK分组编号, 所用比特数量与数据分组编号所用比特数量一样. 数据链路层一般不会出现ACK分组迟到的情况, 因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
-
超时计时器设置的重传时间应仔细选择, 一般可将重传时间选为略大于"从发送方到接收方的平均往返时间"
- 在数据链路层点对点的往返时间比较确定, 重传时间比较好设定
- 然而在运输层, 由于端到端往返时间非常不确定, 设置合适的重传时间有时并不容易
回退N帧协议GBN
-
发送窗口和接收窗口不断向前滑动, 因此这类协议又称为滑动窗口协议
-
由于回退N帧协议的特性, 当通信线路质量不好时, 其信道利用率并不比停止-等待协议高
选择重传协议SR
数据链路层
-
Node : Host and router in the network
-
Link : The channel connects the adjacent nodes
-
数据链路层提供
- 网络介质的访问
- 跨介质的物理传输
-
第二层协议明确了
- 在链路上交换的数据格式
- 在链路上的两个节点的行为
-
在数据链路层中, 过程就是协议, procedure == protocol
-
在两端校验帧是否正确, 如果正确交付第三层, 否则进行相应的处理
局域网和数据链路层
-
主要任务
- 错误识别 (Error notification)
- 网络拓扑的控制 (Network topology)
- 流控制 (Flow control)
-
第一层和第二层的区别
第一层 第二层 无法与上层通信 通过LLC (Logical Link Control) 与上层通信 无法确定哪台主机将会传输或接受二进制数据 通过MAC (Media Access Control) 确定 无法命名或识别主机 通过寻址(或命名)过程来实现 仅仅能描述比特流 通过帧来组织/分组比特
第二层提供的服务
-
提供给网络层的三种服务
- 没有确认的无连接服务 (最弱, 最不靠谱)
- 发送取出就行, 不用等收到确认
- 链接可靠
- 实时任务, 比较高效
- 适用于大多数局域网
- 带有确认的无连接服务
- 链接不可靠
- 例如无线网络: 需要保证一定的通信质量(比如无线网络的传输), 同时会损失一定的性能
- 带有确认的连接服务
- 例如蓝牙: 需要先确定绑定关系, 才能进行通信
- 没有确认的无连接服务 (最弱, 最不靠谱)
常见的局域网介质访问控制
-
以太网(Ethernet)
- 逻辑总线拓扑(信息流在线性总线上), 物理星形或扩展星形拓扑(连线为星形)
-
令牌环(Token Ring)
- 逻辑环拓扑(信息流在一个环中), 物理星形拓扑(以星形连接)
-
光纤分布式数据接口(FDDI)
- 逻辑环拓扑(信息流在一个环中), 物理双环拓扑
介质访问控制
确定性MAC协议
-
Token Ring , FDDI
-
特殊数据令牌在环中循环
-
当主机收到令牌时, 可以传输数据而不是令牌
-
当发送的帧返回发送器时, 站点将发送新令牌
非确定性MAC协议
-
Ethernet
-
随机, 先到先得
-
这种协议被称为 载波监听多点接入/碰撞检测 Carrier Sense Multiple Access with Collision Detection(CSMA/CD)
-
为了使用这种共享介质技术, 以太网允许网络设备为传输权进行仲裁
-
适用于总线结构的以太网
局域网数据传输方式
-
单播(unicast)
- 将单个数据包从源发送到网络上的单个目标
-
多播(multicast)
- 由多个数据包组成, 发送到网络上特点节点子集
-
广播(broadcast)
- 由多个数据包组成, 发送到网络上所有节点
点对点协议PPP
-
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
-
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法, 主要由以下三部分构成
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP: 用于建立, 配置以及测试数据链路的连接
- 一套网络控制协议NCPs: 其中的每一个协议支持不同的网络层协议
-
帧格式
透明传输
面向字节的异步链路采用插入转移字符的字节填充法
面向比特的同步链路采用插入比特0的比特填充法
差错检测
-
接收方每收到一个PPP帧, 就进行CRC检验, 若CRC检验正确, 就收下这个帧; 反之, 就丢弃这个帧, 使用PPP的数据链路层向上提供不可靠传输服务
工作状态
媒体接入控制
-
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用, 即媒体接入控制MAC(Medium Access Control)
静态划分信道
信道复用
-
复用(Multiplexing)是通信技术中的一个重要概念, 复用就是通过一条物理线路同时传输多路用户的信号
频分复用FDM
-
频分复用的所有用户同时占用不同的频带资源并行通信
时分复用TDM
-
时分复用的所有用户在不同的时间占用相同的频带宽度
波分复用WDM
码分复用CDM
-
码分复用CDM是另一种共享信道的方法, 实际上, 由于该技术主要用于多址接入, 人们更常用的名词是码分多址CDMA(Code Division Multiple Access)
-
同理, 频分复用FDM和时分复用TDM同样可用于多址接入, 相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)
-
简单理解
- 复用: 将单一媒体的频带资源划分成很多子信道, 这些子信道之间相互独立, 互不干扰, 从媒体的整体频带资源上看, 每个子信道只占用该媒体频带资源的一部分
- 多址(更确切地应该称为多点接入): 处理的是动态分配信道给用户, 这在用户仅仅暂时性地占用信道的应用中是必须的, 而所有的移动通信系统基本上都属于这种情况, 相反, 在信道永久性地分配给用户的应用中, 多址是不需要的(对于无线广播或电视广播站就是这样的)
- 某种程度上, FDMA, TDMA, CDMA可以分别看成是FDM, TDM, CDM的应用
-
CDM的每一个用户可以在同样的时间使用同样的频带进行通信
-
由于各用户使用经过特殊挑选的不同码型, 因此各用户之间不会造成干扰
动态接入控制
随机接入
-
背景
CSMA/CD协议
-
载波监听多址接入/碰撞检测 CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
-
CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中, 现在的以太网基于交换机和全双工连接, 不会有碰撞, 因此没有必要使用CSMA/CD协议
-
争用期(碰撞窗口)
-
最小帧长
-
最大帧长
-
截断二进制指数退避算法
-
信道利用率
-
帧发送流程
-
帧接收流程
CSMA/CA协议
-
载波监听多址接入/碰撞避免 CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)
-
问题: 既然CSMA/CD协议已经成功地应用于使用广播信道的有线局域网, 那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
-
在无线局域网中, 仍然可以使用载波监听多址接入CSMA, 即在发送帧之前先对传输媒体进行载波监听, 若发现有其他站在发送帧, 就推迟发送以免发生碰撞
-
在无线局域网中, 不能使用碰撞检测CD, 原因如下
-
由于无线信道的传输条件特殊, 其信号强度的动态范围非常大, 无线网卡上接受到的信号强度往往会远远小于发送信号的强度(可能相差百万倍), 如果要在无线网卡上实现碰撞检测CD, 对硬件的要求非常高
-
即使能够在硬件上实现无线局域网的碰撞检测功能, 但由于无线电波传播的特殊性(存在隐蔽站问题), 进行碰撞检测的意义也不大
-
-
-
由于不可能避免所有的碰撞, 并且无线信道误码率较高, 802.11标准还使用了 数据链路层确认机制(停止-等待协议) 来保证数据被正确接收
-
分布式协调功能DCF(Distributed Coordination Function) 在DCF方式下, 没有中心控制站点, 每个站点使用CSMA/CA协议通过争用信道来获取发送权, 这是802.11定义的默认方式
-
点协调功能PCF(Point Coordination Function) PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制), 是802.11定义的可选方式, 在实际中较少使用
-
帧间间隔IFS(InterFrame Space)
-
802.11标准规定, 所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧, 这段时间称为帧间间隔IFS
-
-
工作原理
-
退避算法
-
信道预约和虚拟载波监听
以太网 和 CSMA/CD
局域网标准
-
定义了物理介质和连接器(用于将设备连接到介质)
-
定义了设备之间在数据链路层通信的方式
-
数据链路层定义了如何在物理介质上传输数据
-
数据链路层定义了如何封装(encapsulate)特定协议的流量(traffic), 以便去往不同上层协议的流量在到达堆栈时可以使用相同的通道
-
MAC(Media Access Control)子层
- 定义如何在物理线路上传输帧(frame)
- 处理物理寻址
- 定义网络拓扑
- 定义线路规则
-
LLC(Logical Link Control)子层
- 逻辑上标识不同的协议类型, 然后封装它们, 兼容不同介质的访问
- 使用SAP标识符执行逻辑标识, 用来做发送的位置的标识
- LLC帧的类型取决于上层协议期望的标识符, 对上层服务进行支持
MAC(介质访问控制)子层
MAC地址
-
MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中, 因此MAC地址也被称为硬件地址
-
MAC地址有时也被称为物理地址
-
一般情况下, 用户主机包含两个网络适配器: 有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡), 每个网络适配器都有一个全球唯一的MAC地址, 而交换机和路由器往往拥有更多的网络接口, 所以会拥有更多的MAC地址. 综上所述, 严格来说, MAC地址是对网络上各接口的唯一标识, 而不是对网络上各设备的唯一标识
IEEE 802局域网的MAC地址格式
IEEE 802局域网的MAC地址发送顺序
-
字节发送顺序: 第一字节 ----> 第六字节
-
字节内的比特发送顺序: b0 ----> b7
帧格式
-
以字节为单位进行帧结构描述
-
有802.3的规范和以太网的规范
-
MAC介质访问控制子层的帧结构
前导码 preamble
-
告诉接收方有一帧即将到来
-
使用曼切斯特编码, 无传输的时候是0电平
目的和源地址 dest.add / source.add
-
目的地址 : 单播, 多播, 广播地址
-
源地址 : 始终是单播地址
-
目的地址在前的好处 : 交换机等看到目的地址就可以进行判断, 提高效率
长度字段 length
长度字段指示在该字段之后且在帧检查序列字段之前的数据字节数
-
早期规范放的是长度, 指定数据长度, 以太网标准下则是用type来完成这部分内容, 指定后面的Data是IP还是IPX的报文数据
-
没有长度数据也能计算出长度, 通过有电平长度就可以计算出数据的长度
-
数据长度是有限制的
-
保证length的数据大于数据报的最大长度即可保证是表示type, 保证和之前兼容
数据字段 data
-
数据长度有限制
-
可能表示IP, 也可能表示IPX
FCS字段
-
循环冗余校验
-
发送设备创建CRC
-
接收设备重新计算CRC, 以检查在传输过程中可能对帧造成的损坏
-
发送方用有效帧的内容除以一个数, 取得的余数放到这个位置, 进行发送, 接收方也会将这个帧的内容除以那个数, 然后将得到的进行比较, 判断是否出现错误
-
FCS正确不一定保证数据是正确的, 可能是几次错误后导致的, 但这种出错率非常低
-
CRC错误, 有时候直接抛弃, 有时候还要再校验
LLC(逻辑链路控制)子层
-
LLC通过单个链路管理设备之间的通信
-
LLC在IEEE 802.2规范中定义, 并且支持无连接和面向连接(connect-oriented)的服务
-
LLC允许部分数据链路层独立于现有技术运行, 单个LLC子层可以与不同的MAC子层兼容
封装
-
LLC服务上层, LLC会放在packet前面, 然后再做一次封装
-
第二次封装则为LLC向MAC请求封装操作
-
LLC获取网络协议数据(数据包, packet), 并添加更多控制信息以帮助将数据包传递到其目的地址
-
它添加了802.2规范的两个寻址组件, 以在每一端标识上层协议
- 目标服务访问点(DSAP)
- 源服务访问点(SSAP)
-
然后, 这重新打包的数据将传输到MAC以进一步封装数据
MAC子层上的介质访问控制
十六进制数作为MAC地址
-
MAC地址为48位, 始终表示为12个十六进制数
-
IEEE管理的前6个十六进制数(从左到右)标识制造商(manufacturer)或供应商(vendor), 并包括组织唯一标识符(OUI)
- OUI是生产的厂商, 比如00602F标识Cisco, 然后可以使用后面24个bit进行自己的编码
- 一个厂商是可以买多个OUI
- 第一个bit取0表示这个地址是一个单播地址, 取1则表示是一个多播地址
- 第二个bit取0表示这个地址是全球唯一地址, 取1则表示是一个本地唯一地址
-
后面的6位十六进制数包括接口序列号, 有特定供应商管理
以太网802.3广播
-
广播
- 目标MAC: 全1 (FFFF FFFF FFFF)
- 保证所有的设备都能收到这个地址
- 会导致非目的主机进行地址解析
-
广播会不必要地打断电台, 从而严重影响电台性能
-
因此, 仅在以下情况下才应使用广播
- 目的地的MAC地址未知
- 目的地是所有主机
-
非必要情况下尽量不使用广播
以太网操作
-
以太网802.3规范下为总线拓扑方式, 是广播网络, 也就是每个站都可以看到所有帧, 而不管是否是目的地址
-
通过MAC地址判断站点是否为目的地址
-
目标站在OSI层上发送数据, 其他节点丢弃帧
-
先监听, 然后再传输
-
广播 jam 信号
- 是一个32bit的全1数据帧表示出现了冲突
-
发送碰撞
- 两个设备同时使用链路发送电信号, 则会出现错误
- 如果有冲突, 则会一直监听总线, 等到空闲则可以组织数据帧发送
-
发送冲突的设备, 根据特定的回退算法, 退回适当的时间, 然后重新传输
以太网的CSMA/CD (带有冲突检测的载波侦听多路存取)
-
首先设备发送数据
-
开始监听链路是否忙, 如果忙, 则过一阵再来看看
-
如果不忙, 则开始准备发送
- 如果有错误, 则到9, 表示有冲突, 广播一个jam signal, 把自己尝试的次数 + 1(重发有一定限度)
- 尝试次数过多, 会向上层协议传输网络不可用
- 尝试次数在范围内, 则到13计算一个回退时间, 来再次尝试, 回退时间单位会保证A和D的时间差能保证第一个已经用完电路来避免冲突
-
如果没有错误则一直传输到结束
无线局域网 和 CSMA/CA
无线局域网
-
无线(wireless)局域网
- 基于单元的通信
- 电台发送的信号只能被附近的电台接收
- 短距离传输
-
无线局域网标准
- IEEE 802.11
- 使用直接序列扩频(DSSS)技术
- 也称为 Wi-Fi
- IEEE 802.11b
- 使用高速直连方案
- IEEE 802.11a
- 使用正交频分复用(OFDM)技术
- IEEE 802.11g
- 使用正交频分复用(OFDM)技术
- IEEE 802.11n
- 目前使用较多
- IEEE 802.11
-
无线局域网分为两类
- 有基础设施拓扑网络(Infrastructure mode)
- 无基础设施拓扑网络(ad-hoc mode)
-
基础设施是提前建设好的基站, 可以覆盖一定的区域
- 无线网卡和基础设施通信
无线局域网拓扑
-
该图为由基础设施的无线网络拓扑结构
-
DS: 分配系统
-
上网要通过网关
无线局域网的基础设施
-
基本服务集(BSS)包括一个基站(BS)和几个无线主机
- 所有主机都可以在本地BSS中直接相互通信
- 基站中两个主机之间是不能直接相连
-
接入点(AP)充当基础架构模式的基站(BS)
- AP硬连接到有线局域网, 以提供Internet访问和与有线网络的连接
- 安装AP后, 将分配服务集标识符(SSID)和通道
-
一个BSS可以通过分发系统(DS)连接到另一个BSS, 并构造一个扩展服务集(ESS)
访问过程
-
在WLAN中激活客户端时, 它将开始"侦听"与之"关联"的兼容设备
-
这被称为"扫描"
- 主动扫描
- 导致从寻求加入网络的无线节点发送探测(probe)请求
- 探测请求将包含它希望加入的网络的服务集标识符(SSID)
- 当找到具有相同SSID的AP时, 该AP将发出探测相应
- 身份验证和关联步骤已完成
- 移动端发出请求帧, 但AP不发送自己的信息
- AP比较安全, 不用发送出自己的SSID
- 被动扫描
- 侦听由AP(基础设施模式)和对等节点(ad-hoc)传输的信标管理帧, 包含自己的SSID信息
- 当节点接收到包含要尝试加入的网络的SSID的信标时, 将尝试加入该网络
- 被动扫描是一个连续的过程, 并且随着信号强度的变化, 节点可能会与AP关联或分离, 也是因为强度变化, 所以连接状态需要维持
- 主动扫描
-
需要和AP相连, 才能向AP发送数据帧
无线局域网的帧结构
-
WLAN不使用标准的802.3帧
-
帧有三种类型
- 控制帧
- 管理帧
- 数据帧(仅数据帧类似于802.3帧)
-
无线数据帧和802.3帧的有效载荷为1500字节
- 但是, 以太帧不能超过1518字节, 而无线帧可能高达2346字节 (是因为在无线情况下, 使用的是有确认的信息, 增加无线帧有效数据大小来对冲确认的信息的损耗)
- 无线网络帧的大小也不会太大, 尽量避免转换成有线帧的时候出现帧的拆分, 也就是说大小一般在1500字节一下, 通常, WLAN帧大小将被限制为1518字节, 因为它最常连接到有线以太网
数据帧结构 (802.11 无线网)
-
去往AP和来自AP是我们需要重点确认的
-
WEP规格, Wired Equivalent Privacy(有线等效保密)
-
持续期(重要)
-
有时间窗口, 如果超时没有收到信号, 则进行重传
-
地址分类
- ad-hoc用地址4
- 有基础设施用地址1,2,3
-
地址详解
-
- 扩展星形拓扑
- 去往AP和来自AP显然不能全为1
-
CSMA/CA
为什么我们需要CSMA/CA
-
冲突(Collisions)可能发生在WLAM中, 但是站点只能知道附近的传输, 因此CSMA/CD不是一个好的选择
-
Hidden Station Problem (左图) : 当A将数据传输到B时, C无法检测到A和B之间的传输, 因此可能会决定将数据传输到B并导致B发生冲突
-
Exposed Station Problem (右图) : 当B将数据传输到A时, C可以检测到传输, 因此C不会将数据传输到D, 但这是一个错误 (听到不应该听到的信号)
-
多路复用机制(Mechanism)
-
以太网
- 信号被传输到电缆上的所有的站
- 发送站检测到冲突
- 一次只能在信道上发送一个有效帧
-
WLAN
- 信号通过电缆传输到发送站附近的站 (相邻, 不可以跨越有效距离发送)
- MAC协议必须尽最大努力确保仅发送站靠近接收站, 发送方只能发送一路信号给接收方, 不能有多个发送方同时发送信号给一个接收点
- 接收方检测确定冲突
- 一次可以在通道上传输多个有效帧, 但不可以产生冲突
CSMA/CA (带有冲突避免的载波侦听多路访问)
-
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- 发送站点在发送数据前, 以控制短帧刺激接受站点发送应答短帧, 使接收站点周围的站点监听到该帧, 从而在一定时间内避免数据发送
- 基本过程
- A向B发送RTS (Request To Send, 请求发送) 帧, A周围的站点在一定时间内不发生数据, 以保证CTS帧返回给A
- B向A回答CTS (Clear To Send, 清除发送) 帧, B周围的站点在一定时间内不发生数据, 以保证A发送完数据
- A开始发送
- 若控制帧RTS和CTS发生冲突, 采用二进制指数后退算法等待随机时间, 再重新开始 (当A和A传播范围外的C同时向B发送RTS时)
过程
-
为避免冲突, 802.11所有站点在完成一个事务后必须等待一段时间才能进行下一个动作, 这个时间被称为IFS, 具体取决于帧的类型
-
SIFS (Short Inter-Frame Space) : 短帧间间隔 28us, 用于本设备接收发送状态转换, 不足够源站接收CTS
-
DIFS (Distributed Inter-Frame Space) : 分布协调功能帧间间隔 128us (多个节点进行协调)
-
应答CTS, 等待SIFS后发送数据
-
过程中的时间写入时间数据标记位
-
NAV(网络分配向量) : NAV是一开始就进行预估了, 别的节点抢到了节点时, 我们会减掉别人正常通信的时间, 不是一直累计下去
-
下一次经过争用窗口来抢
实例
-
A的反应时间少, 抢到使用权
-
E加入进来的话也会计算出一个退避时间
实际数据传输率
-
当源节点发送帧时, 接收节点将返回肯定确定(ACK)
- 这可能导致消耗50%的可用带宽
- 在额定为11Mbps的802.11b无线局域网上, 这会将实际数据吞吐量降低到最大5.0到5.5Mbps
-
网络性能也会受到信号强度的影响
- 随着信号变弱, 可以调用自适应速率选择(ARS)
- 信号会受到距离影响, 越远信号越弱, 功率越低, 带宽不能稳定到初始带宽
- 传输单元会将数据速率从11Mbps降低到5.5Mbps, 从5.5Mbps降低到2Mbps或从2Mbps到1Mbps
第二层设备
网卡(NICs)
-
NIC执行重要的第二层数据链路层功能
- 逻辑链接控制 : 与计算机上层通信
- 媒体访问控制 : 提供对共享访问媒体的结构化访问
- 命名 : 提供唯一的MAC地址标识符
- 成帧 : 封装过程的一部分, 打包比特以进行传输
- 信号 : 使用内置收发器创建信号并与媒体接口 (也有第一层功能, 变为01信号)
网桥(Bridges)
-
网桥将流量划分为多个部分, 并根据MAC地址而不是协议对流量进行过滤
-
网桥可以通过减少较大的冲突域来提高网络性能
- 大的冲突域变少, 碰撞和冲突会变少, 但是网桥会成为一个瓶颈 (网桥将数据帧检验存储再转发)
- 导致延迟提高 10-20%
-
在从网络的一个网段到其他网段的流量较低的情况下, 网桥最有效, 当网段之间的流量变大时, 网桥会成为瓶颈, 并减慢通信速度
-
一般是处理两个不同的分段, 相对比较简单
-
是一种储存转发设备, 因为它必须接收整个帧并在转发前校验CRC(事实上这必要性不大)
透明网桥
-
MAC表放到缓存的位置, 刚启动时是空表, 之后逐渐学习
- MAC地址表是有生命周期的, 如果计时超过一个阈值没有刺激刷新MAC表, 则会刷新表
- 比如笔记本更换接入地址
-
"透明"指局域网中的站名并不知道所发送的帧经过哪几个网桥, 因为网桥对各站来说是看不见的
-
原理
- 从A发出的帧从接口进入网桥, 则从这个接口发出的帧就一定能到达A, 网桥每收到一个帧, 就记下其源地址和进入网桥的接口, 写入转发表
- 在收到一个新的帧时, 在转发表匹配此帧的目的地址, 找到对应的接口并转发
- 在网桥的转发表中写入的信息除了地址和接口外, 还有帧进入网桥的时间
- 拓扑可能经常变化
- 站点也可能会更换适配器(改变了站点的地址)
- 站点并非总是处于工作状态
- 把每个帧到达网桥的时间登记下来, 就可以在转发表中只保留网络拓扑的最新状态信息, 使得网桥中的转发表能反映当前网络的最新拓扑
-
问题 : 网络上的设备要发送数据但不知道目的地址时
- 向网络上的所有设备发送广播, 因为希望数据帧能够发送到全网, 尽可能到达目的地
- 由于网络上的每个设备都必须注意此类广播, 因此网桥始终会转发这些广播
-
广播过多会导致广播风暴, 并可能导致
- 网络延迟 (network time-outs)
- 交通减速 (traffic slowdowns)
- 低于可接受的性能
交换机(Switches)
-
执行两个基本操作
- 切换数据帧 : 在输入介质上接收帧, 然后将其传输到输出介质
- 维护交换操作 : 交换器建立和维护交换表并搜索循环, 路由器构建并维护路由表和交换表
-
交换是一项通过减少流量和缓解堵塞来缓解以太网LAN拥塞的技术
- 交换机创建专用的网段或点对点连接, 并将这些网段连接到交换机内的虚拟网络中
- 之所以称为虚拟电路, 是因为它仅在两个节点需要通信时才存在, 并且在交换机内建立, 内部有一个高带宽的总线
- 可以将每个交换机端口视为一个微桥, 该过程称为微分段
- 每个交换机端口将介质的全部带宽提供给每个主机
-
局域网交换机可减少冲突域的大小
-
但是连接到交换机的所有主机仍位于同一个广播域
- 即通过LAN交换机连接的所有其他节点仍将看到来自一个节点的广播
- 交换机不能划分广播域(端口到所有端口转发)
-
交换机连接的是一个局域网, 路由器连接的是不同局域网
自学习和转发帧
-
明确–转发 (只有从接口进入交换机时才会登记)
-
盲目–泛洪 (出接口不登记)
-
多台主机共享接口 (同接口端主机相互发送帧时, 不会被交换机接口转发, 而是直接被丢弃)
-
有效时间
生成树协议STP
-
背景
-
如何提高以太网可靠性?
- 添加冗余链路可以提高以太网的可靠性
-
但是, 冗余链路会形成网络环路
-
广播风暴: 大量消耗网络资源, 使得网络无法正常转发其他数据帧
-
主机收到重复的广播帧: 大量消耗主机资源
-
交换机的帧交换表震荡(漂移)
-
-
-
生成树协议STP(Spanning Tree Protocol): 可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
-
无论交换机之间采用怎样的物理连接, 交换机都能够自动计算并构建一个逻辑上没有环路的网络, 其逻辑拓扑结构必须是树型的(无逻辑环路)
-
最终生成的树型逻辑拓扑要确保连通整个网络
-
当首次连接交换机或网络物理拓扑发生变化时, 交换机都将进行生成树的重新计算
-
交换机划分冲突域
-
转发的速度明显加快, 因为它们在硬件中进行切换, 而网桥在软件中进行切换
-
可以使用交换机连接10Mbps以太网LAN和100Mbps以太网LAN
-
在交换式以太网实现中可用带宽可以接近100%
-
共享以太网网络的容器不足其全部容量的30%至40%时, 其性能最佳
-
一些交换机支持直通交换, 这减少了延迟, 而网桥仅支持存储转发交换(存储转发, 存下来检验转发)
- 直通交换 : 快速转发, 不做校验, 只看前6个字节的MAC地址
- 局域网 : 网速比较快, 传输速率高, 网线比较短, 可以认为是基本没有错误的, 所有可以进行直通转发
路由器划分冲突域
-
路由器可以创建最高级别的细分
- 创建较小的冲突域
- 创建较小的广播域 : 除非经过编程, 否则路由器不会转发广播
-
路由器通过检查数据包上的目标逻辑地址, 然后在其路由表中查找转发指令来完成数据包的转发
-
由于路由器比网桥执行更多的功能, 因此它们以更高的延迟率运行
-
路由器可以用作网关, 用于连接不同的网络媒体和不同的LAN技术
-
是根据逻辑地址(IP)进行转发, 不再是MAC
集线器和交换机的区别
-
集线器
-
使用双绞线和集线器HUB的星型以太网
-
使用集线器的以太网在逻辑上仍是一个总线网, 各站共享总线资源, 使用的还是CSMA/CD协议
-
集线器只工作在物理层, 它的每个接口仅简单地转发比特, 不进行碰撞检测(由各站的网卡检测)
-
集线器一般都有少量的容错能力和网络管理功能, 例如, 若网络中某个网卡出了故障, 不停地发送帧, 此时, 集线器可以检测到这个问题, 在内部断开出故障网卡的连线, 使整个以太网仍然能正常工作
-
-
使用集线器HUB在物理层扩展以太网
-
-
交换机
-
以太网交换机通常都有多个接口, 每个接口都可以直接与一台主机或另一个以太网交换机相连, 一般都工作在全双工方式
-
以太网交换机具有并行性, 能同时连通多对接口, 使多对主机能同时通信, 无碰撞(不使用CSMA/CD协议)
-
以太网交换机一般都具有多种速率的接口
-
以太网交换机工作在数据链路层(也包括物理层), 它收到帧后, 在帧交换表中查找帧的目的MAC地址所对应的接口号, 然后通过该接口转发帧
-
以太网交换机是一种即插即用设备, 其内部的帧交换表是通过自学习算法自动地逐渐建立起来的
-
帧的两种转发方式
- 存储转发
- 直通交换: 采用基于硬件的交叉矩阵(交换时延非常小, 但不检查帧是否有差错)
-
-
对比集线器和交换机
-
原以太网
-
扩展以太网
-
总结
-
虚拟局域网VLAN
-
背景
-
随着交换式以太网规模的扩大, 广播域相应扩大
-
巨大的广播域会带来很多弊端
- 广播风暴
- 难以管理和维护
- 潜在的安全问题
-
分割广播域的方法
- 使用路由器可以隔离广播域, 但是成本高
- 虚拟局域网VLAN技术应运而生
-
-
虚拟局域网VLAN(Virtual Local Area Network)
-
将局域网内的设备划分成与物理位置无关的逻辑组的技术, 这些逻辑组具有某些共同的需求
-