点对点信道的数据链路层

上传人:ni****g 文档编号:587497178 上传时间:2024-09-06 格式:PPT 页数:59 大小:762.50KB
返回 下载 相关 举报
点对点信道的数据链路层_第1页
第1页 / 共59页
点对点信道的数据链路层_第2页
第2页 / 共59页
点对点信道的数据链路层_第3页
第3页 / 共59页
点对点信道的数据链路层_第4页
第4页 / 共59页
点对点信道的数据链路层_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《点对点信道的数据链路层》由会员分享,可在线阅读,更多相关《点对点信道的数据链路层(59页珍藏版)》请在金锄头文库上搜索。

1、第4章 点对点信道的数据链路层数据链路层基本概念数据链路层三个基本问题 PPP协议HDLC协议数据链路层的简单模型局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动数据链路层的简单模型( 续)局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路

2、层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动n数据链路层的协议数据单元帧。n数据链路层的任务就是把网络层交下来的数据发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在因特网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。数据链路层功能n 数据链路层最主要的功能可归结为以下几点。n(1)结点A的数据链路层把网络层交下来的IP数据报封装成帧。n(2)结点A把封装好的帧发送给结点B的数据链路层。n(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。图图4-3 4-3 数据链路层的通信

3、模型数据链路层的通信模型 4.1.2 链路和数据链路n所谓链路 (link) 就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。在进行数据通信时,两个计算机之间的通信路径往往要经过许多段这样的链路。可见,链路只是一条路径的组成部分。n数据链路 (data link) 则是另一个概念。当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用网络适配器(拨号上网使用拨号适配器,通过以太网上网使用局域网适配器)来实现这些协议的硬件和软件。 n也有人采用另外的

4、术语。这就是把链路分为物理链路和逻辑链路。物理链路就是我们讨论的链路,而逻辑链路就是数据链路,是物理链路加上必要的通信协议。n早期的数据通信协议曾叫做通信规程 (procedure)。因此,在数据链路层,规程和协议是同义语。对数据链路层理解n1)以帧为数据单位的n2)数据帧在不同的网络中传输时,数据链路层要在数据帧中的头部加入一个控制信息(DH),其中包含了源节点和目的节点的地址,这个地址也被称为物理地址(如下图所示):n(3数据链路层对发送数据帧的速率必须进行流量控制,以免数据丢失n(4 数据链路层通过尾部控制信息(DT)进行差错控制,检测出错或重复的数据帧,并对错误的帧进行纠错或重发n(5

5、)数据链路层进行接入控制,确定在某一时间内该由哪一个节点发送数据数据链路层三个基本问题n数据链路层发送方应当让接收方数据链路层知道,所发送的帧是从什么地方开始到什么地方结束,这是帧定界问题。n传送的数据比特组合必须是不受限制。数据链层协议不能禁止传送某种比特组合。这就是透明传输问题。n数据链路层必须有差错检测功能。帧定界n 帧定界 (framing) 就是确定帧的界限。每一种链路层协议都规定了帧的数据部分的长度上限最大传送单元MTU (Maximum Transfer Unit)。 图图4-4 4-4 用帧首部和帧尾部进行帧定界用帧首部和帧尾部进行帧定界图图4-5 4-5 用控制字符进行帧定界

6、的方法举例用控制字符进行帧定界的方法举例帧首部和尾部n首部和尾部作用:除帧定界外,还包括其他一些控制信息。n发送帧时,是从帧首部开始发送。n各种数据链路层协议都对帧的首部和尾部都有明确规定。n为提高帧传送效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度,但每一种链路层协议都规定了帧数据部分长度上限。这种上限称为最大传送单元MTU。帧定界符n数据是由可打印ASCII码组成文本时,帧定界可使用特殊的帧定界符。nASCII码有128个不同的ASCII码,其中可打印的有95个,不可打印的有33个。nASCII控制字符SOH表示帧首部开始,EOT表示帧的结束。注意SOH的ASCII码为01,而E

7、OT的ASCII码为04。EOT和SOH不是E、O、T和S、O、H字母组合。帧定界作用n异步传送时,可以确定一个帧的开始和结束。n同步传送时,发送方连续地发送数据帧。接收方借助于帧定界符从连续地比特流中找出每一帧的开始和结束位置。n短暂出故障情况下,又重新发送情况下,接收方根据帧定界符确定是否接收还是丢弃。透明传输n由于帧的开始和结束标记是使用专门指明的控制字符,因此,所传输的数据中任何一个字符不允许和用做帧定界的控制字符一样,否则会出现帧定界错误。n当传送的帧是用文本文件组成帧时,其数据部分不会出现像SOH或EOT这样的帧定界控制字符。不管键盘上输入什么字符都可以在帧中传送过去。因此这样传输

8、就是透明传输。n当传送非ASCII文本文件时。如果数据中的某个字符字节的二进制代码恰好和SOH或EOT这种控制字符一样。如图4-6数据链路层会错误地“找到帧的边界”把部分帧收下,而把剩下部分丢弃。图图4-6 4-6 数据部分恰好出现与数据部分恰好出现与EOTEOT一样的代码一样的代码解决办法n1、采用转义字符n2、比特插入转义字符n当数据中出现字符“SOH”或“EOT”时将其转换为另一字符,而这个字符不会被解释为控制字符的。这种方法称为字节插入。如:数据出现的控制字符经字节插入后发送时的字符SOHESC xEOTESC yESCESC z上述控制字符称为转义字符。思考:为什么ESC也要进行转换

9、举例n当数据中出现SOH和EOT时增加转义字符。差错控制n现实的通信链路都不会是理想的,这就 是说比特在传输过程中可能会产生差错:1变为0,0变为1.n为了保证数据传输的可靠性,在计算机网络传输数据时,都必须采用各种差错检测措施。nCRC校验是一种具体检错技术。循环冗余检验的原理 n在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。n假设待传送的数据 M = 1010001101(共k bit)。我们在M的后面再添加供差错检测用的 n bit 冗余码一起发送。 冗余码的计算 n用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。n得到的 (

10、k + n) bit 的数除以事先选定好的长度为 (n + 1) bit 的数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 至少要少1 个比特。 冗余码的计算举例 n设 n = 5, P = 110101,模 2 运算的结果是:商 Q = 1101010110, 余数R = 01110。n将余数 R 作为冗余码添加在数据 M 的后面发送出去,即发送的数据是,或 2nM + R。 1101010110 Q 商 除数 P 2nM 被除数 110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101

11、 01110 R 余数循环冗余检验的原理说明 帧检验序列 FCS n在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。n循环冗余检验 CRC 和帧检验序列 FCS并不等同。nCRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。nFCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。 接收方校验n在接收方对接收到的帧进行CRC校验。把收到的帧除以同样的P(模2运算),得出余数R。n如果数据在传输过程中没有差错,则得出的余数应为0。如果数据传输过程中出现误码,则得不出余数为0的结果。检测出差错 n只要得出的余

12、数 R 不为 0,就表示检测到了差错。n但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。n一旦检测出差错,就丢弃这个出现差错的帧。n只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 应当注意 n仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。n“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。n也就是说:“凡是接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。n要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。 4.3

13、 点对点协议PPP4.3.1 PPP协议特点n现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。n用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。 PPP PPP协议应满足的需求协议应满足的需求 IETF认为,在设计PPP协议时必须考虑以下的多方面需求 RFC 1547。(1)简单)简单 n(2)封装成帧n PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符)。帧定界是指接收方从收到的比特流中应当能准确地找出一帧的开始和结束在什么地方。n(3)透明性 n(4)多种网络层协议 PPP协议必须能够在在同一

14、条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。n(5)多种类型链路 PPP能够在多种链路上运行。如串行的或并行的,同步的或异步的,低速的或高速的,电的或光的,交换的或非交换的。n(6)差错检测 (error detection) PPP协议必须能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。n(7)连接的活跃度 PPP协议必须具有一种机制来自动检测出链路上连接的活跃度(liveness),也就是说,必须能够及时(不超过几分钟)检测出一条链路是处于正常工作状态,还是已经出了故障。 n(8)最大传送单元 PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。

15、 n(9)网络层地址协商 n(10)数据压缩协商 2PPP协议不需要的功能n(1)纠错 (error correction) PPP协议是不可靠传输协议。 n(2)流量控制 n(3)序号 n(4)多点线路 n(5)半双工或单工链路 PPP 协议三个组成部分 n将 IP 数据报封装到串行链路的方法。n链路控制协议 LCP (Link Control Protocol):用于建立、配置和测试数据链路连接。n网络控制协议 NCP (Network Control Protocol):用于支持不同的网络层协议。4.3.2 PPP 协议的帧格式n标志字段 F :01111110 0x7E,即帧定界符n地

16、址字段 A 只置为 0xFF。控制字段 C 通常置为 0x03。注:地址字段与控制字段留做扩展用,实际上并没起作用。n信息部分是IP数据报,受MTU限制,一般不超过1500字节。PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。 n帧校验序列FCSn协议字段指明信息部分的内容的类型n帧格式如下图所示: PPP 协议的帧格式nPPP 有一个 2 个字节的协议字段。n当协议字段为当协议字段为 0x0021 时,时,PPP 帧的信息字段就是帧的信息字段就是IP 数据报。数据报。n若为若为 0xC021, 则信息字段是则信息字段是 PPP 链路控制数据。链路控制数据。n若为若为 0x8021

17、,则表示这是网络控制数据。,则表示这是网络控制数据。 IP 数据报1211字节12不超过 1500 字节PPP 帧先发送7EFF03FACFCSF7E协议信 息 部 分首部尾部PPP协议中的透明传输问题 n当 PPP 用在同步传输链路时,协议规定采用零比特填充法n当 PPP 用在异步传输时,就使用一种特殊的字节填充法: 零比特填充法 n问题:当帧的两个标志字段之间的比特串中碰巧出现了与标志字段一样的数据时,接收端会误认为找到了一帧的边界。n解决方法: PPP 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。即在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个

18、 0。n在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流。 零比特的填充与删除举例 数据中某一段比特组合恰好数据中某一段比特组合恰好出现和出现和 F 字段一样的情况字段一样的情况0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0会被误认为是会被误认为是 F 字段字段发送端在发送端在 5 个连个连 1 之后之后填入填入 0 比特再发送出去比特再发送出去填入填入 0 比特比特0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0在接收端将在接收端将 5 个连个连 1 之后

19、之后的的 0 比特删除,恢复原样比特删除,恢复原样在此位置删除填入的在此位置删除填入的 0 比特比特0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0PPP协议中的字节填充法n将信息字段的0x7E转义为0x7D,并添加一个字节,具体方法:n(1)将信息字段的0X7E转变为0X7D,0X5E, (2)将0X7D转变为0X7D,0X5D, (3)若出现ASCII码控制字符,将ASCII码的控制字符前加入一个0X7D,并按规定将字符的编码改变。 4.3.3 PPP协议的工作状态nPPP链路的起始和终止状态永远是图4-12中的“静止状态”,当检测到调制解调器的载波信号,并建立物理层

20、连接后,PPP就进入链路的“建立状态”。这时LCP开始协商一些配置选项,即发送LCP的配置请求帧 (configure-request)。 图图4-12 4-12 使用使用PPPPPP协议的状态图协议的状态图n链路的另一端可以发送以下几种响应。n(1)配置确认帧 (configure-ack): 所有选项都接受。n2)配置否认帧 (configure-nac): 所有选项都理解但不能接受。n(3)配置拒绝帧 (configure-reject): 选项有的无法识别或不能接受,需要协商。nLCP配置选项包括链路上的最大帧长、所使用的鉴别协议 (authentication protocol) 的

21、规约(如果有的话),以及不使用PPP帧中的地址和控制字段 。n协商结束后就进入“鉴别状态”。若通信的双方鉴别身份成功,则进入“网络状态”。n如果在PPP链路上运行的是IP,则使用IP控制协议IPCP (IP Control Protocol) 来对PPP链路的每一端配置IP模块(如分配IP地址)。 n当网络层配置完毕后,链路就进入可进行数据通信的“打开状态”。两个PPP端点还可发送回送请求LCP分组 (echo-request) 和回送回答LCP分组 (echo-reply) 以检查链路的状态。n数据传输结束后,链路的一端发出终止请求LCP分组 (terminate-request) 请求终止链路连接,而当收到对方发来的终止确认LCP分组 (terminate-ack) 后,就转到“终止状态”。当载波停止后则回到“静止状态”。4.4 HDLC协议nHDLC (High-level Data Link Control),译为高级数据链路控制,链路接入规程LAP (Link Access Procedure),LAPB叫做链路接入规程(平衡型)。 图图4-13 HDLC4-13 HDLC的帧结构的帧结构nHDLC采用零比特填充法实现透明传输。地址字段是8位,控制字段共8位 , HDLC帧划分为3大类,即信息帧、监督帧和无编号帧。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号