数据链路层
3.1 数据链路层基本概念及基本问题
3.1.1 数据链路层基本概念
-
结点:将主机、交换机和路由器等直接称为结点
-
链路:从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有其他的结点,也称为物理链路
当进行数据通信的时候,两个计算机之间的通路往往由许多链路串接而成,所以一条链路只是一条通路的一个组成部分
-
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,若实现这些协议的硬件和软件加到链路上,就构成了数据链路
-
帧:数据链路层的协议数据单元一般称之为帧,计算机通信通常采用的分组交换技术,从链路层角度看,这时的分组就是帧
3.1.2 数据链路层的作用
数据链路层是在物理层提供比特流服务的基础上,提供数据帧在信道上的“透明”传输
-
封装成帧
- 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧
- 首部和尾部的一个重要作用就是进行帧定界
-
透明传输
透明传输就是指无论在数据帧中出现什么样的数据都能够正确地传输过去- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B),而在接收端的数据链路层在把数据送往网络层之前删除插入的转义字符,这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)
- 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个
- 帧定界符SOH(Start Of Header) 和EOT(End Of Transmission) 只是控制字符的名称,并非是说SOH(或EOT) 是由S,O,H(或E,O,T)三个字符组成
-
差错检测
- 误码率:在一定时间内,传输错误的比特占所传输比特总数的比率
-
循环冗余检验CRC
-
判断数据再传输过程中是否出错,可以采取增加冗余位的方法
如传输十进制数A(x1x2…xn),采取在后面添加1位数xn+1,使得X1X2…Xnxn+1能被十进数B(如3)整除,即余数为0。如果到达下一结点,除法运算后余数不为0了,就知道传输过程 中发生了差错
将上述的A换成比特序列,B换成另一个比特序列,除法采用模2算法(加法不进位,减法不借位),我们同样有理由相信,如果比特序列除另一个比特序列,余数为0,那么比特序列正确传输后,余数依然为0
-
余数为零,还是有可能存在差错,但是可以精心挑除数比特序列,使这种可能性降低
-
通常将除数比特序列写成多项式形式,比特序列的位对应多项式前面的系数,称为生成多项式
-
-
无比特差错传输 不等于 可靠传输
帧丢失 帧重复 帧失序
-
其实就是容差错接收
3.2 两种情况下的数据链路层
-
使用点对点信道的数据链路层
详情看PPP协议
-
使用广播信道的数据链路层
详情3.7
3.3 以太局域网(以太网)
3.3.1 以太网的两个标准
DIX Ethernet V2 标准与 IEEE 的802.3 标准只有很小的差别,因此可以将802.3局域网简称“以太网”
严格来说,“以太网”应当是指符合DIX Ethernet V2标准的局域网
- DIX Ethernet V2是世界上第一个局域网产品(以太网)的规范
- IEEE 的 802.3 标准
3.3.2 以太网与数据链路层的两个子层
与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关,不管采用何种协议的局域网对LLC子层来说都是透明的
由于TCP/IP体系经常使用的局域网是DIX Ethernet V2 而不是802.3标准中的几种局域网,所以LLC子层(即802.2)作用不打
很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议
- 逻辑链路控制 LLC 子层
- 媒体接入控制 MAC 子层
3.4 扩展以太网
3.5 高速以太网
3.6 PPP协议
现在全世界使用得最多的数据链路层协议,也就是点对点协议
用户使用拨号电话线接入因特网时,一般就是点对点协议
3.6.1 满足的要求
- 简单 ——首要要求
- 封装成帧
- 多种网络层协议
- 多种类型链路
- 差错检测
- 检测连接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
3.6.2 协议的组成
- 数据链路层协议可以用于异步串行或同步串行介质
- 它使用LCP(链路控制协议)建立并维护数据链路连接
- 网络控制协议(NCP)允许在点到点连接上使用多种网络层协议![PPP协议组成 ](F:博客md图片使用PPP协议组成 .png)
-
协议帧格式
- 在PPP协议中,地址字段A、控制字段C中的FF、03是固定的
-
首部F与尾部F一致
-
协议
协议字段 信息部分的内容 0x0021 ppp帧的信息字段就是IP数据报 0xC021 信息字段是PPP链路控制数据 0x8021 表示这是网络控制数据 0xC023 信息字段是安全性认证PAP 0xC025 信息字段是LQR 0xC233 信息字段是安全性认证CHAP -
为防止信息字段中的值被误认为是标志字段的尾部,从而结束,有以下方法
-
字节填充
- 将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E)
- 若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D,0x5D)
- 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符面前要加入一个0x7D字节,同时将该字符的编码加以改变
-
零比特填充方法
- 传输端五个1后面加个0,接收端去掉加的0
-
-
-
PPP协议工作状态
3.7 使用广播信道的数据链路层
3.7.1 局域网的拓扑
- 星状
- 总线
- 环形
- 树形
3.7.2 局域网的特点和优点
- 具有广播功能,从一个站点可方便地访问全网,局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
- 提高了系统的可靠性、可用性、生存性
3.7.3 共享通信媒体
-
静态划分信道
频分复用 时分复用 波分复用 码分复用
-
动态媒体接入控制(多点接入)
随机接入(主要被以太网采用)
受控接入(目前已不被采用)
3.7.4 CSMA/CD协议——载波监听多点接入/碰撞检测
-
多点接入
表示许多计算机以多点接入的方式连接在一根总线上
-
载波监听
指每一个站在发送数据之前现用检测一下总线是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
-
碰撞检测
就是计算机边发送数据边检测信道上的信号电压大小
- 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)
- 当一个站检测到的信号电压摆动值超过一定的门限时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞
- 也称为冲突检测
-
检测到碰撞后
- 在发生碰撞时,总线上传输的信号产生开严重的失真,无法从中恢复出有用的信息来
- 每个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等一段随机时间后再次发送
-
CSMA/CD的基本思想
- 先听后发
- 边听边发,碰撞停止
- 退避重发,碰撞过多放弃发送
3.7.5 以太网冲突检测和避让机制
- 征用期
- 二进制指数类型退避算法