三、常用的数据链路协议(HDLC、PPP)
(一)分析协议的思路
步骤一:了解协议的概貌,知道这个协议设计的目的、基本特征
步骤二:以协议数据单元(对于数据链路层而言是帧)的格式为主要线索来研究协议的 具体实现
步骤三:协议如何解决实际问题?
(二)HDLC协议(高级数据链路控制规程)(面向比特协议)
HDLC协议是一个面向比特的协议,其主要解决了数据链路层链路管理、寻址、帧同步、差错控 制、流量控制,其具有了平衡系统的和非平衡系统两个特性。
1、HDLC的组成:
帧结构(语法)
规程元素(语法)
规则类型(语义)
使用HDLC语法可以定义多种具有不同操作特点的链路层协议。
2、HDLC的描述
HDLC在描述时提出了三个层次的概念:
(1)所有参与通信的节点分类(数据站):主站、次站、组合站。
在以前的以单处理机为中心的多终端联机系统的集中式控制,主站和次站时成对出现的,而对于现在的分布式结构(如分组交换网络)来说,所有的站点都是组合站。
(2)链路类型:平衡型,非平衡型。
集中式控制属于非平衡型,而分布式控制则属于平衡型
(3)操作模式:正规响应模式、异步响应模式、异步平衡模式
对于平衡型来说其只有异步平衡模式,即每个站点自主发出通信,是自治系统。而对于由主站和次站构成的非平衡型来说,有正规响应模式,即次站必须受到主站的控制,在没有得到主站许可的情况下,不能主动发起数据传输。而在异步响应模式下,次站可以主动发起数据传输。
3、HDLC协议数据单元的格式(帧格式)
(1)标志字段:帧首字段和帧尾字段在内容上看都是由“01111110”组成,其用来划分帧的起始位置和结束位置
(2)地址字段:其有两个缺陷:一,由于当时是为以单处理机为中心的多终端联机系统设计的,所以只有一个地址(终端地址),不适用于现在的分布式计算机系统。二,地址只有8位,即最多只能表示256个节点。
(3)信息字段:协议数据单元的用户数据部分,长度可变,但是一般情况下是1500个字节。
(4)帧校验序列:使用CRC校验法。
(5)信息帧:发送方在发送数据时使用了固定尺寸的滑动窗口协议(窗口大小固定为7)
4、HDLC帧的类型
帧类型:(1)信息帧:替上层的实体传送数据使用的帧
(2)监控帧:进行差错控制和流量控制
(3)无序号帧:链路管理控制,负责协商双方如何通信、如何使用信道
(三)协议工程设计
1、协议说明(需求分析、功能设计):一般不用自然语言描述(冗余、多义性、结构性不 好)。而用有限状态机(FSM)、Petri网等形式描述
2、协议验证(协议工作模式是否把网络环境所遇到的问题考虑全、是否能够正常运行)
3、协议测试:一致性测试、互操作性测试、性能测试
4、有限状态机:其认为任何一个协议,就是要描述网络中的各种状态,而状态是有限的。
(1)有限状态机是一个四元组(S,M,I,T)
S为状态的集合,M是标号的集合,I是状态的集合,T是变迁的集合
其基本思想为:当出现一个变迁时,会由一个状态迁移到另外一个状态,而变迁产生的原因是来自用户的命令,信息的到达,内部的超时等事件
(2)状态举例:信道有错的单工停等协议
用三元组XYZ来表示状态:XYZ
X:发送方正发送的帧序号,为0或1
Y:接收方正在等待的帧序号,为0或1;
Z:信道状态:为0(表示正在传送序号为0的帧),
1(表示正在传送序号为1的帧),
A(信道正在传送应答帧)
或-(空)(表示信道没有传送数据或者传送的数据出错)
其初始状态为000
(3)优点:简单明了,比较精确
缺点:对于复杂协议来说,事件数和状态数会增加,处理困难。
5、perti网
(1)元素:
位置:描述系统状态,用一个圆圈表示
变迁:描述修改系统状态的事件,用一个长方形或线段表示
弧:描述状态与事件之间的关系,包括输入弧和输出弧,用用有向弧表示。
黑点:标记,是当前的状态
如图为有错单工停等协议的preti描述,其最大特点在于可以单独描述三种不同的状态
(四)Internet的数据链路层
1、点到点通信的两种主要情形(intenet工作的主要场合):
(1)路由器到路由器:
(2)通过调制解调器拨号上网,或者连入接入服务器
接入INTERNET的方法:拨号接入(用户要想连入internet,有一个路由器或主机相连,必须申请连入才能接入)、专线接入(线路实时开放,不需要申请就可以完成数据传输)
2、SLIP(Serial LINE IP 串行线路IP协议)
本协议1984年提出,发送原始IP数据包,用一个标记字节(0Xc0)来定界,采用字符填充技术。其存在的问题主要有不提供差错校验、只能支持IP协议且IP地址不能动态分配,不支持身份验证,多版本不兼容等问题,现在已经不再使用。
3、PPP(point-to-point Protocol)协议(RFC 1661 16621663)
(1)特点:提供差错校验、支持多种协议、允许动态IP地址、支持身份认证
(2)与SLIP不同的是,其发送的不是原始IP数据包,而是以帧位单位传输。
(3)PPP协议为了增加协议的适应性和灵活性,协议被分为了两个部分,一部分为链路控制协议LCP(LinkControl Protocol),可以建立、测试多种物理层服务,使得本数据链路层可以支持更加丰富的类型
(4)PPPoE(Point to Point Protocol over Ethernet) 是基于以太网的点对点通讯协议
(5)帧格式:PPP协议的帧格式与HDLC协议的帧格式基本相同,但是有以下两点不同:第一,HDLC协议面向比特,而PPP协议面向的是字符,其要求所有通信的节点支持ASCII字符集;第二,PPP协议是HDLC的简化版本:(1)帧首与帧尾的定界符与HDLC协议相同(00111111),(2)地址字段保留了8位(为8个1),其不需要地址(应用环境是一条链路对应的两段,不需要地址)(3)控制字段(无序号帧)(4)协议字段:处理完成之后指向哪个应用进程进行处理(IP/IPX。。)(5)净负荷域:缺省为1500字节(6)校验和域:2或4个字节
参考资料: [1]韩立刚,计算机网络原理创新教程[M],水利水电出版社,2017.1
[2]陈妍,计算机网络原理[M].西安交通大学,2012.6
本文出自 “xuan97916” 博客,转载请与作者联系!
原文地址:http://xuan97916.blog.51cto.com/12114604/1922981