数据链路层将网络层移交的数据(IP数据报)添加到头和尾包中,成帧将其发送到链路。接收端取出接收帧的数据部分并将其移交给网络层。
图3.1数据链路层传输帧
3.1数据链路层的三个基本问题3.1.1包装成帧封装成帧就是在网络层的IP数据报前后添加头和尾,形成一个框架。NicholasTse和不同数据链路层协议尾部包含的信息有明确规定,在画面的开始和结束处,有一个画面开始符号和和帧结束符号,称为帧定界符。当接收端接收到从物理层发送的数字信号并从帧的开始到帧的结束读取字符时,认为已经接收到完整的帧。
当数据传输出现错误时,帧定界符的作用更为明显。如果发送方在发送帧之前突然出现故障并中断传输,而接收方接收到的帧只有帧开始字符,没有帧结束字符,则该帧被视为不完整帧,必须丢弃。
图3.2帧首部和帧尾部概括了成帧
为了提高数据链路层的传输效率,帧的数据部分应尽可能大于头部和尾部的长度。每个数据链路层协议都规定了可以传输的帧的数据部分长度的上限,即最大传输单位MTU,以太网的MTU为1500字节(MTU≤1500字节)。
3.1.2透明传输通常,我们在acsii字符代码表中使用非打印控制字符定界符,SOH从一个框架开始、EOT以画面结尾,定界符。
当和帧结束定界符“EOT”的代码出现在发送帧的数据部分时,接收端会错误地认为这是帧的结束字符,错误地认为已接收到完整的帧,随后的部分将被丢弃。
图3.3EOT出现在框架的数据部分
如何判断框架中的“EOT”和“SOH”是数据部分还是帧定界符?字节填充法
(1)在数据部分的“EOT”和“SOH”前面插入转义字符“ESC”
(2)接收端将删除“ESC”,并考虑“ESC”后的字符作为数据。
(3)如果“ESC”也出现在数据部分,同样,在数据部分的“ESC”前面插入一个“ESC”。接收后,接收器将删除“ESC”,并考虑“ESC”后的字符“ESC”作为数据。
图3.4字节填充方法
发送端在发送帧之前在原始数据中必要的位置插入转义字符,接收端在接收后删除转义字符以获得原始数据。在中间插入转义字符是将发送的原始数据完整地发送到接收端。这个过程被称为“透明传输”。
3.1.3错误检查比特传输过程中可能会出现错误:1可能变为0,0可能变为1。为了保证数据传输的可靠性,在通过计算机网络传输数据时必须采取各种错误检查措施。
一循环冗余测试华润
有线线路上的错误率非常低,因此对意外错误使用错误检测和重传机制更有效。数据链路层被广泛使用循环冗余校验错误检测技术。
误码率(BER):接收到的错误符号数占传输符号总数的比例。例如,当误码率为10-10时,这意味着每传输1010个比特,就会发生一个比特错误。
误码率=错误符号数/符号总数
为了让接收机判断帧的传输过程中是否存在错误,传输的帧需要包含用于检测错误的信息,这被称为帧检查序列。
使用CRC编码,我们需要在生成多项式g(x)上达成一致,生成多项式的最高和最低位必须为1。假设原始信息有m个比特,它对应于多项式m(x)。生成校验码的思想是在原始信息位之后加上几个校验位,这样附加的信息就可以除以G(x)。接收器接收带有校验位的信息,并将其除以G(x)。如果没有发生错误,则余数为0。
(1)生成CRC校验码
帧的数据部分和数据链路层(M=101001)头部的数据用于计算n位帧检查序列FCS,该序列位于帧的末尾。如何计算检查顺序?
图3.5计算未来作战系统
获得的剩余部分作为帧检查序列FCS。由于最高阶码为3,帧检查序列FCS应为3位,获得的余数为1。如果小于3位,则应在3的左边加两个“0”以获得001。
因此,这个问题的CRC校验码是001。
计算出的帧检查序列FCS=001和要传输的数据M=101001被发送到接收端。
即101001
图3.6根据CRC计算的FCS
(2)CRC校验
接收端将接收二进制的数字101001001移除至生成与多项式对应的二进制字符串1101。如果余数为0,则确定帧和接收帧中没有错误;如果余数不等于0,则确定帧中存在错误(但不可能确定哪些位或哪些位存在错误,并且无法同时纠正错误),并将其丢弃。
二海明密码
海明研究了利用冗余数据位检测和纠正代码错误的理论和方法。根据海明的理论,可以在数据位代码中添加多个冗余位以形成一个码字。海明码字之间的距离是当一个码字想要变成另一个码字时必须改变的最小位数。
例如,如果10101和00110与第一位有三个不同的位,海明的距离是3。
10101和00110执行异或运算,并计算异或运算结果中的数字1,即代码距离
因此,10011中的1是3,因此它们的代码距离是3
海明码是一种多奇偶校验检错系统,具有检错和纠错功能。为确保纠错和检测,代码距离必须大于或大于3。
对于m位数据位,添加k位冗余位以形成n=m+k位数据纠错码
对于2m个有效码字中的每一个,都有n个无效但纠错的码字。
M是信息位数,K是校验位数
3.2点对点通道的数据链路点对点信道是指链路上有一个发送方和一个接收方的信道,通常用于广域网链接
图3.7点对点链接
3.2.1PPP协议的特点PPP协议提供了在点到点链路上封装网络层协议信息的标准方法。现在世界上使用最多的数据链路层协议是点对点协议PPP(点对点)协议)。它具有简单、用户身份验证和IP分配的优点。当用户使用拨号电话线访问互联网时,他们通常使用PPP协议。
点对点信道通常用于广域网链路。PPP协议(面向字节)和HDLC协议(面对比特)它是广域网中最常用的链路层协议。通信线路质量差的时代:HDLC(高级数据链路控制)。
PPP协议只支持全双工链路,是面向字节的数据链路层协议。
图3.8点对点链接
PPP协议的特点:
(1)简单的:PPP协议不负责可靠的传输、纠错和恢复流量控制,不需要给框架编号。接收端收到帧后进行CRC检查。如果CRC检查正确,它将接受帧。相反,它将被直接丢弃,不做任何其他事情。
(2)成帧:PPP协议必须将特殊字符指定为AndyLau(每个数据链路层协议都有一个特定的AndyLau),以便接收器能够从接收到的比特流中准确地找到帧的开始和结束位置。
(3)透明度:PPP协议必须确保数据传输的透明度。如果数据中碰巧有帧定界符这样的比特组合,就应该采取有效措施来解决这个问题。字节填充方法。
(4)错误检测:PPP协议必须能够检测接收器接收到的帧,并立即丢弃有错误的帧。如果不在数据链路层进行错误检测,那么有错误的无用帧将继续在网络中转发,这将浪费大量网络资源。
(5)支持多种网络层协议:PPP协议必须能够支持多个网络协议(如IP和IPv6)在同一物理链路上的操作,这意味着IP数据包和IPv6数据包都可以封装在PPP帧中进行传输。
(6)多链接类型:PPP必须能够在多种类型的链路上运行,例如串行(一次只发送一个比特)或并行(一次并行发送多个比特)、同步或高速、电气或光学、交换(动态)或非交换(静态)点对点链路。
(7)检测连接状态:PPP协议必须有一种机制,能够及时(不超过几分钟)自动检测链路是否处于正常工作状态。当故障链路在一段时间后恢复正常运行时,尤其需要这种及时的检测功能。
(8)最大传输单位:PPP协议必须为每种类型的点到点链路设置最大传输单位MTU的标准默认值。这样做是为了促进实体之间的互操作性。如果高级协议发送的数据包太长并且超过MTU的值,PPP将丢弃这样的帧并返回错误。应该强调的是,MTU是数据链路层的帧可以加载的数据部分的最大范围,而不是帧的总长度。不超过1500字节
(9)网络层地址协商:PPP协议必须提供一种机制,使通信的两个网络层(如两个IP层)的实体能够通过协商了解或配置彼此的网络层地址。使用ADSL当调制解调器拨号接入互联网时,ISP将为拨号计算机分配一个公共网络地址,这是PPP协议的功能。
(10)数据压缩协商:PPP协议必须提供协商使用数据压缩算法的方法,但PPP协议不要求数据压缩算法标准化。
3.2.2PPP协议的组成(1)高级数据链路控制协议
高级数据链路控制协议是一种将IP数据报封装成串行链路的方法。
(2)链路控制协议
链路控制协议LCP(链路控制协议)用于建立、配置和测试数据链路连接。沟通双方可以协商一些选择。LCP主要负责建立和断开连接,并设置最大接收单元(MRU),Maximum接收单元),设置身份验证协议(爸爸或CHAP)以及是否监控通信质量。(身份验证和计费功能)
(3)网络控制协议新冠肺炎
网络控制协议NCP(网络控制协议)中的每个协议都支持不同的网络层功能,例如IPIPv6等待负责IP地址设置、TCP/IP报头压缩和其他设备(设备之间的这种交互也称为协商)。
图3.9PPP协议的三个组成部分
通过PPP连接时,通常需要验证用户名和密码,并在两个方向验证通信的两端(通过ISP连接到Internet时,通常不验证ISP端)。有两种身份验证协议:Pap(密码身份验证协议)和CHAP(质询握手身份验证协议)。
PAP指在建立PPP连接时通过两次握手验证用户名和密码。密码以明文形式传输。因此,它通常用于安全要求较低的环境中,否则将存在窃听或盗用连接的风险。
CHAP使用一次性密码OTP(一次性密码),可以有效防止窃听。此外,在建立连接后,可以定期进行密码交换,以检查是否中途更换了另一端。
3.2.3PPP协议的工作状态(1)当用户拨入ISP时,将建立从用户个人计算机到ISP的物理连接。
(2)用户的个人计算机向ISP发送一系列LCP数据包(封装在多个PPP帧中),以建立LCP连接。
(3)这些数据包及其响应选择一些要使用的PPP参数,然后进行网络层配置。网络控制协议NCP为新访问用户的个人计算机分配一个临时IP地址,使用户的个人计算机成为Internet上具有IP地址的主机。
(4)通信完成后,NCP释放网络层连接并收回最初分配的IP地址。接下来,LCP释放数据链路层连接。最后,物理层的连接被释放。
3.2.4PPP协议帧格式图3.10PPP帧格式
标志字段F=0x7e:帧开始,1字节。
注:符号“0x”表示以下字符以十六进制表示。十六进制7e的二进制表示是01111110。
地址字段a=0xff:固定值,1字节。(因为它是)点对点通信,(地址字段实际上不起作用。)
控制字段C=0x03:固定值,1字节。
协议字段:用于指示“信息部分”中的内容,2字节
当协议域为Engels时,PPP帧的信息域为IP数据报。
如果为0xc021,则信息字段为PPP链路控制数据。
如果是0x8021,则表示这是网络控制数据。
FCS:帧检查序列,2字节。
标志字段F=0x7e:帧结束,1字节。
PPP是面向字节的,所有PPP帧的长度都是整数字节。
3.2.5PPP框架填充方法当和帧出现在信息领域时,定界符开始,和帧像定界符一样结束了比特(0x7E)在组合时,我们必须采取一些措施,使比特的这种组合,在形式上与旗域相同,不出现在信息域中。
(1)使用字节传输填充
停留异步传输在链路上,数据以无线方式传输字节单元,PPP协议的帧定界符定义为0x7e。
图3.11PPP帧字节填充
发件人处理:
出现在信息字段中的每个7E(PPP帧定界符)字节转换为2字节序列(7D,5E)。
信息字段中出现错误7D(转义字符),将其转换为2字节序列(7天,5天)。
ASCII控制字符出现在信息字段中(值小于0x20的字符),然后在角色之前添加一个角色7D同时对字符进行字节和编码添加0x20。
接收机处理:
行为逆变换原始帧的数据部分可以恢复。
示例:PPP帧的数据部分(以十六进制书写)是7d5EFe277d5D7d5D657d5E。真正的数据部分是什么?
7D5E--7E
7D5D--7D
7D5EFE277D5D7D5D657D5E
所以真正的数据部分应该是:7eFe277d7d657e
(2)同步传输充满零比特
停留同步传输在链路上,数据以无线方式传输框架在里面PPP协议的帧定界符定义为0x7e,用二进制写为0111×1110,你可以看到中间有六个连续的。只要你能找到一种方法,不在数据部分连续出现六个,定界符肯定不会出现这种情况。
零比特填充法:
在发送端,只要找到五个连续的,就会立即填写0。这样可以确保信息字段中不会连续出现六个1。
接收器扫描帧中的比特流。每当发现五个连续的,在五个连续的之后删除一个0,以恢复原始信息比特流。
零比特12.3
(待续)
最新评论