数据链路层
考点归纳:
数据链路层功能:在物理层提供服务的基础上,向网络层提供服务,其主要功能是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
数据链路层使用的信道主要有以下两种类型:
- 点对点信道:使用一对一的点对点通信方式
- 广播信道:使用一对多的广播通信方式
3.1 使用点对点信道的数据链路层
-
链路 :从一个结点到相邻结点的一段物理线路(有线或无线)
-
数据链路:把实现 控制数据传输的协议的硬件和软件加到链路上
一般的适配器(即网卡)均包括数据链路层和物理层这两层的功能
-
帧:点对点信道的数据链路层的协议数据单元
-
点对点信道的数据链路层在进行通信的主要步骤:
-
三个基本问题: 封装成帧,透明传输,差错检测
①封装成帧
-
封装成帧:即直接在IP数据报前后分别添加首部和尾部,确定帧的界限,这就构成一个帧
-
添加首部和尾部的作用:进行帧定界(确定帧的界限);其中包含许多必要的控制信息
-
帧长:帧的数据部分加上帧首部和帧尾部的长度
-
最大传送单元MTU:链路层协议规定的所能传送的帧的数据部分长度上限
-
帧格式:
-
帧界定的方法:可用特殊的帧定界符,在ACSCII码中,用SOH(Start of Header)表示帧的首部开始,EOT(End of Transmission)表示帧的结束
-
帧界定的作用:判断收到的帧是否完整,不完整则丢弃
②透明传输
-
"透明"指:在数据链路层传输数据,无论什么样的比特组合的数据,都能够按照原样没有差错地通过数据链路层
-
透明传输中的问题:若数据中的某个字节的二进制代码恰好组成为帧界定符,就会出现错误
-
解决方法:字节填充,在控制字符和特殊字符前插入一个转义字符"ESC",而真正的首部和尾部前不加
③差错检测
-
目的:防止无效数据帧浪费后续路由上的传输和处理资源
-
比特差错:在传输中可能会产生比特差错,1可能变0,0可能变1
-
误码率BER:在一段时间内,传输错误的比特占传输比特总数的比率,与信噪比有关
-
为保证可靠性,通常通过循环冗余检验CRC来做差错检测。P74
-
CRC的局限性:只能实现无比特差错,不能实现无传输差错,只能判断收到的数据是否正确,其余均无法判断,并不是可靠传输
-
3.2 点对点协议 PPP P76
对于点对点的链路,目前使用最广泛的就是PPP协议
PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议
-
PPP协议的组成部分
(1)将IP数据报封装到串行链路的方法
PPP既支持异步链路,也支持面向比特的同步链路 IP数据报属于PPP帧中的信息部分,收到MTU限制
(2)用来建立、配置和测试链路连接的链路控制协议LCP
(3)网络控制协议NCP,其中每一个协议支持不同的网络层协议
-
PPP协议的帧格式(1 1 1 2 2 1 =8) ①首部:
-
标志字段F:规定为0x7E,表示一个帧的开始或结束,即帧的定界符
-
地址字段A:规定为0xFF(1111 1111)
-
控制字段C:规定为0x03(0000 0011)
-
协议字段:(了解)
- 当协议字段为0x0021时,PPP帧的信息字段就是IP数据报
- 当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据
- 当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据
②信息字段:长度可变,不超过1500字节
③尾部:
- 帧检验序列FSC:CRC中使用的冗余码
- 标志字段F:表示帧的结束
-
-
PPP协议特点:
- 简单,提供不可靠的数据报服务
- 只检错,无纠错
- 不使用序号和确认机制
- 面向字节
-
透明传输的实现方法:
-
字节填充(比特填充标志法)——PPP使用异步传输
使用一种特殊的字符填充法:- 将信息字段中出现的每一个0x7E字节变为两字节序列(0x7D, 0x5E)
- 若信息字段中出现一个0x7D,则转变成为两字节序列(0x7D, 0x5D)
- ASCII 码的控制字符(即数值小于 0x20 的字符),则在前面要加入0x7D,同时将该字符的编码加以改变
-
零比特填充——PPP使用同步传输
只要发现有5个连续的1,则立即填入一个0
-
-
PPP 协议的工作状态:
链路静止-(建立物理层连接)-链路建立-(LCP配置协商)-鉴别-网络层协议-(NCP配置协商)-链路打开,网络层建立(释放时倒过来)
3.3 使用广播信道的数据链路层 P82
注:广播信道是一种一对多的通信,局域网使用的就是广播信道
-
局域网的数据链路层(局域网的数据链路层被拆分为了两个子层)
- 逻辑链路控制LLC子层(已不使用):与传输媒体无关
- 媒体接入控制MAC子层:MAC层和局域网都对LLC子层来说是透明的
-
CSMA/CD 协议
以太网采用CSMA/CD协议的方式来协调总线上各计算机的工作。在使用CSMA/CD协议的时候,一个站不可能同时进行发送和接收,因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工)
CSMA/CD是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)的缩写,下面是CSMA/CD协议的要点:
“多点接入” 就是计算机以多点接入(动态媒体接入控制)的方式连接在一根总线上,属于总线型网络
“载波监听” 即“发送前先监听”,每一个站在发送数据前先要检测一下总线是否有其他站在发送数据,如有则暂时不要发送数据,要等到信道为空闲才能发送
“碰撞检测” 即“边发送边监听”,适配器边发送数据边检测信道上的信号电压的变化情况。当检测到发生碰撞💥时,随机等待一段时间后再次发送
-
特点:
- 采用无连接的工作方式,即不必先建立连接可直接发送数据
- 发送的数据使用曼彻斯特编码的信号,故每秒传送的码元数加倍
- 半双工通信方式
⚠️把总线上的单程端到端传播时延记为τ,A 发送数据后,最迟要经过2τ(往返)才能知道自己发送的数据和其他站发送的数据有没有发生碰撞(解释为什么每一个站在发送数据之前已经监听到信道为“空闲”,仍会出现数据在总线上情况)
- 信道利用率
需清楚:
- 电磁波在1km电缆的传播时延:5us
- 争用期/碰撞窗口:2τ(具体:51.2us)
- 截断二进制指数退避算法原理
- 最短帧长:64字节—512bit(根据争用期时间推出),凡长度小于64字节的帧都是由于冲突而异常中止的无效帧,应丢弃
- 强化碰撞💥:当发送数据的站检测到碰撞,立即停止发送数据,还要在发送32/48比特人为干扰信号,以便让所有用户知道已发生碰撞
- 帧间最小间隔:9.6 us 相当于96比特时间,为了使刚刚接收到数据帧的站的接受缓冲能及时清理,做好接受下一帧的准备
3.4 以太网的MAC层
具体可参考该博客:
https://www.jianshu.com/p/1a6d653163ed
-
MAC地址
“MAC地址”又叫做硬件地址或物理地址,实际上就是适配器地址或适配器标识符EUI-48。高位24位:注册管理机构RA,低位24位:由厂家自行指派 -
MAC帧的格式(6 6 2 4 = 18)
常用的以太网MAC帧格式有两种标准 : DIX Ethernet V2 标准IEEE 的 802.3 标准。V2使用较多,如图:
以太网V2的MAC帧较为简单,有五个字段组成
- 前两个字段分别为6字长的目标地址和源地址字段
- 第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议
- 后面数据字段46~1500字节
- FCS字段4个字节
3.5 扩展的以太网
-
在物理层扩展—集线器 P97
现在,双绞线以太网成为以太网的主流类型,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器。
光纤调制解调器的作用,是进行电信号和光信号的转换。 -
在数据链路层扩展—网桥/透明网桥(自学习算法)P100
注:在数据链路层扩展以太网要使用网桥网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发或过滤。当网桥收到一个帧时,并不是向所有的接口转发这个帧,而是检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
具体可参考该博客: https://blog.csdn.net/syzdev/article/details/104652893
-
虚拟局域网-交换机 P101
多接口网桥即交换式集线器常称为以太网交换机。利用以太网交换机可以很方便地 实现虚拟局域网,虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记
—
简述CSMA/CD协议要点:
当一个节点要发送数据时,首先监听信道;如果信道空闲就发送数据,并继续监听;如果在数据发送过程中监听到了冲突,则立刻停止数据发送,等待一段随机的时间后,重新开始尝试发送数据