深入理解计算机网络读书笔记(五)

第五章 数据链路层

数据链路层的作用:在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,以便向网络层提供高质量的服务。

5.1 数据链路层基础

物理层上构建的是物理链路,在数据链路层上构建的是逻辑链路或者数据链路。

  • 为何除物理层外还需要一个数据链路层来构建数据传输通道?
    一是由于物理层传输介质的多样性,通信规程也各不相同,性能不稳定,而数据链路层中构建的逻辑链路不考虑不同物理链路上传输介质及其通信规程上的区别,只从逻辑意义上构建一条性能稳定、不受传输介质类型影响的逻辑数据传输通道。
    再一个原因是,物理层按位传输数据,传输效率低下,容易出现传输差错。而数据链路层以帧为单位进行传输的,一个帧通常包含数千个比特位,传输效率提高,不容易出错。
  • 数据链路层结构
    在OSI/RM和TCP/IP体系结构中,数据链路层就一层,而在局域网体系结构中数据链路层可细分为逻辑链路控制(Logical Link Control,LLC)子层和介质访问控制(Medium Access Control,MAC)子层。MAC子层的主要解决多路通信的介质争用和寻址,适用于广播型链路和点对多点链路。MAC子层接受物理层的服务,为LLC子层服务。
    注:SAP(Service Access Point,服务访问点):简单的说就是上层访问相邻下层所提供服务的点,SAP是邻层实体(实体即对应层的逻辑功能)间实现相互通信的逻辑接口,位于两层边界处。

5.2 数据链路层主要功能及实现原理

数据链路层(LLC子层)的主要功能:数据链路管理、封装成帧、透明传输、差错控制。

  • 数据链路管理
    (1)数据链路层提供的服务类型
    数据链路层提供的服务类型分为有确认的面向连接服务、有确认的无连接服务、无确认的无连接服务。前者称为面向连接服务,后面两者称为无连接服务。
    有确认的面向连接服务必须先建立好双方通信连接且等待对方确认后才提供服务。有确认的面向连接服务分为数据链路建立、数据传输、数据链路释放三个阶段。大多数广域网中通信子网的数据链路层协议采用有确认的面向连接服务,如SLIP(串行线路协议)、PPP(点对点协议)、PPPoE(基于以太网的点对点协议)、HDLC(高级数据链路控制)协议等。
    有确认的无连接服务不需要在数据传输结束后释放数据链路,接收端在接收到的每一个数据帧时都向发送端确认。应用于:令牌环网、令牌总线网、各种无线通信系统。
    无确认的无连接服务无须先在通信双方建立通信连接,传输时不要求接收端对所接收到的每一个数据帧进行确认。它是建立在可靠的通信线路基础之上的,所以数据传输仍然是非常可靠的。应用于:以太网中所使用的各种以太网协议。
    (2) 数据链路管理功能
    数据链路管理功能指链路连接的建立、维持和释放过程。在多个站点共享同一物理信道的情况下,如何在要求通信的站点间分配和管理信道也属于数据链路层管理功能的范畴。
  • 数据帧封装和透明传输
    数据链路层的数据帧封装功能包括将来自网络层的数据分组封装成数据帧和将来自物理层的比特流组装成数据帧。
    (1)数据包的帧封装原理
    数据包到达数据链路层后加上数据链路层的协议头和协议尾就构成了一个数据帧。在每个帧的前部加上一个帧头部,在帧的结尾处加上一个帧尾部,把网络层的数据包作为帧的数据部分,就构成了一个完整帧。
    (2)比特流的帧组装及透明传输原理
    接收端的物理层把比特流向数据链路层传输,数据链路层将比特流封装成数据帧。比特流的帧组装也即帧同步问题。
    帧同步:使接收端的数据链路层对从物理层传输而来的一串串比特流以帧为单位进行区分。
    (3)帧同步方法
    常用的帧同步方法:字节计数法、字符填充的首尾定界符法、比特填充的首尾定界符法、违法编码法。
    字节计数法:以一个特殊字符代表一个帧的起始,并以一个专门的字段来标识当前帧内字节数的帧同步方法。典型:DEC公司的DDCMP(Digital DataCommunications Message Protocol,数字数据通信报协议),SOH字段代表一个帧的起始,COUNT标识当前帧内字节数,NUM标识帧的顺序编号
    DDCMP

    字符填充的首尾定界符法:用一些特定的控制字符来定界一个帧的起始与结束的帧同步方法。例如:IBM的BSC协议,头部以一个或多个同步字符“SYN”标记数据块的开始;尾部用字符“ETX”标记数据决的结束。
    BSC帧示例

    比特填充的首尾定界符法:帧头和帧尾各插入一个特定的比特串来标识一个数据帧的起始与结束,帧头、帧尾特定比特串称为帧标志符。为了避免在信息位中出现的与帧起始和结束标志符相似的比特串时被误判为帧的首、尾标志,采用了比特填充的方法,例如:传输的数据帧为01101111110001,特定比特串01111110,比特填充后(11111后加0),实际传送的是01111110 011011111010001 01111110。接受方收到数据后,首先去掉两端的特定模式字符,然后在每收到连续5个1的比特位后自动删去其后所跟的0,恢复原始信息。比特填充帧同步方式易于硬件实现,性能优于字符填充方式。典型代表是ISO的HDLC协议。
    违法编码法,在物理层采用特定的比特编码方法,例如,曼彻斯特编码方法中将1编码成高-低电平对,将0编码成低-高电平对,高-高电平对和低-低电平对在数据比特中是违法的,借用这些违法编码序列来定界帧的起始与终止。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用于采用冗余编码的特殊编码环境。
  • 差错控制
    差错控制功能,包括发现差错的能力和纠正错误的能力。
    (1)差错检测:通过对差错编码进行校验来实现,常见的校验方法有奇偶校验码(Parity Check Code,PCC)、循环冗余校验(Cyclic Redundancy Check,CRC)两种,统称为检错码。
    (2)差错纠正:对于面向字符的异步传输,包括反馈检测法及自动重发请求法。
    反馈检测法在接收端收完一帧数据后,向发送端发送回所接收到的完整数据帧,由发送端通过与原始发送的帧进行比较来判断接收端是否正确接收了对应帧。如果错误,发送端向接收端发送一个DEL字符及相应的帧信息,提示接收端删除对应的帧,重发该帧;否则表示接收端已正确接收了对应的帧,不重发对应的帧。为了解决数据丢失导致的错误,数据发送时引入计时器(Timer)来限定接收端发回反馈信息的时间间隔。当发送端发送一帧数据的同时启动计时器,若计时器超时(Timeout),则可认为传的对应帧已出错,或丢失,继而发送端重新发送对应的数据帧。缺点:数据在信道中往返传输,传输效率低。
    自动重发请求法(ARQ法)原理:发送端将要发送的数据帧附加冗余检错码(如前面介绍的PCC、CRC码)一起发送,接收端则根据检错码对数据帧进行错误检测,若错误,就返回请求重发的响应,发送端收到重发请求,重新传送数据帧。
  • 流量控制
    流量控制指发送端的数据发送速度与接收端的数据接收速度和线路上的承载速率相匹配,否则会造成数据在传输过程中的丢失。数据链路层中流量控制的方案包括:基于反馈的流量控制方案,基于速率的流量控制方案。
    (1)基于反馈的流量控制方案
    基于反馈的流量控制方案指接收端在接收到一个数据帧后,要向发送端发送一个确认帧,表示发送端可以继续向它发送数据了。
    (2)基于速率的流量控制方案
    基于速率的流量控制方案是基于窗口滑动机制的速率控制方案,它规定发送端一次可以发送多少个数据帧,限制了发送端的数据传输速率,而无须接收端发回确认帧。

5.3 差错控制方案

差错控制的差错纠正方案包括反馈检测法和自动重发请求法两种。也有一些具有自动纠错功能的编码,称为纠错码(前向纠错码),如海明码。

  • 自动重发法中的冗余检错码
    (1)奇偶校验码
    奇偶校验码(PCC)是奇校验码和偶校验码的统称。原理:原信息代码的最后一位用于奇校验或偶校验的代码,最终的帧代码由n-1位信元码和1位校验码组成,使得帧代码中1的总个数为奇数(奇校验)或偶数(偶校验)。奇偶校验方法只能检查单个码元错误,检错能力差,只适用于误码率较低的环境,如用于以太局域网中、用于磁盘的数据存储中等。
    (2)循环冗余校验码(CRC)
    原理:要发送的帧加上一个校验码(二进制序列),生成一个新帧发送给接收端,使得所生成的新帧能整除特定数。接收端把接收到的新帧除以该特定除数。如果余数不为0,表明该帧出现传输差错,余数为0,则表明传输无错。这里的除法指模2除法。模2除法只对相同位数异或操作,被除数首位为1则商为1,被除数首位为0则商为0;余数去掉首位为新的被除数;新的被除数以0开头,则除数变为全0,以1开头则除数不变。例如:100101除以1110的过程:1.被除数:1001,除数:1110,商:1,余数:0111,2.被除数:1110,除数:1110,商:1,余数:0000,3.被除数:0001,除数:0000,商:0,余数:1。因此,商:110,余数:1。
    CRC校验步骤:选择一个用于校验的k位二进制除数;在待发送的数据帧后加上k-1位0,得到新帧,新帧与选定除数做模2除法,得到的余数即为CRC校验码,又称FCS(帧校验序列);将校验码与原数据帧相加,得到一个新帧发送到接收端,最后在接收端再把这个新帧与选定除数做模2除法。除数可以随机选择,也可按通行的标准选择,但最高位和最低位必须均为1。例如IBM的SDLC规程中使用CRC—16的除数为11000000000000101,而在ISO的HDLC规程、ITU的SDLC、X.25、V.34、V.41、V.42等中的除数为11000000000100001。
    计算示例:假设选择的CRC生成多项式为 ,要求出二进制序列10110011的CRC校验码。由CRC生成多项式可知,除数为11001;计算10110011 0000与11001的模2除法,余数为0100;计算0100与10110011的和,作为传输帧10110111。
  • 自动重发请求方案
    自动重发请求分为空闲重发请求和连续重发请求。
    (1)空闲重发请求方案
    又称停-等法,发送端每发送一帧后将数据帧作为待确认帧保留在缓冲存储器中并启动计时器,等待接收端发来的确认信息;接收端收到数据帧时,先利用帧中检错码进行校验,确认无差错后向发送端返回确认信息,检测到该帧有误时,返回一个否认帧,同时丢弃该帧; 如果发送端在计时器中规定的时间内收到来自接收端的确认信息,计时器清零,清除缓存中的待确认帧,开始下一数据帧的发送;若发送端的计时器超时或收到否认帧,则重发存放于缓冲器中的待确认数据帧。
    优点:设计简单,容易实现;缺点:存在等待时间,信道的有效利用率低。
    (2)连续重发请求方案
    发送端连续发送一系列数据帧(帧的数量视双方的缓存空间大小而定),不用等前一帧被确认便可继续发送下一帧,效率大大提高。发送端同时接收来自接收端的响应消息并对传输出错的数据帧进行重发。连续重发请求方案减少了等待时间,提高整个通信的吞吐量,发送端需要额外设置一个较大的缓冲存储空间(重发表)。
    出现传输差错时,连续重发请求方案有两种处理策略,即回退N帧策略和选择重发策略。回退N帧指回到错误帧的地方,重发错误帧及错误帧之后的帧,接收端自动删除错误帧之后的帧,直至该错误帧无误。选择重发指在接收端发现错误帧后,把其后续的正确帧存放在一个缓冲区中,同时向发送端发送NAK否认帧,要求重发错误帧,在收到无误的重发帧后,与存于缓冲区中的其余帧一起按正确的顺序递交给网络层。
  • 海明纠错码
    海明码是一个具备多个校验位,能够检测并纠正一位错误代码功能的纠错码,仅用于信道特性比较好的环境中,如以太局域网中。
    (1)海明码的原理:将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反将其纠正。
    (2)步骤:计算校验位数→确定校验码位置→确定校验码→实现校验和纠错。
    计算校验位数,假设N:添加了校验码位后整个信息的二进制位数,K:有效信息位数,r:校验码位数,它们之间的关系应满足:。
    确定校验码位置,校验码必须是在次方位置。
    确定校验码,校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验的比特位序列。第i位校验码从当前位开始,每次连续校验i位后再跳过i位,然后再连续校验i位,再跳过i位,以此类推。最后根据所采用的是奇校验还是偶校验即可得出第i位校验码的值。例如:第1个校验位,校验的码字符包括:第1位(本身),第3位,第5位,第7位,第9位,第11位,第13位,第15位,....
    实现校验和纠错,校验方式就是各校验码对它所校验的位组进行异或运算,采用偶校验时,各校验组通过异或运算后的校验结果均应该是为0;而采用奇校验时,各组校验结果均应是为1。纠错:对错误的位进行取反。

5.4 流量控制

流量控制方案主要有两种:一种是适用于面向字符的异步通信协议中的简单流量控制方案—XON/XOFF方案;另一种是适用于大量数据通信环境中的滑动窗口机制。

  • XON/XOFF流量控制方案
    XON/XOFF常用于通信双方速率不同步的情形,通过对发送端的数据传输速率进行控制,以达到与接收数据数据处理速率匹配。接收端的缓存空间满了或者接近满时,接收端向发送端发送XOFF控制字符,发送端收到XOFF控制字符时停止数据的发送;当接收端可以继续接收数据,接收端向发送端发送XON控制字符,发送端收到XON控制字符后恢复数据发送。
  • 滑动窗口机制
    窗口指发送端和接收端的缓存空间。滑动指缓存空间中存放的未处理帧数是变化的,发送端在收到确认帧,接收端向网络层提交帧后都会删除缓存中的对应帧。空闲重发中缓存空间大小为一帧,连续重发中缓存空间一般为4帧。
    滑动窗口示例(窗口大小为2帧):初始状态下,发送端和接收端的缓存空间中均没有保存数据帧。发送端发送0号帧,并保存在缓存空间中,建立一个待重发表,序号为0。发送端继续发送1号帧,同时把1号帧保存在缓存空间中,待重发表中添加1。发送端收到0号帧确认帧后,从缓存空间中清除0号待重发帧,待重发表中清除序号0, 接收端把收到的0号帧提交给网络层,并清除缓存空间中的0号帧,此时缓存空间中为空。发送端发送2号帧,同时也把2号帧保存在缓存空间中,待重发表中添加序号2。发送端在收到1号帧的确认帧后,立即从缓存空间中清除1号待重发帧,待重发表中清除序号1。接收端把1号帧提交给网络层,清除缓存空间中的1号帧,此时缓存空间中为空。重复这样的过程。

5.5 数据链路协议

数据链路协议可分为两类:面向字符的和面向比特的链路层协议。面向字符的链路层协议主要有IBM的BSC协议、DEC的DDCMP、SLIP、PPP等;面向比特的链路层协议主要有IBM的SDLC、在SDLC协议基础上ANSI的ADCCP和ISO的HDLC、CCITT在HDLC基础上提出的LAP等。面向字符的链路层协议用字符来控制帧的同步等信息,面向比特的链路层协议则用比特流来表示控制信息。

  • BSC协议
    数据帧中的数据被看作字符序列,数据块的头部用一个或多个同步字符SYN来标记数据块的开始;尾部用字符ETX来标记数据块的结束。链路上传送的数据必须是由规定字符集(例如ASCII,或者EBCDIC)中的字符组成,控制信息也必须由同一个字符集中的若干指定的控制字符构成。对于数据块中的特殊字符(控制字符)通过转义字符将其作为普通数据处理。
    (1)BSC控制字符
    通信控制字符:ACK:确认标志,由接收端发出的,作为对正确接收到报文的响应。DLE:转义标志,用于指示后面的字符是数据字符,而不是特殊控制字符。ENQ:询问标志,用于请求远程站点给出响应。响应可能包括远程站点的身份或状态。EOT:发送完毕标志,用于表示一个或多个文本的发送结束,并拆除链路。ETB:块终止或组终止标志,用于标志每个数据块的结束位置。仅在一个报文要分成多个数据块传输时才有此标志。ETX:文本终止标志,标志报文文本的结束。仅在一个报文不分成多个数据块传输时才有此标志。NAK:否认标志,由接收端发出的,作为对未正确接收的报文响应。SOH:报头开始标志,用于表示报文的标题信息或报头的开始,仅在报文的第一个数据块中才有此标志。STX:文本开始标志,标志标题信息的结束和报文文本的开始,每个数据块均有此标志。SYN:字符同步标志,用以实现通信双方的字符同步,或用于在无数据传输时保持同步,在每个数据块中均有此标志,而且通常是两个。
    (2)BSC数据块格式
    BSC协议数据块四种格式:



    (3)BSC基本特点:
    所有发送的数据均跟在至少两个SYN字符之后,以使接收端能实现字符同步;所有数据块在块终止标志符(ETX或ETB)之后还有块校验字符BCC,校验是单字节的CRC或双字节的CRC,校验范围从STX开始到ETX或ETB为止。

  • 面向比特的SDLC和HDLC协议
    面向比特的链路层协议中,数据块的头部和尾部都用一个特殊的比特序列来标记数据块的开始和结束。所有的面向比特的数据链路协议均采用统一的帧格式。
    SDLC支持识别两类网络站点:主站点和从站点。主站点控制从站点,主站点轮询从站点是否有数据要发送。从站点只有在主站点授权前提下才可以向主站点发送信息。主站点按照预先确定的顺序选择从站点,如果选定的从站点已经导入数据,才可进行数据传输。主站点负责链路的建立、拆除和控制。
    (1) HDLC链路结构和操作方式
    HDLC也采用主站点和从站点操作方式。主站点发往从站点称为命令帧,从站点返回主站点称为响应帧。HDLC中定义了三种链路结构:不平衡链路结构、对称非平衡链路结构和平衡链路结构,分别对应提供三种基本操作方式和三种扩充方式:正常响应方式(NRM)、异步响应方式(ARM)和异步平衡方式(ABM),和三种扩充方式:扩充正常响应方式、扩充异步响应方式、扩充异步平衡方式。异步响应方式中从站点可以在没有得到主站点允许的情况下开始数据传输,传输效率比NRM高。


    HDLC三种链路结构

    (2) SDLC/HDLC帧结构


    SDLC/HDLC帧结构

    标志字段:所有信息传输必须以一个标志字段F(Flag)开始,且以同一个标志字段结束。为了维持信道处于激活状态,发送端会不断地发送标志字段。地址字段:表明帧是来自主站点还是来自从站点,命令帧中地址字段携带目的从站点的地址,响应帧地址字段携带本站点的地址。通常为8位,00000000的地址为空地址,用于测试数据链路的状态;11111111地址为广播地址。控制字段:实现HDLC协议的各种控制信息,并标志帧的类型,占1个字节长度。控制字段前两位代表帧的类型,第1位为0,代表帧为信息帧,前两位为10,代表帧为监控帧S;前两位位为11,代表帧为无编号帧U。信息字段:包含了用户的数据信息和来自上层的各种控制信息。监控帧不具备信息字段。帧校验序列字段:可以使用16位的CRC,对两个标志字段之间的整个帧的内容进行校验。
    (3)SDLC/HDLC帧类型及其标识方法
    数据帧分为信息帧I、监控帧S、无编号帧U。
    控制字段结构

    第5位,P/F(Poll/Final,查询/结束)位:在不同帧中的含义不一样,命令帧中取P位,起查询的作用,值为1;响应帧中取F位,起结束数据发送或确认结束的作用,该位取1表示从站点数据发送完毕或响应完毕,该位取0表示数据未发送完。
    信息帧(I帧):I帧控制字段中第1位为0;第2-4位为N(S,Send),标志待发送的帧序号;第5位为P/F位;第6-8位为N(R,Recieve),标志待接收的确认帧序号(表示发送端已确认了前N-1个帧,同时发送端待接收第N帧的确认帧)。

    监控帧(S帧):S帧用于监视和控制数据链路,完成I帧的接收确认、重发请求、暂停发送请求等功能。S帧没有信息字段(48位)。S帧的控制字段中第12位固定为10;第3-4位为S,代表监控功能,包含4种监控类型的帧:00,接收就绪(RR),主站点用RR型S帧来查询从站点,从站点用RR型S帧作为对主站点的响应帧。01,拒绝(REJ),接收端要求发送端对从编号为N(R)开始的帧及其以后所有的帧进行重发。10,接收未就绪(RNR),接收端通知发送端尚未准备好接收编号为N(R)的I帧。11,选择拒绝(SREJ),接收端要求发送端发送编号为N(R)单个I帧;第5-8位与I帧一样。
    无编号帧(U帧):用于数据链路的控制,不带编号,可以在任何需要的时刻发出,不影响带编号的信息帧的交换顺序。第12位为11;第3-4,6-8位均为M,代表无编号功能;第5位P/F与I帧一样。U帧分为命令帧(C)和响应帧(R)。

  • 面向字符的PPP同步传输协议
    BSC、SDLC、HDLC属于局域网中的数据链路层协议,PPP(Point-to-Point Protocol,点对点协议)是广域网数据链路层协议。
    (1)PPP发展过程
    SLIP(串行线路网际协议)具有如下缺点:连接速率低;不能自动分配IP地址;无协议类型字段,只支持默认的IP协议,SLIP帧只是在IP包的首尾加一个END字符,作为帧边界,标志一个帧的起始和结束。包中END字符,用ESC字符和0xdc两个字符来替代,包中ESC字符用ESC字符和0xdd两个字符替代,以实现透明传输;无帧校验序列(FCS)字段,无法检测出传输差错。
    针对SLIP以上缺点提出PPP协议,PPP在连接速率上远高于SLIP,同时提供了协议类型字段和帧校验序列(FCS)字段,使得PPP除了支持IP协议包封装外,还可以封装其他三层协议包,可以提供各种差错控制功能。PPP通过几个子协议提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。
    子协议包括链路控制协议(LCP):用于建立、配置、测试和管理数据链路连接;网络控制协议(NCP):协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议;口令认证协议(PAP)和质询握手认证协议(CHAP):为PPP连接提供用户认证功能,可以确保PPP连接的安全性。
    PPP协议在ADSL(非对称数据用户环线)接入方式中,与其他的协议共同派生出了符合宽带接入要求的新协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。
    (2)PPP帧结构和透明传输原理


    PPP帧

    PPP帧包括7个字段,帧的首尾均有一个标志字段,其他字段各一个。标志:标志帧的起始或结束,1个字节,值固定为01111110(0x7E)。地址:标志对方节点地址的,由于PPP是点对点通信协议,无须知道对方的数据链路层地址(MAC地址),因此地址字段固定为标准广播地址11111111,1个字节。控制:PPP只有UI(无编号信息)帧,无须接收端对收到的帧进行确认,控制字段值固定为00000011。协议:PPP帧它除了可封装IP协议外,还可封装其他多种网络层协议包。协议字段占2个字节,指示在信息字段中封装的数据类型。信息:来自网络层的有效数据,可以是任意长度,默认为1500字节。帧校验序列(FCS):使用16位的循环冗余校验计算信息字段中的校验和,以验证数据的正确性。
    透明传输:PPP是面向字符协议,使用转义字符0x7D(01111101)进行填充,一字节变两字节。
    (3)PPP链路建立、使用和拆除流程
    整个过程分为死亡、链路建立、身份认证、网络控制协商和结束五个阶段。



    具体流程:用户向ISP或者对端节点发起PPP连接请求时,首先打开物理接口,通过封装了LCP的PPP帧与接口进行协商,协商内容包括工作方式(单PPP通信或多PPP通信)、认证方式和最大传输单元等。协商完成后就进入链路建立阶段,启用PPP数据链路层协议,对接口进行封装。如果启用成功,则进入身份认证阶段,保持LCP激活,否则关闭接口和LCP。数据链路建立成功后对请求连接的用户进行身份认证(CHAP/PAP)。身份认证成功后进入网络控制协商阶段,通过封装了NCP的PPP帧与网络层协议进行协商,并为用户分配一个临时的网络层地址;如果身份认证失败,直接进入结束阶段,拆除链路,返回死亡阶段,关闭LCP。PPP链路将一直保持通信,直至有明确的LCP或NCP帧关闭这条链路,或发生了某些外部事件导致进入结束阶段,关闭NCP协议,释放为用户分配的临时网络层地址,最后返回死亡阶段,关闭LCP。
    (4)PPP的PAP/CHAP身份认证
    身份认证方式包括:PAP(密码认证协议),CHAP(质询握手认证协议)。路由器间Serial口之间的PPP连接不需要身份认证。
    PAP身份认证:二次握手机制,被认证方发送认证请求→认证方给出认证结果。具体步骤:发起PPP连接的客户端向担当身份认证的PAP服务器端发送一个认证请求帧,包括用于身份认证的用户名和密码。服务器端收到认证请求帧后,查询服务器用户账户数据库,如果用户账户信息合法,向客户端返回一个认证确认(ACK)帧,表示认证成功;否则返回一个认证否认(NAK)帧,表示认证失败。如果第一次认证失败,并不会直接将链路关闭,而是提示客户端以新的用户账户信息再次认证,当认证失败达到一定次数(默认为4)才会关闭链路,以防止因误传、网络干扰等造成不必要的LCP重新协商过程。缺点:PAP身份认证用户名及密码在网络上是以明文方式进行传输,不安全。
    CHAP身份认证:三次握手机制,认证方要求被认证方提供认证信息→被认证方提供认证信息→认证方给出认证结果。具体步骤:链路建立后,CHAP服务器端不断产生一个随机序列号的质询(challenge)字符串帧发送给CHAP客户端,询问客户端是否要进行身份认证,直至客户端对质询做出响应,把用于身份认证的用户名和密码通过MD5摘要加密协议生成一个随机序列的响应帧发送给服务器端。服务器端收到响应帧后,解密出其中的认证用户名和密码,并在本地用户账户数据库中查找,如果用户信息合法,通过认证,允许客户端发起的PPP连接,否则拒绝认证,认证失败。同样,多次认证失败后才会关闭链路。

你可能感兴趣的:(深入理解计算机网络读书笔记(五))