数据链路层
数据链路层
数据链路层的基本概念
- 结点:数据链路层上的结点主要是主机和路由器。由物理线路联接起来的两个结点,又叫相邻结点
- 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路
- 数据链路:两络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
- 帧:链路层的协议数据单元,作用是封装网络层数据报
差错检测
CRC
CRC(Cyclic Redundancy Check),即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点
观看B站教学视频
举例说明:
点到点链路的停止/等待协议
停止等待协议(stop-and-wait)是最简单但也是最基础的数据链路层协议。很多有关协议的基本概念都可以从这个协议中学习到。停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
无差错情况
有差错情况
每发完一个数据帧时,必须保留它的副本。数据帧和确认帧必须编号。每当发送一个帧时就启动一个计时器。
数据帧丢失或出错
ACK丢失
ACK迟到
信道利用率
SW协议的缺点及改进方向
- 缺点: 信道远远没有被数据比特填满
- 改进方向: 产生了两种协议,连续ARQ和选择重传ARQ
滑动窗口协议,连续ARQ与选择重传ARQ
滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输,提高网络吞吐量
当发送方发送大量的数据包时,接收方并不一定有能力全部接受。为解决这一矛盾,窗口控制应运而生。
既有窗口控制,便有发送窗口和接收窗口
当发送窗口和接收窗口的大小均为1时,该窗口协议就是等待重传协议了,故等待重传协议也叫做ARQ(Automatic Re Transmission Query)
但普通的ARQ信道利用率太低,当发生发送数据包丢失或ACK丢失等时,便会发生超时重传,这样RTT时间会大大增多,使得信道利用率大大降低,便有了连续ARQ和选择重传ARQ
连续ARQ
此时,我们增大发送窗口。大小区间为 ( 1, pow(2, n) - 1 ]
其中n为传输数据的bit数量
当某一个数据帧出错时,即使后面的N个数据帧正确到达,也要被被丢弃。并返回最后一个正确返回的ACK,提示发送方从第一个出错的数据帧处重新发送。因此,连续ARQ也被称为回退N帧协议(Go-Back-N)
选择重传ARQ
连续ARQ的缺点也非常明显,当数据帧出错时,发送方会回退N帧进行重传,浪费了时间。
为解决这一问题,加大接收窗口和接收缓存,以空间换时间
使用广播信道的数据链路层(CSMA/CD)
局域网的数据链路层
- 局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限
- 主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场
- 可以按照网络拓扑结构对局域网进行分类:
- 星形网
- 环形网
- 总线网
- 树形网
- 数据链路层的两个子层
- 逻辑链路控制 LLC (Logical Link Control)子层
- LLC子层与传输媒体无关,一般不考虑LLC子层
- 媒体接入控制 MAC (Medium Access Control)子层
- 决定谁获得媒体的使用权,即解决信道分配问题
- 逻辑链路控制 LLC (Logical Link Control)子层
- 适配器
- 网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”
- 主要功能
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
CSMA/CD协议
CSMA (Carries Sense Multiple Access) 是一种具有信道检测功能的分布式介质访问控制方法
在坚持CSMA的基础上增加冲突检测CD(Collision Detection)
CSMA/CD 表示载波监听多点接入/碰撞检测
- 多点接入: 说明这是总线型网络,许多主机以多点的方式连接到总线上
- 载波监听: 每个主机必须不停的监听信道.在发送前,如果监听到信道正在使用,就必须等待
- 碰撞检测: 在发送中, 如果监听到信道已有其他主机正在发送数据,就表示发生了碰撞.虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞
具体实现
- 记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞
- 当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (pow(2,k)-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
以太网
以太网是一种计算机局域网技术。IEEE组织的[IEEE 802.3](https://baike.baidu.com/item/IEEE 802.3/3684685)标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET
简单来说,以太网就是一种规范局域网如何工作的标准,也是现在最流行最普及的一套解决方案
使用广播信道的以太网
- 使用集线器的星形拓扑
- 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线
- 这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
- 以太网的信道利用率
- 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间
- 以太网的MAC层
- MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
- 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址
- 以太网帧格式
- 类型 标记上层使用的协议
- 数据 长度在46-1500之间 如果太小则需要填充
- FCS 帧检验序列 使用的是CRC检验方法
扩展的以太网
- 在物理层上扩展
- 用集线器组成更大的局域网都在一个碰撞域中
- 优点
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信
- 扩大了局域网覆盖的地理范围
- 缺点
- 碰撞域增大了,但总的吞吐量并未提高
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来
- 优点
- 用集线器组成更大的局域网都在一个碰撞域中
- 在数据链路层扩展以太网
- 在数据链路层扩展局域网是使用网桥
- 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发.网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
- 优点
- 过滤通信量
- 扩大了物理范围
- 提高了可靠性
- 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
- 缺点
- 存储转发增加了时延
- 在MAC 子层并没有流量控制功能
- 具有不同 MAC 子层的网段桥接在一起时时延更大
- 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴
- 优点
- 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发.网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
- 交换机
- 交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射.正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容
- 在数据链路层扩展局域网是使用网桥
虚拟局域网
- 虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
- 使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网
无线局域网
WLAN(Wireless Local Area Network)
- 采用无线通信技术的局域网
- 提供了移动接入的功能
- 节省投资,建网速度较快
- 支持便携设备联网
CSMA/CA协议
例题
0比特填充法,5个连续1后添加0
接受窗口同时受发送窗口的限制