数据链路层 点对点信道 PPP协议HDLC协议 特点 数据链路层协议的基本问题 循环冗余检验原理 HDLC的帧格式 PPP与HDLC比较 数据链路 帧 图解 新手入门 保姆式解析 表情包理解
粉丝不过W
数据链路层使用信道:
点对点信道,一对一的点对点通信方式
广播信道, 一对多的广播通信方式,由于复杂,要 共享信道协议来协调主机得数据发送
数据发送概况:
数据的流向:
路由器在转发分组时,只使用的三层协议栈
数据链路层的数据流动:
不同的链路层可能采用不同的数据链路层协议
点对点信道的数据链路层
数据链路和帧
链路( link ):从一个结点到相邻结点的一段物理线路( 有线或无线) , 而中间没有任何其他的交换结点
数据链路( data link ):实现这些协议的硬件和软件加到链路上
也可把 链路分为物理链路和逻辑链路:
物理链路:上面的链路
逻辑链路:上面的数据链路, 是物理链路加上必要的通信协议
点对点信道的数据链路层的协议数据单元:帧
网络层协议数据单元:IP数据报( 数据报、分组、包 )
点对点信道的数据链路层的通信过程:
结点A的网络层交下IP数据报,数据链路层把IP数据报添加首部和尾部封装成帧
结点A把封装好的帧发给 结点B的数据链路层
若结点B的数据链路层收到的帧无差错, 就从帧中提取出IP数据报交给上面的网络层
否则丢弃这个帧
数据链路层协议的基本问题: 封装成帧、 透明传输、差错检测
封装成帧:
帧:数据的前后分别添加首部和尾部
帧的帧长:帧的数据部分长度加上帧首部和帧尾部的长度
帧的数据部分长度上限:最大传送单元MTU( Maximum Transfer Unit )
帧的首部开始:控制字符SOH( Start Of Header )
帧的结束:控制字符EOT( End Of Transmission )
透明传输:
当数据是文本文件中的字符:透明传输
非透明传输:数据部分是非ASCII码的文本文件时,可能与帧边界一样,就会发生错误
字节填充( byte stuffing) 或字符填充( character stuffing):解决了这个问题
发送端的数据中有控制字符“SOH” 或“EOT” 的在前面插入转义字符
接收端把数据送往网络层之前删除插入的转义字符
字节填充法:
差错检测:
比特差错:1可能会变成0, 而0也可能变成1
误码率BER( Bit ErrorRate ):传输错误的比特 占 传输比特总数 的比率
循环冗余检验CRC( Cyclic Redundancy Check )解决这个问题
帧检验序列FCS( Frame Check Sequence):为检错而添加的冗余码
循环冗余检验原理:
接收端:数据以帧为单位进行CRC检验
余数R= 0, 帧无差错, 就接受( accept )
余数R≠0, 帧有差错, 就丢弃
发送端帧检验序列FCS的生成和接收端的CRC检验由硬件完成
帧可能出现比特差错、帧丢失、 帧重复、帧失序
数据链路层协议都是不可靠传输的协议
点对点协议PPP
PPP协议的特点
PPP协议:用户计算机和ISP进行通信时,使用的数据链路层协议
PPP协议需求
简单:网际协议IP 简单, 提供不可靠的数据报对数据链路层的帧, 不纠错, 不序号, 不流量控制
封装成帧:规定特殊的字符作为帧定界符
透明性:数据传输的透明性
多种网络层协议:支持链路连接的局域网或 路由器上运行的各种网络层协议
多种类型链路:串行的( 一次只发送一个比特 )、并行的( 一次并行地发送多个比特 )、同步的、异步的, 低速的、高速的, 电的、光的, 交换的( 动态的 ) 、非交换的( 静态的 ) 点对点链路
差错检测( error detection ):对接收端的帧进行检测,丢弃差错的帧
检测连接状态:自动检测 链路是否处于正常工作状态
最大传送单元:设置最大传送单元MTU
网络层地址协商:知道通信双方的网络层地址
数据压缩协商
PPP协议 不支持多点线路, 只支持<stron>的链路通信,只支持全双工链路</stron>
PPP协议的组成
将IP数据报封装到串行链路( 同步串行/异步串行 ),PPP 支持异步链路( 无奇偶检验的8比特数据 ), 支持面向比特的同步链路
链路控制协议LCP( Link Control Protocol ):建立、 配置、测试数据链路连接
网络控制协议NCP( Network Control Protocol ):支持不同的网络层协议
PPP协议状态图:
PPP帧的格式:
F:帧定界符:标识字段 01111110
协议:IP数据报、LCP的数据、网络层控制数据
信息部分:可能插入了转义字符 7D:01111101
HDLC协议
高级数据链路控制(High-level data link control、HDLC):同步网上传输数据、面向比特的数据链路层协议
数据报文可透明传输,用于实现透明传输的“ 0比特 插入法 ”易于硬件实现
采用全双工通信
帧采用CRC检验,对信息帧进行顺序编号,可防止漏收、重份,传输可靠性高
HDLC站:
主站、从站、复合站
主站:发送命令(包括 数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测、恢复
从站:接收由主站发来的命令帧,向主站发送响应帧,并配合主站参与差错恢复等 链路控制
复合站:既能发送,又接收命令帧,响应帧,并负责整个链路的控制
数据操作方式:
正常响应方式
异步平衡方式
异步响应方式
HDLC的帧格式:
标志F:01111110
零比特传输:5 1 1 0
信息帧( I ) 第1位为0,用来传输数据信息、使用捎带技术对数据进行确认
监督帧( S ) 10,用于流量控制,差错控制,执行对信息帧的确认、请求重发,请求暂停发送等功能
无编号帧( U ) 11,用于提供对链路的建立、拆除等多种控制功能
PPP与HDLC比较
HDLC、PPP只支持全双工链路
都可 透明传输
都可 差错检测,但 不纠正差错
PPP协议 | 面向字节 | 2B协议字段 | 无序号、确认机制 | 不可靠 |
HDLC协议 | 面向比特 | 无 | 有编号和确认 | 可靠 |