Copyright©stonee
效率效率效率!
约定:本文是针对于《计算机网络》第七版(谢希仁)中第三章的知识点总结,不适合单独看,结合课本或者PPT中的图片复习更佳
1. 数据链路介绍
- 数据链路层信道主要由点对点信道和广播信道
- 本章介绍有线局域网中的数据链路,没有无线局域网
- 链路是一条有线或者无线的从一个结点到相邻结点的一段物理线路
- 数据链路 = 实现协议的网络适配器(硬件 + 软件) + 链路
- 帧是数据链路层的协议数据单元
三个基本问题
- 封装成帧
- IP数据报传到数据链路层会变成帧的数据部分,数据部分前后部分会加上帧首部和帧尾部。其作用是进行帧定界
- 每一种数据链路层都规定了数据部分上限——MTU
- 透明传输
- 防止数据部分出现帧尾部的帧结束符,引入了转义字符,使其变得透明
- 差错检测
- 数据链路层中的协议都有一个字段是为了帧校验,广泛使用的是CRC,循环冗余校验
- 除了数据链路层,每一层都有差错检测,但是差错检测只保证尽力交付,不保证可靠交付
- CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法
2. PPP
特点
- 主要用于计算机和ISP进行通信时所使用的身份识别
- 在满足三个基本问题的基础上,PPP协议还要满足**简单、支持多种网络协议、可以在多种链路(串行,并行,同步,异步,电缆,光缆)**等条件
组成
- PPP由三部分组成
- 一种将IP数据报封装到串行链路的方法
- 一个用来建立,测试,配置数据链路连接的链路控制协议LCP
- 一套网络控制协议NCP
- 协议格式(PPP是面向字节的,长度都是整数字节)
- 首部四个字段,尾部2个字段
- MTU = 1500
- F(1) + A(1) + C(1) + 协议(2) + 数据(MTU) + FCS(2) + F (1)
- F规定为0x7E,表示帧开始或结束
- A和C没用
- 协议表示的是数据中用的协议,可能是IP,LCP,NCP
- FCS即为CRC的冗余码
- 当PPP使用异步传输的时候,转义字符被定义为0x7D,并使用字节填充,转义字符被定为为0x7D,0x5D,7E被定义为0x7D, 0x5E
- 当PPP使用同步传输的时候,使用零比特填充,有5个连续的1就填充0
- 同步传输和异步传输区别
工作状态
- 首先用户拨号接入ISP,建立一条物理连接
- 用户向ISP发送一系列链路控制协议LCP分组(这些被封装成了PPP帧),建立LCP连接
- 进行身份鉴别
- 通过NCP给新接入的用户分配临时IP
- 通信完毕后,NCP释放网络层连接,收回IP
- LCP释放数据链路层连接。最后释放物理层连接
3. 以太网中的数据链路层
- 局域网可分为星形网、环形网、总线网
- 局域网具有广播功能
- 局域网中需要用到共享信道
- 静态划分信道:频分复用等。不会产生冲突,但是这种代价较高
- 动态媒体接入/多点接入:随机接入和受控接入。随机接入是重点
- 现阶段局域网有两种标准:IEEE802.3和以太网标准
- 适配器
- 计算机通过适配器和外界局域网进行连接,网卡也是一种适配器
- 适配器实现的功能既包括数据链路层也包括物理层
- 数据链路层的协议基本是由适配器实现的
- 适配器可以实现差错检验,并进行串/并行转换,通过驱动程序和操作系统交互,发送相应数据
- MAC地址存在适配器的ROM中,IP地址存在计算机的存储器中
- 以太网中不保证可靠交付,使用无连接和曼彻斯特编码,曼彻斯特编码效率低
- 一个站不能同时发送接收,只能进行半双工通信,所以CSMA/CD诞生了
CSMA/CD
- 要点:多点接入、载波监听、碰撞检测
- 电磁波在1km电缆的传播时延约为5us
- 步骤:
- 发送之前,先检测信道,即“载波监听”,如果信道在96bit时间内保持空闲,适配器就开始发送信息
- 如果发送信息过程中,经过2t之后还没检测到碰撞,那么这次发送就肯定不会发生碰撞。这段时间称为征用期
- 如果在征用期内检测到碰撞,则停止发送数据,并发送人为干扰信号(32B或48B)来强化碰撞,执行二进制退避算法:基本退避时间是2t,争用期时间是51.2us,重传时间推后r倍的争用期(r参考书),当重传16次还不行的话,放弃并向上层报告
- 适配器对过去发生的碰撞并无记忆功能
- 为了防止帧很短小于512bit,使得检测不到该帧的碰撞,所以最小帧应该大于64B,故只要长度小于64B都是无效帧,应该丢弃
集线器
- 集线器通过双绞线将多个站点用星形拓扑连到一起,成为一个局域网
- 集线器工作在物理层,不进行碰撞检测,它像很多接口的转发器,单纯转发比特,少量容错能力和网络管理能力,不能进行帧缓存
- 集线器中的各站点仍然使用CSMA/CD协议
以太网信道利用率算法
- a = t/T 表明以太网连线长度不能太长,帧长度不能太短
- S = 1/ (1 + a)
MAC
- MAC地址段有两种:6B和2B(本地管理),IEEE会分配前3B
- 第一字节的最低为为I/G位,决定了单播,组播和广播
- 第一字节的倒数第二位是G/L位,决定本地管理和全球管理
- MAC帧格式(以太网V2)
- 首部3个字段,尾部1个字段
- 目的地址(6B) + 源地址(6B) + 类型(2) + 数据(MTU) + FCS(4)
- 目的地址之前还有一个前同步码全为010101…直到11,其中,前7个字节是前同步码,后一个字节是帧定界符
- 因为数据帧最小为64B,MTU一般最大为1500,所以MAC帧长度为64-1500B
- IEEE802.3
- 当类型大于0x0600时,表示类型,小于该值时表示长度,需要在数据字段装入LLC帧
4. 扩展以太网
从物理层扩展
- 使用光纤和光纤调制解调器
- 使用多个集线器或者转发器
- 虽然扩大了以太网的覆盖范围,且使得不同碰撞域的一台网上的计算机可以跨碰撞域通信
- 但是总的吞吐量并未提高,同时不能连接不同数据率的碰撞域
从数据链路层
- 这种方法比从物理层扩展更常用,集线器逐渐退出市场
- 最初通过网桥,对MAC地址进行转发和过滤。之后诞生了一种交换式集线器,也叫交换机
- 交换机是一个多接口的网桥
- 交换机具有自学习的功能,可以进行帧缓存
- 交换机即插即用,用硬件转发,比用软件转发的网桥快很多
- 以太网从总线型过渡到星形
交换机比集线器多了个缓存功能,这就使得通信不再冲突,达到全双工
交换机分为存储转发方式和直通转发方式
自学习:
- 先查找交换表
- 如果没有则在交换表中新增这个项目(源地址,进入接口,有效时间),并转发
- 如果有则更新项目并转发
为了防止兜圈子,产生了生成树协议STP
VLAN
- 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN
- 插入的标识符为4字节
- 目的地址(6B) + 源地址(6B) + 标记(4B) + 类型(2) + 数据(MTU) + FCS(4)
5. 高速以太网
- 快速以太网:100M/s + , 需要适配器和集线器/交换机,可全双工
- 吉比特以太网 :1G/s + ,可全双工
- 为了保证半双工的64B最小帧长:增加了载波延伸和分组突发功能
- 10吉比特以太网:10G/s + ,只能全双工
- 用以太网进行宽带接入
- (此处意味着身份鉴别),就要把PPP协议装到以太网中
- 可以提供双向宽带通信
- 不需要帧格式转换
问题
- PPP中哪个字段进行用户检验
- LCP 和 NCP 都属于网络层吗
- 具体的征用期时间51.2可以满足2t吗
- 可以,端到端时延小于25.6us,即端到端小于5km
- 集线器有增强信号的功能吗
- MAC帧怎么没有帧开始和帧结束