数据链路层
-
使用的信道
- 点对点:一对一
- 广播信道:一对多
点对点信道
链路:连接两个节点的无源物理线路,中间不存在其他节点
数据链路:物理线路+通信协议
数据链路层传输单位为帧
数据链路层的三个基本问题
封装成帧:在一段数据前后分别添加首部和尾部,作为帧定界
透明传输
目的:解决数据中出现首部与尾部控制字符的情况,有两种方案
- 字节填充:在控制字符与转义字符前插入转义字符
- 字符填充:(比特填充)发送时,出现5个连续的1,则在后面填入一个0,接收时,每收到5个1,则删除后面的0
差错控制:使用循环冗余校验,得到的冗余码作为FCS填充到数据尾部,CRC是方法,FCS帧校验序列,对于确认的数据报,只能以非常接近于1的概率认为数据报在传输过程中没有出错,要做到可靠传输,还要加上确认与重传机制
点对点协议PPP
用户使用拨号电话线接入因特网时,一般使用PPP协议,用于将上层协议封装成帧
协议组成
- 将IP数据报封装到串行链路的方法
- 链路控制协议
- 网络控制协议
特点
- PPP是面向字节的,所有PPP帧的长度都是整数字节
- 不提供可靠服务
PPP协议有一个2字节的协议字段,指明自己封装的是什么上层协议
透明传输
- 同步传输:使用比特填充
- 异步传输:使用字符填充,即将特殊字符转变为2字节序列
PPP工作流程
- PC接入ISP时,与路由器建立一条物理连接
- PC与路由器通过链路控制协议协商PPP参数
- 通过网络控制协议给PC分配一个临时IP地址
- 通信完毕,网络控制协议释放网络层连接,回收分配出去的IP地址,LCP释放数据链路层连接,最后释放物理层连接
广播信道
-
局域网:网络为一个单位所拥有,地理范围和站点数目均有限
-
局域网拓扑结构
- 总线型:所有主机共享单根传输线路,需要处理传输碰撞
- 星型
- 环型
- 树型:星型的拓展
- 网状:完全图的形式
-
CSMA/CD协议
-
背景:早期的以太网网络拓扑为总线型,目前应该为树型,总线型只允许某一时刻只有一个主机发送信息
-
过程
-
封装成帧
-
检测信道:若信道忙,则不停检测,若信道空闲,并在96比特时间仍保持空闲,则发送帧
-
边发送边监听
- 在争用期没有检测到碰撞,发送成功
- 在争用期检测到碰撞,发送失败,使用二进制指数退避算法,等待一定时间后重传,如果等待16次还是有冲突,则停止发送,向上层协议报告错误
-
-
概念
-
二进制指数退避算法
- 选用基本等待时间,一般为争用期
- k=Min[重传次数,10]
- 从[0,1,2,……,( 2 k 2^k 2k-1)]中随机取出一个数,作为r
- 等待时间为r*基本等待时间
- 等待16次后仍然有碰撞,丢弃帧,向高层报告
-
争用期
-
发送数据帧至多经过两倍的端到端时延即可得知是否发生碰撞
-
为什么是两倍端到端时延?
由于传播时延的存在,最左端的A发送的报文充满整个传输线路需要一个端到端时延,假设快要充满整个传输线路时,最右端的B发送了一个报文,此时发生冲突,冲突从最右端传输到最左端需要一个端到端时延
-
-
最短有效帧长
在争用期发送字节数小于64字节,只要检测到冲突,立刻停止发送剩余的数据,由于CSMA/CD协议是边发送边检测,若字节数小于64字节,则争用期不到就停止检测信道了,此时无法检测后续的冲突,因此将最短有效帧长度设置为64字节
-
强化碰撞:
检测到碰撞后,停止发送数据,同时发送若干比特人为干扰信号,通知其他用户发生了碰撞
-
-
以太网的MAC帧
-
目前常用给的为以太网V2的MAC帧格式
-
格式
-
首部
- 目的MAC地址
- 源MAC地址
- 类型:标志上一层使用什么协议
-
尾部
- FCS
-
-
有效的MAC帧长度为64~1518字节
-
以太网交换机
-
特点
- 每个接口直接与主机相连,采用全双工
- 可同时连接多个接口,进行无碰撞的传输数据
VLAN
-
概念:使不同物理位置的主机(例如连接不同交换机的主机)构成局域网,广播将在VLAN内部传输
-
功能:限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息即广播风暴而引起性能恶化
-
实现方式
在以太网帧格式中插入4字节的标识符,称为VLAN标记,指明发送该帧的工作站属于哪一个VLAN,交换机会记录自己连接的主机属于哪一个VLAN,从而允许接收报文的交换机转发报文给特定VLAN的主机