计算机网络
计算机网络-链路层
1.1 链路层介绍
1.1.1 链路层概念
- 数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范。通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等物理介质。此外,各个设备之间有时也会通过交换机、网桥、中继器等中转数据
- 总结来说,数据链路层就是负责数据在各个链路中进行传输的
1.1.2 相关术语
(1)结点
- 将运行链路层协议(即第2层)协议的任何设备均称为 结点(node)。
- 结点包括主机、路由器、交换机和WiFi接入点等
(2)链路(物理链路)
- 从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换节点链路是一条路径的一个组成部分
- 两台计算机之间的通信路径需要许多链路
(3)数据链路(逻辑链路)
- 把实现了这些通信协议的硬件和软件加到链路上,就构成了数据链路(物理线路+协议)
(4)网络适配器
- 既有硬件也包括软件,实现了通信协议,包括了数据链路层和物理层两层的功能
(5)规程
- 数据链路层中,规程等同于协议
1.2 链路层功能
(1)为网络层提供服务
-
链路接入管理 :连接的建立、维持、释放(用于面向连接的服务)
-
帧同步 :帧定界
-
可靠交付 :常用于易产生差错的链路,比如无线链路。而对于不易产生差错的链路这是不必要的开销。
-
数据和控制信息的识别
-
寻址
-
流量控制 :链路层协议提供流量控制
-
透明传输
-
差错检测与修正 :循环冗余检测(CRC);TCP和UDP用检验和方法;奇偶校验思想(二维奇偶校验
1.3 链路层需要解决的问题
1.3.1 封装成帧
(1)帧
- 数据链路层的协议数据单元,一个帧由一个数据字段和若干首部字段组成,其中网络层数据报就插在数据字段中。帧的结构由链路层协议规定
(2)封装成帧概念
- 封装成帧:就是在一段数据前后分别添加首部和尾部,添加一些额外信息,确定帧的界限,然后就构成了一个帧
(3)首部尾部作用
- 进行帧定界(确定帧的界限);
- 包含许多必要的控制信息
(4)帧定界的方法
- 帧界定的方法:可用特殊的帧定界符,在ACSCII码中,用SOH表示帧的首部开始,EOT表示帧的结束
(5)帧界定的作用
- 判断收到的帧是否完整,不完整则丢弃
1.3.2 透明传输
(1)透明传输概念
- 不管什么数据,都能完整无差错的通过这个数据链路层,数据链路层对数据没有妨碍,数据链路层对数据时透明的
(2)透明传输的问题
- 透明传输中的问题:若数据中的某个字节的二进制代码恰好组成了帧界定符,就会出现帧定界错误,从而影响整个链路层数据的传输
- 解决方法:字节填充 :在控制字符和特殊字符前插入一个转义字符"ESC"(1B),而真正的首部和尾部前不加;当上交个给网络层时删除这个字符即可
1.3.3 差错检测
(1)差错检测概念
- 通过编码与附加校验信息手段,可以使得接受方对收到的数据帧进行校验,发现是否数据出错,从而进行下一步的处理
- 传输差错分类:
- 基本的比特差错。
- 收到的帧出现了帧丢失,帧重复,帧失序。
- 传输差错分类:
(2)常用校验方式-循环冗余校验CRC(Cyclic Redundancy Check)
- 循环冗余码 (CRC)是一种特殊的线性分组码。 循环冗余码各码组中的码元循环左移(或右移),所形成的码组仍然是一个许用码组(全零码组除外),称为循环性。 循环冗余码具有较高的检错能力。
- 帧检测序列FCS
- 在数据链路层里面使用CRC循环检验法能够实现无比特差