数据链路层
一、数据链路层概述
1、基本概念
1)数据链路层模型
2)数字管道
常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
3)链路与数据链路
链路是一条点到点的物理线路段,中间没有任何其他的交换结点。(一条链路只是一条通路的一个组成部分)
数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现最常用的方法是使用适配(即网卡)来实现这些协议的硬件和软件。网卡包括了数据链路层和物理层这两层的功能。
4)信道类型
- 点对点信道:这种信道使用一对一的点对点通信方式。
- 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
5)帧
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并且上给网络层
2、三个基本问题
1)封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界。
用控制字符进行帧定界
2)透明传输
透明传输:用户不用关心如何传输,只关心传输什么
发送端的数据链路层在数据中出现控制字符“SOH〞或“EOT”的前面插入一个转义字
符“ESC"(其十六进制编码是 1B)。
字节填充:接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
3)差错检测
传输过程中可能会产生比特差错。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER,误码率与信噪比有很大的关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
循环冗余校验(CRC)
1. 特点
检错能力极强、开销很小、易于实现
2. 原理
- 收方和发方规定一个相同的生成多项式
- 发送方:数据后添加x个冗余位(0)(x = 生成多项式的最高次幂位 or 二进制位串n-1位)
- 计算余数(模2运算):够位商1,不够商0,各位相加不进位(异或运算)
- 用余数替换冗余位
- 接收方:做相同的运算,如果余数位0则接收数据,不为0,丢掉该数据
CRC是一种无比特差错,而不是无传输差错的检测机制
OSI/RM模型的观点:数据链路层要做成无传输差错的!但这种理念目前不被接受!
- 接近于1的概率能够检测出数据是否正确:算法性能
- 以接近于1的概率实现无比特差错的传输(数据链路角度):说明CRC检测能力强,能够准确的检出是否有错误
- 不可靠传输(应用层角度):丢失、重传 --> 需要网络层tcp实现可靠传输
二、点对点信道(PPP协议)
1、PPP协议概述
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
2、PPP协议的要求
1)需要满足的要求
- 简单
- 封装成帧
- 透明性
- 支持多种网络层协议
- 支持多种类型链路
- 差错检测
- 检测连接状态
- 最大传送单元MTU:1500字节(最小64字节)
- 网络层地址协商
- 数据压缩协商
2)不需要满足的要求
- 纠错
- 流量控制
- 序号
- 多点线路
- 半双工或单工链路
3、PPP协议的组成
- HDLC(高级数据链路层协议):用于异步串行或同步串行介质
- LCP(链路控制协议):建立并维护数据链路连接
- NCP(网络控制协议):提供点到点连接上多种网络层协议的支持
4、PPP协议帧格式
- 标志宇段F=0x7E(符号"0x"表示后面的字符是十六进制表示,十六进制的 7E的二进制表示是 01111110)
- 地址字段 A只置为0xFF,地址字段实际上并不起作用
- 控制字段C通常置为 0x03
- PPP是面向字节的,所有的PPP帧的长度都是整数字节
PPP协议帧最大不超1508字节
5、零比特填充法
在发送端,只要发现有5个连续1,则立即填入一个0
接收端对帧中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除
出去开始和结束的0x7E,不会有第二个连续的6个1出现
6、PPP协议的特点
PPP特点:不使用序号和确认机制
- 在数据链路层出现差错的概率不大时,使用比较简单的 PPP协议较为合理。
- 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
- 帧检验序列FCS 字段可保证无差错接受。
7、PPP协议的工作状态
当用户拨号接入ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC向路由器发送一系列的LCP分组(封装成多个PPP帧)。
家用网络控制由LCP管理
这些分组及其响应选择一些PPP参数,进行网络层配置(NCP的配置),NCP给新接入的 PC 机分配一个临时的IP地址,使PC机成为因特网上的一个主机。
通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
三、广播信道
1、局域网的拓扑
2、局域网的特点与优点
特点
网络为一个单位所拥有,且地理范围和站点数目均有限。
优点
具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
便于系统的扩展和逐渐地演变,各设备的位置可灵活调螫和政变。
提高了系统的可靠性、可用性和生存性。
3、认识以太网
最初的以太网是将许多计算机都连接到一根总线上。
当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
- 同在一个冲突域,会产生数据冲突的问题
- 拒收是设备主动行为,会产生安全问题
4、CSMA/CD 载波侦听多点接入/碰撞检测
1)CSMA/CD解释
- “多点接入CS”:多点接入的方式连接在一根总线
- “载波监听MA“:每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据(电压阈值),如果有,则暂时不要发送数据,以免发生碰撞。
- “碰撞检测CD”:计算机边发送数据边检测信道上的信号电压大小。
2)CSMA/CD过程
- 适配器获取数据报,创建帧
- 发送前:侦听信道CS
- 闲:开始传送帧
- 忙:一直等到闲再发送
- 发送过程中:冲突检测CD
- 没有冲突:成功
- 检测到冲突:放弃,之后尝试重发
- 发送方适配器检测到冲突,放弃、发送一个人为干扰信号(Jam信号),所有听到冲突的适配器也是如此(强化冲突:让所有站点都知道冲突)
- 如果放弃,适配器进入二进制指数退避状态
3)CSMA/CD基本问题
单次传播时延:ε
1、边发送边监听,监听0~2ε,超过2ε说明没有发生碰撞
2、碰撞后停止发送,等待一个随机时间(二进制指数退避算法)重发
3、强化冲突:发送一个人为干扰信号(Jam信号:32bit/48bit),让所有站点都知道冲突,耗时τ
4、帧间最小距离:9.6μs,用于清理缓存、处理数据
5、如果前64字节(512bit)不碰撞,那么后续不会再碰撞了。10Mbps以太网的征用期为512bit时间
$10Mbps * 51.2μs = 512bit = 64Byte$
对于100Mb/s的以太网,争用时间为5.12 μs
4)二进制指数退避算法
2ε:基本退避时间/征用期,10Mbps以太网的征用期为512bit时间
$K=min重传次数, 10$
$r:0,2^{k}-1$(随机数)
$T_{wait}=r·2ε$
$K>=16$ --> 报告应用层 再次冲突概率:$1/K$
5)补:计网3-25
5、CSMA/CA 载波侦听多路访问/冲突避免
1)CSMA/CA概述
802.11冲突:2+ 站点(AP或者站点)在同一个时刻发送
CSMA:发送前侦听信道,不会和其它节点正在进行的传输发生冲突
802.11没有冲突检测(无法检测冲突:自身信号远远大于其他节点信号)
无法CD,一旦发送一股脑全部发送完毕,不CD
为了避免无CD带来的信道利用率低的问题,事前进行冲突避免
2)CSMA/CA过程
发送方
- 如果站点侦测到信道空闲持续DIFS长,则传输整个帧 (no CD)
- 如果侦测到信道忙碌,那么 选择一个随机回退值,并在信道空闲时递减该值;如果信道忙碌,回退值不会变化
- 到数到0时(只生在信道闲时)发送整个帧如果没有收到ACK, 增加回退值,重复2
接收方
如果帧正确,则在SIFS后发送ACK
3)冲突避免
无法完全避免冲突
两个站点相互隐藏
选择了非常靠近的随机回退值
允许发送方“预约”信道,而不是随机访问该信道:避免长数据帧的冲突
- 发送方首先使用CSMA向BS发送一个小的RTS分组 --> RTS可能会冲突(但是由于比较短,浪费信道较少)
- BS广播 clear-to-send CTS,作为RTS的响应
- CTS能够被所有涉及到的节点听到
- 发送方发送数据帧
- 其它节点抑制发送
采用小的预约分组,可以完全避免数据帧的冲突
四、以太网MAC层
1、MAC层概述
IEEE 802委员会把局域网的数据链路层拆分为两个子层
- 逻辑链路控制LLC
- 媒体接入控制MAC
2、MAC地址
在局域网中,硬件地址又称为物理地址,或MAC地址。
MAC地址(48bit) = IEEE指定前缀(24bit)+ 设备序号(24bit)
MAC地址全球唯一。但是可以伪造,并不安全
win修改本机mac地址
3、MAC帧格式
以太网v2格式
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数宇节的填充字段,以保证以太网的MAC 帧长不小于64字节。
MAC帧长度为64~1518字节
最大传输单元MTU长度为46~1500字节
4、无效的MAC帧
1、帧的长度不是整数个字节
2、用收到的帧检验序列FCS查出有差错
3、数据字段的长度不在46~1500字节之间
4、有效的MAC帧长度为64~1518字节之间
5、对于检查出的无效MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
五、扩展以太网
1、集线器
1)集线器概述
集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD协议,并共享逻辑上的总线。
2)集线器优缺点
优点
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的
通信。
扩大了局域网覆盖的地理范围。
缺点
碰撞域增大了,但总的吞吐量并未提高。
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
2、网桥
1)网桥概述
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC 地址,然后再确定将该帧转发到哪一个接口
2)网桥优缺点
优点
过滤通信量。
扩大了物理范围。
提高了可靠性。
可互连不同物理层、不同MAC 子层和不同速率(如10Mb/s和100Mb/s以太网)的局域网。
缺点
存储转发增加了时延。
在MAC 子层并没有流量控制功能。
具有不同MAC 子层的网段桥接在一起时时延更大。
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
3)透明网桥
透明网桥是即插即用设备。"透明"是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。
3、交换机
以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的差别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据
以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的接口繁忙时,发送帧的这两台主机的接口会把收到的帧暂存一下,以后再发送出去。
以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!