简中国种海技术大车 第3章数据链路层 计算机网络(第6版) ·主要学习在数据链路层上,两台(物理上) 相邻机器实现可靠有效的完整信息块(帧) 通信的一些算法。 ·特点: 第3章数据链路层 ①通信信道传递的比特顺序与发送顺序完全 相同 中国科学技术大学曾凡平 ②信道可能会出错 ③机器发送比特的速率可能不同 ④数据传输率有限(传输有延迟) 3.数然继路 第2章主要内容回顾 数据链路层 ·信号的时间和幅值特征 数据链路层使用的信道主要有以下两种类型: ·信道的极限容量 ·点对点信道。这种信道使用一对一的点对点通 ·调制和编码 信方式。 ·导引型传输媒体(有线) ·广播信道。这种信道使用一对多的广播通信方式, 因此过程比较复杂。广播信道上连接的主机很多, ·非导引型传输媒体(无线) 因此必须使用专用的共享信道协议来协调这些 ·频分复用、时分复用、统计时分复用、码分多址 主机的数据发送。 CDMA ·数据链路层位于物理层和网络层之间,它使用物 ·宽带接入技术:ADSL和HFC 层的服务传输协议单元(帧),为网络层提供服 务 3然位蝎 第3章数据链路层 数据链路层的简单模型 ·3.1使用点对点信道的数据链路层 主机H,向H2发送数据 ·3.2点对点协议PPP 路由器R, ·3.3使用广播信道的数据链路层 主机H 路由器R2 路由器R 主机H2 局域网 域网 ·3.4扩展的以太网 局成阿 ·3.5高速以太网 从层次上来看数据的流动 应用层 用层 运输层 R R2 输层 网络层 网路 络层 链路层 连路 路 路层 物理层 理层 3数松链烟 数据链路层的地位
( ) ( ) ( ) H1 H2 R1 R2 R3 H1 H2 R1 R2 R3 H1 H2
数据链路层的简单模型(续) 3.1.1数据链路和帧 主机H,向H,发送数据 路由餐R 路由最R ·链路(ik)是一条无源的点到点的物理线路段,中间 主机H, 路由叠R, 主机H, 没有任何其他的交换结点。 局网 ·一条链路只是一条通路的一个组成部分。 H,到H,所经过的网络可以是多种的 ·数据链路(data link)除了物理线路外,还必须有通信 H. 仅从数据链路层观察帧的流动 协议来控制这些数据的传输。若把实现这些协议的 应用层 应用层 硬件和软件加到链路上,就构成了数据链路。 运输层 R K> 输层 ·现在最常用的方法是使用适配器(即网卡)来实现这些协 网层 络层 议的硬件和软件。 ·一般的适配器都包括了数据链路层和物理层这两层的功能。 物理 不同的链路层可能采用不同的数据链路层协议 只考意数据在数据链路层的流动 3数据选别 3.雪据性第 3.1.1数据链路和帧 数据链路层从网络层获得数据包,然后将这些 ·也有人采用另外的术语。这就是把链路分为物理 数据包封装成帧frame)以便传输。 链路和逻辑链路。 ·每个帧包含一个帧头 一个有效载荷(用于存放 ·物理链路就是上面所说的链路。 数据包)以及一个帧尾。 ·逻辑链路就是上面的数据链路,是物理链路加上 必要的通信协议。 ·数裾链路层的核心工作是管理帧。 ·早期的数据通信协议曾叫做通信规程(procedure)。 因此在数据链路层,规程和协议是同义语。 3效松悦结 王数标链路 数据链路层传送的是帧 3.1使用点对点信道的数据链路层 结点A 结点B ·3.1.1数据链路和帧 网络层 P数据报 IP数据报 数据 入 ·3.1.2三个基本问题 链路层 物理层 01010 1010. 110 链路 (a)三展的简化横型 结点A 结点B 散据 发送 收 链路层 之 链路 6)只考虑败据能路展 使用点对点信道的数据链路层 3效黏链特 人数括性蜂
(frame ) ( )
数据链路层像个数字管道 用控制字符进行帧定界的方法举例 ·当数据是由可打印的ASCI码组成的文本文件时,帧 ·常常在两个对等的数据链路层之间画出一个数字 定界可以使用特殊的帧定界符。 管道,而在这条数字管道上传输的数据单位是帧。 ·控制字符SoH(Start Of Header)放在一帧的最前面, 表示颅的首部开始。另一个控制字符EOT(End Of 结点 结点 Transmission)表示帧的结束。 帧开始符 帧结束符 ·数据链路层不必考虑物理层如何实现比特传输的 细节。甚至还可以更简单地设想好像是沿着两个 SOH 装在顿中的数据部分 EOT 数据链路层之间的水平方向把帧直接发送到对方。 饭 发送在前 用控制字符进行桢定界的方法举例 3数据选 13 3.数然继路 3.1.2三个基本问题 2.透明传输 ·如果数据中的某个字节的二进制代码恰好和SOH或 ·数据链路层协议有许多种,但有三个基本问题则 EOT一样,数据链路层就会错误地“找到帧的边 是共同的。这三个基本问题是: 出现了“EoT 1.封装成帧 完整的顿 2.透明传输 发送 数据部分 3.差错控制 在前 SOH EOT EOT 被接收端 被接收端当作无效帧而丢弃 误认为是一个顿 数据部分恰好出现与E0T一样的代码 3效松悦地 14 王数括链路 1.封装成帧 解决透明传输问题 ·封装成帧(framing)就是在一段数据的前后分别添加首部 和尾部,然后就构成了一个帧。确定帧的界限。 ·解决方法:字节填充(byte stuffing)或字符填充 ·首部和尾部的一个重要作用就是进行帧定界。 (character stuffing) 发送端的数据链路层在数据中出现控制字符“SOH” 帧开始 IP数据报 帧结 或“EOT"的前面插入一个转义字符“SC”(其十六进 制编码是1B)。 发送 顿首部 顿的数据部分 航尾部 ·接收端的数据链路层在将数据送往网络层之前删除 插入的转义字符。 ≤MTU ·如果转义字符也出现在数据当中,那么应在转义字 数据链路层的顿长 符前面插入一个转义字符ESC。当接收端收到连续的 从这里开始发送 两个转义字符时,就删除其中前面的一个。 用帧首部和帧尾部封装成航 15 数性蜂
用字节填充法解决透明传输的问题 冗余码的计算 顿开始符 帧结束符 ·用二进制的模2运算进行2n乘M的运算,这相 原始数场 当于在M后面添加n个0。 EOT 50H ESC SOH EOT ·得到的(k+)位的数除以事先选定好的长度为 字节填充 字节填充 字节填充 字节填充 (n+1)位的除数P,得出商是Q而余数是R,余 数R比除数P少1位,即R是n位。 SOH ESC EOT ESC SOH ESC ESC ESC SOH EOT ·将余数R作为冗余码拼接在数据M后面发送出 经过字节填充后发送的敢据 去。 用字节填充法解决透明传输的问题 3致据健赠 19 3数然键路 3.差错检测 冗余码的计算举例 ·在传输过程中可能会产生比特差错:1可能会变 ·现在k=6,M=101001。 成0而0也可能变成1。 ·设n=3,除数P=1101, ·在一段时间内,传输错误的比特占所传输比特总 ·被除数是2"M=101001000。 数的比率称为误码率BER(Bit Error Rate)。 ·模2运算的结果是:商Q=110101, ·误码率与信噪比有很大的关系。 余数R=001。 ·为了保证数据传输的可靠性,在计算机网络传输 ·把余数R作为冗余码添加在数据M的后面发送出去。 数据时,必须采用各种差错检测措施。 发送的数据是:2nM+R 即:101001001,共(k+n)位。 3效松悦地 20 王数标链路 循环冗余检验的原理说明 循环冗余检验的原理 110100+Q(商) ·在数据链路层传送的帧中,广泛使用了循环冗余 P(除数)+1101)101001000+一2M(被除数) 检验CRC的检错技术。 1101 1110 ·在发送端,先把数据划分为组。假定每组k个比 11o1 特。 0111 0000 ·假设待传送的一组数据M=101001(现在k= 1110 6)。我们在M的后面再添加供差错检测用的n 1101 0110 位冗余码一起发送。 0000 1100 1101 001←一R(余数),作为FCS 3数松链特 21 人数帮性蜂
帧检验序列FCS 应当注意 ·在数据后面添加上的冗余码称为帧检验序列FCS ·应当明确,“无比特差错”与“无传输差错”是 (Frame Check Sequence) 不同的概念。 ·循环冗余检验CRC和帧检验序列FCS并不等同。 ·在数据链路层使用CRC检验,能够实现无比特差 ·CRC是一种常用的检错方法,而FCS是添加在数据 错的传输,但这还不是可靠传输。 后面的冗余码。 ·本章介绍的数据链路层协议都不是可靠传输的协 ·FCS可以用CRC这种方法得出,但CRC并非用来 获得FCS的唯一方法。 议。 3致据健赠 3雪据提第 接收端对收到的每一帧进行CRC检验 3.2点对点协议PPP ·(1)若得出的余数R=0,则判定这个帧没有差错, ·3.2.1PPP协议的特点 就接受(accept))。 ·3.2.2PPp协议的帧格式 ·(2)若余数R≠0,则判定这个帧有差错,就丢弃。 ·3.2.3PPP协议的工作状态 ·但这种检测方法并不能确定究竞是哪一个或哪几 个比特出现了差错。 ·只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 3效然:塘 25 王数标链路 应当注意 3.2.1PPP协议的特点 ·仅用循环冗余检验CRC差错检测技术只能做到无差 ·对于点对点的链路,目前使用得最广泛的数据链 错接受(accept)。 路层协议是点对点协议PPp(Point-to-Point ·“无差错接受”是指:“凡是接受的帧(即不包括 Protocol)。 丢弃的帧),我们都能以非常接近于1的概率认为 这些帧在传输过程中没有产生差错”。 ·用户使用拨号电话线接入互联网时,用户计算 机和ISP进行通信时所使用的数据链路层协议就 ·也就是说:“凡是接收端数据链路层接受的帧都没 是PPP协议。 有传输差错”(有差错的帧就丢弃而不接受)。 ·PPP协议在1994年就已成为互联网的正式标准。 ·要做到“可靠传输”(即发送什么就收到什么)就 必须再加上确认和重传机制。 27 人数帮性蜂
CRC FCS FCS CRC CRC FCS