第4章数据链路层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§4.3
点对点协议PPP
Internet中主要的数据链路层协议
SLIP (Serial Line IP) — 串行线路的Internet数据链路层协议,面向字符, RFC1055 PPP ( Point-to-Point Protocol) — 点-点协议,面向字节,RFC1661 通信线路质量较差的年代:HDLC(高级数据链路控制)
§4.1
数据链路层的基本概念
二 数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1 电话网 H1 应用层
路由器 R1
局域网
路由器 R2
广域网
路由器 R3 局域网
主机 H2
从层次上来看数据的流动
R1
网络层 链路层
H2 应用层
运输层
网络层 链路层
R2
网络层 链路层
R3
网络层 链路层
运输层
网络层 链路层 物理层
CRC 码的基本思想:
在信息报文上加上 一些检查位,构成一个 特定的待传报文,使它 能被一个事先约定的多 项式(生成多项式)除 尽。 接收方收到报文后, 再用同样的生成多项式 去除收到的报文多项式, 可以除尽表示传输无误, 否则不正确。
f(x) . xk G(x) = Q(x)+ R(x) G(x)
§4.2
三个基本问题
应当注意
仅用循环冗余检验 CRC 差错检测技术只能做 到无差错接受(accept)。 “无差错接受”是指:“凡是接受的帧(即不 包括丢弃的帧),我们都能以非常接近于 1 的 概率认为这些帧在传输过程中没有产生差错”。 也就是说:“凡是接收端数据链路层接受的帧 都没有传输差错”(有差错的帧就丢弃而不接 受)。 要做到“可靠传输”(即发送什么就收到什么) 就必须再加上确认和重传机制。
第四章 点对点信道的 数据链路层
§4.1
数据链路层的基本概念
一.概述
数据链路层是OSI参考模型中的第二层, 介乎于物理层和网络层之间,在物理层 所提供的服务的基础上向网络层提供服 务。数据链路层的作用是对物理层传输 原始比特流的功能的加强。
§4.1
数据链路层的基本概念
信道类型
数据链路层使用的信道主要有以下两种类型: 点对点信道:这种信道使用一对一的点对点通 信方式。 广播信道:这种信道使用一对多的广播通信方 式,因此过程比较复杂。广播信道上连接的主 机很多,因此必须使用专用的共享信道协议来 协调这些主机的数据发送。
三个基本问题
Q(x) k f(x) .x
R(x)
发送端:
1 1 0 0 1 1 发送数据 比特序列
1 0 0 1 CRC校验码 比特序列
带CRC校验码的 发送数据比特序列
接收端:
1 1 0 0 1
1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1
0 0 1 0 0 1 0 0 1 0 0 1 0
(3) 差错检测
数据链路层必须有差错检测功能。
一、帧定界
§4.2
三个基本问题
封装成帧(framing)就是在一段数据的前后分别添 加首部和尾部,然后就构成了一个帧。 帧定界 (framing) 就是确定帧的界限。每一种链 路层协议都规定了帧的数据部分的长度上限—— 最大传送单元MTU (Maximum Transfer Unit)。 发送方的数据链路层在帧的前后都各加入事先商定 好的标记,使得接收方在收到这个帧后,能根据这 种标记识别帧的开始和结束,以及帧里面装入的数 据部分的准确位置。
首部和尾部的一个重要作用就是进行帧定界。
§4.2
帧开始 开始 帧首部 发送 IP 数据报
三个基本问题
帧结束
帧的数据部分
MTU 数据链路层的帧长
帧尾部
首部和尾部作用:帧定界,其他一些控制信息。 发送帧时,是从帧首部开始发送。 各种数据链路层协议都对帧的首部和尾部都有明确 规定。 为提高帧传送效率,应当使帧的数据部分长度尽可 能地大于首部和尾部的长度,但每一种链路层协议 都规定了帧数据部分长度上限。这种上限称为最大 传送单元MTU(Maximum Transfer Unit)。
§4.3
点对点协议PPP
2. PPP 协议不需要的功能
纠错 ppp协议是不可靠传输协议 流量控制 序号 多点线路 半双工或单工链路
Fra Baidu bibliotek
§4.3
二、PPP协议的组成
点对点协议PPP
(1)一个将IP数据报封装到串行链路的方法。PPP既支持
异步链路(无奇偶检验的8比特数据),也支持面向比特的同 步链路。IP数据报在PPP帧中就是其信息部分。这个信息部 分的长度受最大接收单元MRU (Maximum Receive Unit)的 限制。MRU的默认值是1500字节。
三个基本问题
CRC- ANSI :
G(x)= x16+x15+x2+1
CRC-CCITT V.41:G(x)= x16+x12+x5+1 CRC-32: G(x)=
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 CRC校验可以100%地检测出长度小于等于n(n为G(x) 的阶数)的突发错误。所以CRC的生成多项式的阶数越高, 那么误判的概率就越小。
f(x) . xk = Q(x)G(x) + R(x)
f(x) . xk + R(x)
= Q(x) . G(x)
发送信息 冗余码
§4.2
G(x) 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1
§4.3
一、PPP 协议的特点
点对点协议PPP
PPP协议是IETF在1992年制定的。经过1993年 和1994年的修订,现在的PPP协议在1994年就 已称为因特网的正式标准。 用户使用拨号电话线接入因特网时,一般都是 使用 PPP 协议。 PPP协议是目前广域网上应用最广泛的协议之 一,它的优点在于简单、具备用户验证能力、 可以解决IP分配等。
现在最常用的方法是使用适配器(即网卡)来 实现这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这 两层的功能。
§4.2
三个基本问题
(1) 帧定界
数据链路层的发送方应当让接收方的数据链 路层知道,所发送的帧是从什么地方开始到 什么地方结束。
(2) 透明传输
数据链路层传送的比特组合必须是不受限制 的。
§4.2
三个基本问题
帧检验序列 FCS
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 循环冗余检验 CRC 和帧检验序列 FCS并不等 同。
CRC 是一种常用的检错方法,而 FCS 是添加在数 据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用 来获得 FCS 的惟一方法。
物理层
物理层
物理层
物理层
§4.1
数据链路层的基本概念
主机 H1 向 H2 发送数据
主机 H1 电话网 H1 应用层
路由器 R1
局域网
路由器 R2
广域网
路由器 R3 局域网
主机 H2
仅从数据链路层观察帧的流动
R1
网络层 链路层
H2 应用层
运输层
网络层 链路层
R2
网络层 链路层
R3
网络层 链路层
运输层
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。 在一段时间内,传输错误的比特占所传 输比特总数的比率称为误码率 BER (Bit Error Rate)。 为了保证数据传输的可靠性,在计算机 网络传输数据时,必须采用各种差错检 测措施。
§4.2
三个基本问题
循环冗余检验
§4.3
点对点协议PPP
用户到 ISP 的链路使用 PPP 协议
已向因特网管理机构 申请到一批 IP 地址 用 接入网 ISP 至因特网
户
PPP 协议
1. PPP 协议应满足的需求
§4.3
点对点协议PPP
简单——这是首要的要求 封装成帧 必须规定特殊的字符作为帧定界符。 透明性 多种网络层协议 必须能够在同一条物理链路上同时支持多种网络层协
§4.2
三个基本问题
用字节填充法解决透明传输的问题
帧开始符
SOH EOT
原始数据
SOH ESC SOH
帧结束符
EOT
字节填充
SOH ESC EOT
字节填充
ESC SOH
字节填充
ESC ESC
字节填充
ESC SOH EOT
发送 在前
经过字节填充后发送的数据
§4.2
三个基本问题
3. 差错检测
议(如IP和IPX等)的运行。
多种类型链路 能够在多种链路上运行 差错检测 必须能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。 检测连接状态 能够及时(不超过几分钟)检测出一条链路是处于正常
工作状态,还是已经出了故障。
最大传送单元 必须对每一种类型的点对点链路设置MTU的标准默认值。 网络层地址协商 数据压缩协商
三
链路 VS 数据链路 链路(link)是一条无源的点到点的物理线路 段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还 必须有通信协议来控制这些数据的传输。 若把实现这些协议的硬件和软件加到链路 上,就构成了数据链路。
网络层 链路层
物理层
物理层
物理层
物理层
物理层
数据链路层传送的是帧
结点 A 网络层 数据 链路层 物理层 帧
1010… …0110
结点 B
IP 数据报 装入 帧
IP 数据报 取出
1010… …0110
链路 (a) 结点 A 数据 链路层 发送 帧 链路 (b) 接收 帧 结点 B
§4.1
数据链路层的基本概念
§4.2
三个基本问题
帧定界作用
异步传送时,可以确定一个帧的开始和结 束。 同步传送时,发送方连续地发送数据帧。 接收方借助于帧定界符从连续地比特流中 找出每一帧的开始和结束位置。 短暂出故障情况下,又重新发送情况下, 接收方根据帧定界符确定是否接收还是丢 弃。
§4.2
三个基本问题
二、 透明传输
(2)一个用来建立、配置和测试数据链路连接的链路控制 协议LCP (Link Control Protocol) 。通信的双方可协商一 些选项。在[RFC 1661]中定义了11种类型的LCP分组。 (3)一套网络控制协议NCP (Network Control Protocol), 其中的每一个协议支持不同的网络层协议,如IP、OSI的网 络层、DECnet以及AppleTalk等。
§4.2
三个基本问题
接收端对收到的每一帧进行 CRC 检验
(1) 若得出的余数 R = 0,则判定这个帧没有 差错,就接受(accept)。 (2) 若余数 R 0,则判定这个帧有差错,就 丢弃。 但这种检测方法并不能确定究竟是哪一个或哪 几个比特出现了差错。 只要经过严格的挑选,并使用位数足够多的除 数 P ,那么出现检测不到的差错的概率就很小 很小。
§4.2
三个基本问题
生成多项式的选择
生成多项式应该满足以下要求: 任何一位发生错误都应使余数不为0 不同位发生错误应使余数不同 对余数继续作模2除运算应使余数循环
① ② ③
§4.2
标准CRC生成多项式G(x)
CRC-4: CRC-12: G(x)= x4 + x + 1 G(x)= x12+x11+x3+x2+x+1
§4.2
帧开始符
SOH
三个基本问题
帧结束符
用控制字符进行帧定界的方法举例
装在帧中的数据部分
EOT
帧
发送在前
数据是由可打印ASCII码组成文本时,帧定界可使 用特殊的帧定界符。 ASCII码有128个不同的ASCII码,其中可打印的有 95个,不可打印的有33个。 ASCII控制字符SOH表示帧首部开始,EOT表示帧的 结束。注意SOH的ASCII码为01,而EOT的ASCII码 为04。EOT和SOH不是E、O、T和S、O、H字母组合。
出现了“EOT” 完整的帧 发送 在前 数据部分
SOH EOT EOT
被接收端 误认为是一个帧
被接收端当作无效帧而丢弃
§4.2
三个基本问题
解决透明传输问题
字节填充(byte stuffing)或字符填充(character stuffing)——发送端的数据链路层在数据中出现 控制字符“SOH”或“EOT”的前面插入一个转义字符 “ESC”(其十六进制编码是 1B)。 接收端的数据链路层在将数据送往网络层之前删 除插入的转义字符。 如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个。