数据链路层的面向字符与面向比特
面向字符
(成帧的方法为字符计数法和带字符填充的首位字符定界法)
以字符作为最基本的单位,控制信息是字符串的形式,这时有一个要求就是参与通信的所有计算机必须使用相同字符集,但这样无法实现,因此出现了↓(但是也有用面向字符的,节点必须使用8位的ASCII字符集)
例如PPP协议
面向比特
(成帧的方法为带位填充的首尾标记定界法和物理层编码违例法)
以比特以二进制作为基本单位
例如HDLC协议,现在用到的很多协议(LAP,LAPB,LAPD)都是HDLC协议的简化版或变形版
☆了解一个具体的协议需要了解以下几点:
1.协议的概貌,是为了解决什么问题设计的。解决问题的思路,基本特征是什么
2.了解协议数据单元的格式,分析具体实现
3.为了解决网络当中一些实际的问题,是怎样解决的
• 面向字符
1.SLIP协议(串行线路IP协议)
是专门为IP协议制定的,它只实现一个功能,就是帧同步。在帧首和帧尾加一个标记字节(0xC0)来定界,由于分组里也可能出现这样的字节,因此会采用字符填充技术进行填充
问题:不提供差错控制;只支持IP协议;IP地址不能动态分配;不提供身份认证;多种版本并存,互联困难(互不兼容)
2.PPP(Point-to-Point)协议(Triple P协议)
RFC1661,RFC1662,RFC1663
面向字符的协议。要求所有通信的参与者都支持ASICS字符集
和SLIP协议相比的优势:提供差错校验;支持多种协议;允许动态分配IP地址;支持认证
以帧为单位发送,而不是原始IP包
包括两部分:
• 链路控制协议LCP(Link Control Protocol)
建立,配置和测试多种物理层服务:Modem,HDLC串线,SDH/SONET,以太网等
• 网络控制协议NCP(Network Control Protocol)
建立,配置不同网络层协议
PPP的帧格式
PPP的帧格式.png• 标记域:01111110,字符填充
• 地址域:11111111 (本身是不需要地址的,因为解决的是主机和与它相连的路由器的通信
的问题。是一条物理链路直接相连的两个节点的问题,源节点和目的节点不是主机
就是路由器,所以不需要地址,因此这个11111111是一个缺省值,即默认值)
• 控制域:缺省值为00000011,表示无序号帧。(在HDLC协议里0开头的表示数据帧,但是
在PPP协议里因为不提供序号和确认,因此这个不是数据帧)缺省情况下,PPP不
提供使用序号和确认的可靠传输,但是在不可靠线路上(比如无线通信),也可使
用有序号的可靠传输(这个时候的机制就相当于HDLC协议的机制了)
• 协议域:使接收方知道当我处理完这个帧以后,这个数据(原始的用户数据部分)要提交给
哪个应用进程去做后续的处理,比如在计算机上运行的IP进程,IPX进程或其他
网络层的应用进程等。缺省大小为2个字节
• 净负荷域:变长,缺省为1500字节
• 校验和域:2或4个字节,和HDLC协议一样,都使用循环冗余校验法
PPP工作过程(简单状态图)
PPP工作过程.png↑图:
• 检测到载波:物理链路已经建立,一个节点已经向另一个节点发出了二进制位流
• 双方协商一些选项:是物理层的LCP协议完成的,比如是不可靠的通信环境的话,需要怎么进行带序号的有确认机制的传输
• 鉴别:进行身份验证(用户名密码等)
• 鉴别成功之后使用网络层的NCP协议进行配置(根据不同的网络层协议来完成不同的网络层的配置)
• 打开:这时候才真正完成了数据链路的连接,双方才可以进行通信
• 面向比特
高级数据链路控制规程HDLC
HDLC的组成
帧结构(语法),规程元素(语法),规程类型(语义),使用HDLC的语法可以定义多种不同操作特点的链路层协议
HDLC的描述
数据站(通信的节点):主站,次站,组合站
(对于以单处理机为中心的多终端连接系统那种集中式控制,分成主站和次站,主站是中央主机,次站是其他终端;对于分组交换网络(分布式结构),所有的站都是组合站)
链路构型
• 非平衡型:集中式控制
• 平衡型:分布式控制
操作模式
• 正规响应模式 → 属于非平衡型
• 异步响应模式 → 属于非平衡型
• 异步平衡模式 → 属于平衡型
对于平衡型来讲它只有异步平衡模式,也就是每个站点它自主发出通信,是一个自治的系统
对于主站和次站构成的非平衡型来讲,它分为正规响应模式(次站必须受到主站的控制,也就是次站在没有得到主站的许可的情况下,它不能主动发起数据传输)和异步响应模式(次站在没有得到主站的许可情况下可以主动发起数据传输)
HDLC的功能组合
三种站,两种构型,三种操作模式,以及规程元素中定义的各种帧的各种组合产生多种链路层协议
HDLC定义了选择构成链路层协议的良序结构:
选择站构型(针对平衡系统还是非平衡系统) → 基本操作模式(是正规响应,异步响应还是异步平衡模式) → 基本帧种类(比如监控帧有四种,真正让它工作的是哪三种) → 12种任选功能 → 得到协议
HDLC的帧结构
HDLC的帧结构.png↑总共有6个字段
• 定界符
↑帧首(标志F)和帧尾(标志F)标志的内容都是01111110,是进行帧同步用的
空闲的点到点线路上连续传定界符,说明物理连接已经建立,能够建立数据链路
• 地址字段(Address)
进行寻址
↑(地址A),在当时的历史条件下有两个缺陷:
1. 只有一个地址(当时考虑的是针对非平衡系统,给出的地址是一个终端的地址,也就是次站的地址。因为所有的终端都是在和一个主机进行连接通信,所以没有必要给出主机也就是主站的地址)。现在用的网络不管是哪个层的都有两个地址(源地址和目的地址)
2. 地址只有一个字节8位,也就是它最多只能表示256台节点,不管是主站,次站或复合站,只能有256个。按照现在的网络规模来说远远达不到要求多终端线路,用来区分终端点到点线路,有时用来区分命令和响应
若地址是接收该帧站的地址,则该帧是命令帧
若地址是发送该帧站的地址,则该帧是应答帧
• 信息字段
也就是用户数据部分,也就是上层交给HDLC协议要求HDLC协议进行传输的数据内容
它的长度是可变的
• 帧校验序列字段
使用的是循环冗余校验法进行检错
用的生成多项式是CRC-CCITT= X16+X12+X5+1
• 控制字段
HDLC帧的类型
控制字段是用前两位进行区分的 ↓图
如果第一位为0,表示这是一个信息帧
如果第一位是1,第二位是0,表示这是一个监控帧
如果第一位是1,第二位也是1,表示这是一个无序号帧
帧类型:
1. 信息帧(Information):完成信息传送
主要有3个字段,N(S),P/F,N(R)
• 序号(Seq):滑动窗口技术(固定尺寸的),3位序号,发送窗口大小为7
(N(S)和N(R)是两个序号,N(S)是发送的序号,对发送的帧进行编号,长
度占了3位序号,从0编到7进行循环使用
捎带确认(Next):下一个希望接收到的帧
• N(R)是附载应答,A给B发送数据,B的应答不单独形成一个应答帧,而是把
应答的序号附在B给A传送的数据中给A传送过去。并且它采用的是成批应答的
方式,也就是说它给出应答的序号是它下一个期望的序号)
• 探寻/结束 P/F位(Poll/Final)(有时被称为P位,有时被称为F位)
最初是针对于非平衡系统而设计的
比如有一个主站,连接了三个次站1,2,3,此时主站要控制次站的工作,用的就
是P/F。主站发给次站的叫P位(轮询位),次站发给主站的叫F位(结束位)
工作过程:
主站一次发轮询帧,如果它发的这个帧的P这位等于1,并且地址等于1(第1
个次站的地址),意味着第1个次站被轮询到,也就是它有数据的时候就可以发
了,没有被轮询到的次站必须等待。1次站如果没有数据要发,就轮询到2次站,
以此类推。在1次站有数据要发的时候它就获得了信道的使用权。如果它需要发
送3个帧,前两个帧的F=0,最后一个帧的F=1,它的意思就是如果说在信道出
现了一个F这位等于1的帧,主站就知道占用信道使用权的那个次站已经传输结
束了,这时候又可以轮询下一个次站
※在平衡系统中因为每一个站点都是组合站它是不需要P/F的,每个站可以独立自主的
进行发送。在这种情况下P/F起到的作用是要求这个数据被立即处理,不能等待
2. 监控帧(Supervisory):差错控制(只负责差错恢复,不负责差错检验。注意差错检测是
由校验码字段完成的)和流量控制
↑☆HDLC协议采用的是双向应答,收到正确的帧产生类型0的应答,收到错误的帧产生类
型1或类型3的应答。在两个节点进行通信的时候,1和3的情况是不会同时出现的,因
为协议的制订者在之前就已经约定好采用的是全部重发还是选择重发
※HDLC和ADCCP允许选择拒绝,SDLC和LAPB不允许
3. 无序号帧(Unnumbered):链路控制管理(协商双方如何通信怎样进行信道的使用)
没有序号字段,把前面那两位和后面三位统称为M字段,这5位共有32种组合,这意
味着它可以进行32种控制,但是实际上并没有定义那么多的控制
作用可以包括断连,释放链接,设置链路的工作方式是正常响应方式,异步相应方式还
是异步平衡方式,进行拒绝等。可以用来传控制信息,也可在不可靠无连接服务中传数据
Type和Modifier联合表示不同类型的无序号帧