《计算机网络--CH4点对点信道的数据链路层.ppt》由会员分享,可在线阅读,更多相关《计算机网络--CH4点对点信道的数据链路层.ppt(40页珍藏版)》请在金锄头文库上搜索。
1、第4章 点对点信道的数据链路层第 4 章 点对点信道的数据链路层4.1 数据链路层的基本概念 4.1.1 数据链路层的简单模型 4.1.2 链路和数据链路4.2 三个基本问题 4.2.1 帧定界 4.2.2 透明传输 4.2.3 差错检测4.3 点对点协议 PPP4.3.1 PPP 协议的特点 4.3.2 PPP 协议的帧格式4.3.3 PPP 协议的工作状态4.4 HDLC 协议 (略)数据链路层数据链路层使用的信道主要有以下两种类型:o点对点信道 这种信道使用一对一的点对点通信方式。o广播信道 这种信道使用一对多的广播通信方式,因此过程较复杂。广播信道上连接的主机很多,因此必须使用专用的共
2、享信道协议来协调这些主机的数据发。 4.1 数据链路层的基本概念4.1.1 数据链路层的简单模型局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动数据链路层的简单模型( 续)局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路
3、层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动这就是对等层通信IP 数据报1010 0110帧取出数据链路层网络层链路结点 A结点 B物理层数据链路层结点 A结点 B帧(a)(b)发送帧接收链路IP 数据报1010 0110帧装入数据链路层传送的是 帧帧仅从数据链路层观察帧的流动封装封装过程过程拆封装拆封装过程过程数据链路层像个数字管道 o常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。o早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。 结点结点帧帧4.1.2 链路和数据链路 o链路(link)是
4、一条无源的点到点的物理线路段,中间没有任何其他的交换结点。n一条链路只是一条通路的一个组成部分。o数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输,这就是我们常说的逻辑链路。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。n现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。n一般的适配器都包括了数据链路层和物理层这两层的功能。 4.2 三个基本问题 o帧定界就是确定帧的界限(边界)。 o透明传输网络的复杂机制对于端用户来说也是看不见的,因而是透明的。也就是用户不必关心传输过程的处理机制。o差错控制就是控制差错。 通信过程中的差错大致
5、可分为两类:一类是由热噪声引起的随机错误;另一类是由冲击噪声引起的突发错误。 突发性错误影晌局部,而随机性错误影响全局。 导致差错的原因原因是?4.2.1 帧定界o帧定界(framing)就是确定帧的界限。 帧结束帧首部IP 数据报帧的数据部分帧尾部 MTU数据链路层的帧长从这里开始发送帧开始用控制字符进行帧定界的方法举例 SOH装在帧中的数据部分帧帧开始符帧结束符发送在前EOT4.2.2 透明传输SOHEOT出现了“EOT”被接收端当作无效帧而丢弃被接收端误认为是一个帧数据部分EOT完整的帧发送在前解决透明传输问题o发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转
6、义字符“ESC”(其十六进制编码是 1B)。o字节填充(byte stuffing)或字符填充(character stuffing)接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。o如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。 SOHSOHESCSOHEOTESCESCzESCyESCzESCx原始数据EOTEOT经过字节填充后发送的数据字节填充字节填充字节填充字节填充发送在前帧开始符帧结束符用字节填充法解决透明传输的问题 3. 差错检测o比特在传输过程中可能会产生差错:1 可能会变成 0 而 0 也可
7、能变成 1。o在一段时间内,传输错误的码元/比特占所传输码元/比特总数的比率称为误码率/误比特率。o误码率与信噪比有很大的关系。o为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 循环冗余检验的原理 o在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC (Cyclic Redundancy Check ) 的检错技术。o在发送端,先把数据划分为组。假定每组k位。o假设待传送的一组数据 M = 101001(现在k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。 冗余码的计算 o用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在
8、 M 后面添加 n 个 0。o得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位(n 位)。o这个P,有的书称之为生成多项式。 冗余码的计算举例 o现在 k = 6, M = 101001。o设 n = 3, 除数 P = 1101,o被除数是 2nM = 101001000。 o模 2 运算的结果是:商 Q = 110101, 余数 R = 001。o把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R 即:101001001,共 (k + n) 位。 110101 Q
9、(商) P (除数) 1101 101001000 2nM (被除数) 1101 1110 1101 0111 0000 1110 1101 0110 0000 1100 1101 001 R (余数),作为 FCS 循环冗余检验的原理说明 帧检验序列 FCS o在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。o循环冗余检验CRC和帧检验序列FCS并不等同。nCRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。nFCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。 接收端对收到的每一帧进行 CRC 检
10、验 o若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。o若余数 R 0,则判定这个帧有差错,就丢弃。o但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。o只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 应当注意 o仅用循环冗余检验CRC差错检测技术只能做到无差错接受。o“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率,认为这些帧在传输过程中没有产生差错”。o也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。o要做到“可靠传输”(即发送什么就收到
11、什么)就必须再加上确认和重传机制。 4.3 点对点协议 PPP 4.3.1 点对点协议的特点 o现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。o用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。 用户到 ISP 的链路使用 PPP 协议 用户至因特网已向因特网管理机构申请到一批 IP 地址ISP接入网PPP 协议1. PPP 协议应满足的需求 o简单o封装成帧 o透明性 o多种网络层协议 o多种类型链路 o差错检测 o检测活跃度(即检测连接状态) o最大传送单元 o网络层地址协商 o数据压缩协商 2. PPP 协议不需要
12、的功能o纠错 o流量控制 o序号 o多点线路 o半双工或单工链路 3. PPP 协议的组成 o1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。 oPPP 协议有三个组成部分 n一个将 IP 数据报封装到串行链路的方法。n链路控制协议 LCP (Link Control Protocol)。n网络控制协议 NCP (Network Control Protocol)。 4.3.2 PPP 协议的帧格式o标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是
13、01111110)。o地址字段A只置为0xFF,地址字段实际上并不起作用。o控制字段 C 通常置为 0x03。oPPP 是面向字节的,所有PPP帧长度都是整数字节。 PPP 协议的帧格式oPPP 有一个 2 个字节的协议字段。n当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。n若为 0xC021, 则信息字段是 PPP 链路控制数据。n若为 0x8021,则表示这是网络控制数据。 IP 数据报1211字节12不超过 1500 字节PPP 帧先发送7EFF03FACFCSF7E协议信 息 部 分首部尾部透明传输问题 o当 PPP 用在同步传输链路时,协议规定采用硬件来完成比
14、特填充(和 HDLC 的做法一样)。 o当 PPP 用在异步传输时,就使用一种特殊的字符填充法。 字符填充 o将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。o若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。o若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。 零比特填充 oPPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。o
15、在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0信息字段中出现了和标志字段 F 完全一样的 8 比特组合发送端在 5 个连 1 之后填入 0 比特再发送出去在接收端把 5 个连 1之后的 0 比特删除会被误认为是标志字段 F 发送端填入 0 比特接收端删除填入的 0 比特零比特填充
16、不提供使用序号和确认的可靠传输 oPPP 协议之所以不使用序号和确认机制是出于以下的考虑:n在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。n在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。n帧检验序列 FCS 字段可保证无差错接受。 4.3.3 PPP 协议的工作状态 o当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。oPC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。o这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的
17、 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。o通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。 PPP 协议的状态图 建立失败失败NCP 配置鉴别成功通信结束载波停止检测到 载波双方协商一些选项鉴别网络打开终止静止4.4 HDLC 协议(略)o1974年,IBM公司推出了面向比特的规程SDLC (Synchronous Data Link Control)。o后来ISO把SDLC修改后称为HDLC(High-level Data Link Control) ,作为国际标准ISO3309。
18、oCCITT则将HDLC再修改后称为链路接入规程LAP(Link Access Procedure)。不久,HDLC的新版本又把LAP修改为LAPB,“B”表示平衡型(Balanced),所以 LAPB叫做平衡链路接入(访问)规程(平衡型)。 HDLC 的帧结构o标志字段 F (Flag) 为 6 个连续 1 加上两边各一个 0 共 8 位。在接收端只要找到标志字段就可确定一个帧的位置。 字节111可变21信息 Info标志 F标志 F地址 A控制 C帧检验序列 FCS透明传输区间FCS 检验区间其他字段 o地址字段 A 是 8 位。o帧检验序列 FCS 字段共 16 位。所检验的范围是从地址字段的第一位起,到信息字段的最末一位为止。 o控制字段 C 共 8 位,是最复杂的字段。HDLC 的许多重要功能都靠控制字段来实现。 小结o数据链路层的基本概念o数据链路层的三个问题o数据链路层的协议实例o作业