一、数据链路层的基本概念
功能
提供无比特差错的透明、可靠传输
数据链路和链路的区别
- 链路:一个结点到相邻节点的一段物理线路
- 数据链路:物理线路+通信协议
三个基本问题
- 封装成帧:一段数据的前后分别添加首部SOH和尾部EOT
- 接收端收到SOH但没收到EOT就会弃帧
- 每一种链路层协议都规定了最大传送单元MTU(数据部分,1500字节)
- 为了提高传输效率,帧的数据部分尽可能大于首部和尾部的长度
- 透明传输:数据中无论有什么字符都可以进行传输
- 数据中出现SOH或EOT的时候,进行字节填充,插入转义字符
- 差错检测:对帧进行检测,是否出现差错
- 循环冗余检验CRC:
- 收发双方先确定一个n+1位的除数P。
- 发送方,k位数据拼接n位0,模2运算后得到n位余数就是冗余码,称为帧检验序列FCS
- 最后发送的帧是k位数据拼接n位FCS
- 接收端接收帧后进行模2运算,得到余数为0,判定帧没有差错
- 循环冗余检验CRC:
二、两种类型的数据链路层
点对点信道
使用一对一的点对点通信
点对点协议PPP
PPP帧
组成部分:三个,从上到下
- 网络控制协议NCP:支持不同的网络层协议
- 链路控制协议LCP:建立、维护数据链路连接
- 高级数据链路控制协议HDLC
解决透明传输问题
- 字节填充(异步传输,逐个字符传送)
- 零比特填充(同步传输,一连串比特连续传送)
广播信道
使用一对多的广播通信方式
使用广播信道的就是局域网
- 局域网:网络为一个单位所拥有,且地址范围和站点数目均有限
- 具有广播功能
- 便于系统的扩展和演变
- 提高系统的可靠性、可用性和生存性
- 静态划分信道(不适合共享信道)
- 频分复用
- 时分复用等等
- 动态媒体接入控制(多点接入)
- 随机接入(以太网使用)
- 受控接入(目前已不被采用)
以太网就是使用以太网协议的局域网,现在基本上局域网都是使用以太网协议
CSMA/CD协议
载波监听多点接入/碰撞检测,总线以太网使用
要点:
- 多点接入:许多计算机以多点接入的方式连接在一根总线上
- 载波监听:用电子技术检测总线上有没有其他计算机在发送,检测信道
- 碰撞检测:边发送边监听,无论发送前还是发送中,每个站都不停检测信道
特点:
- 使用CSMA/CD协议的以太网不可能进行全双工通信,只能进行半双工通信
- 发送的不确定性:每个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
- 因为会有碰撞的可能性,导致以太网的平均通信量远小于以太网的最高数据率(带宽)
争用期:
端到端的往返时延2a,又称碰撞窗口。a是单程端到端传播时延
- 经过争用期这段时间但没有检测到碰撞,可以确定这次发送肯定不会发送碰撞
- 最短有效帧长:2a*速率,协议规定为64字节,**发送端帧长不足补0,接收端收到帧长不足64弃帧
- 因为要经过争用期的“考验”,必须要发送端检测到有没有发生碰撞就是在争用期内有没有接收到数据包
- 假如发生了碰撞,发送端停止发送,接收端接收到的帧长必定小于2a*速率
- 假如没发生碰撞,顺利度过了争用期,那么接收端接收到的帧长必定大于等于2a*速率
- 发生碰撞的重要时刻
- A先发送数据包,未到达接收端前B也发送数据包
- 随后发生碰撞,发生碰撞时碰撞双方A和B是不知道发生了碰撞的
- A和B继续发送数据包,随后B接收到A的数据包(因为局域网内是广播的,只是利用网卡进行过滤,即便B不是接收端也会接收到A的数据包,可以认为当接收端接收到数据包,所有站都同时接收到数据包),即B检测到碰撞,停止发送数据包,但A还在继续发送数据包
- 随后A收到了B的数据包,即检测到碰撞,也停止发送数据,此时必定小于争用期
- 截断二进制指数退避算法
- 从离散的整数集合[0, 1, ..., (2^k-1)]中随机取出一个数,记为r,碰撞后重传应推后的时间就是r倍的争用期。k=Min[重传次数,10]
- 当重传次数达到16次仍不能成功,弃帧并向高层报告
以太网的信道利用率
- 当数据率一定时,以太网的连线的长度不能太长:确认碰撞需要的时间太长,假如发生了碰撞就会浪费信道资源
- 当数据率一定时,以太网的帧长不能太短:一个帧占用一个信道,其他站不能使用信道,帧太短就会浪费信道资源
MAC层
- 硬件地址又称为物理地址或MAC地址
- 48位,前24位是公司标识符,后24位厂家自行分配
MAC帧
- 当数据字段小于46字节时,MAC子层会在数据字段后面加入整数字节的填充字段,保证以太网的MAC帧长不小于64字节
- MAC帧不指出数据字段的长度,由上层记录数据字段的长度,由上层来丢弃填充字段
- MAC层下传物理层还要在帧前面插入8个字节,7个字节的前同步码,1个字节的帧开始定界符
- 和PPP帧不同,不需要帧结束定界符和字节插入保证透明传输。因为以太网传输数据以帧为单位,各帧之间有一定间隙
- 无效的MAC帧,丢弃
- 帧的长度不是整数字节
- 用收到的帧检验序列FCS查出由差错
- 收到的帧的客户数据字段的长度不在46~1500字节之间
三、扩展以太网
物理层拓展
使用集线器
- 在网络层看来仍然是一个网络
- 多个碰撞域变成一个碰撞域,效率变低
- 不同的以太网技术不能用集线器互连
数据链路层拓展
使用交换机,即多接口网桥
- 自学习:在交换表中记录源计算机的MAC地址和进入接口位置,即插即用
- 存储:进入交换机先存储,查找交换表
- 转发和过滤:若交换表中有该目的计算机的MAC地址,且转发接口和进入接口不相同,转发;若交换表中有该目的计算机的MAC地址,且转发接口和进入接口相同,过滤;交换表中没有该目的计算机的MAC地址,广播
- 无碰撞:存储解决了碰撞问题,碰撞都在接口处
- 全双工:以太网交换机,没有碰撞问题就可以实现全双工
- 优点:
- 扩大物理范围
- 过滤通信量,不用所有信息都广播
- 可互连不同的物理层、MAC层和不同速率的局域网
- 提高可靠性
- 缺点:
- 存储转发带来时延
- 适宜用户不多,数据通信量不大的网络,信息过多会导致广播风暴
虚拟局域网
一个网段下的局域网划分局域网