简中国种海技术大车 第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
用户到ISP的链路使用PPP协议 2.PPP协议不需要的功能 ·纠错 已向互联网管理机构 ·流量控制 申请到一批P地址 用 接入网 至互联网 ·序号 ISP ·多点线路 ·半双工或单工链路 PPP协议 3数据选别 31 3数然继路 1.PPP协议应满足的需求 3.PPP协议的组成 1.简单一一这是首要的要求。 ·PPP协议有三个组成部分: 2.封装成帧一一必须规定特殊的字符作为帧定界符。 ·()一个将P数据报封装到串行链路的方法。 3.透明性一一必须保证数据传输的透明性。 ·(2)链路控制协议LCP(Link Control Protoco). ·(3)网络控制协议NCP(Network Control Protocol)。 4. 多种网络层协议一一能够在同一条物理链路上同 时支持多种网络层协议。 5.多种类型链路一一能够在多种类型的链路上运行。 6.差错检测一一 能够对接收端收到的帧进行检测, 并立即丢弃有差错的帧。 3效松悦地 3 王数标链路 1.PPP协议应满足的需求(续) 3.2.2PPP协议的帧格式 7.检测连接状态一一能够及时自动检测出链路是否 ·PPP帧的首部和尾部分别为4个字段和2个字段。 处于正常工作状态。 ·标志字段F=Ox7E(符号“0x“表示后面的字符是用 8.最大传送单元一一必须对每一种类型的点对点链 十六进制表示。十六进制的7E的二进制表示是 路设置最大传送单元MTU的标准默认值,促进各 01111110) 种实现之间的互操作性。 ·地址字段A只置为OxFF。地址字段实际上并不起作 9.网络层地址协商一一必须提供一种机制使通信的 用。 两个网络层实体能够通过协商知道或能够配置彼 此的网络层地址。 ·控制字段C通常置为0x03。 ·PPP是面向字节的,所有的PPP帧的长度都是整数 10.数据压缩协商一一必须提供一种方法来协商使用 数据压缩算法。 字节。 3数标性蜂
(1) IP (2) LCP (Link Control Protocol) (3) NCP (Network Control Protocol)
PPP协议的帧格式 零比特填充 1P数据报 先发送 首部 尾部 ·PPP协议用在SONET/SDH链路时,使用同步传输 无金品被 (一连串的比特连续传送)。这时PPP协议采用 信息部分 FCS 7E 零比特填充方法来实现透明传输。 字节 1 1 1 2 不超过1500字节 1 PPP帧 ·在发送端,只要发现有5个连续1,则立即填入 一个0。 PPP有一个2个字节的协议字段。其值 ·接收端对帧中的比特流进行扫描。每当发现5个 ● 若为0x0021,则信息字段就是1P数据报。 连续1时,就把这5个连续1后的一个0删除。 若为0x8021,则信息字段是网络控制数据。 ·若为0xC021,则信德字段是PPP链路控制数据。 。若为0xC023,则信息字段是鉴别数据。 3数据选 37 3.数然继路 47 零比特填充 透明传输问题 信惠字段中出现了和 01001111110001010 ·当PPP用在同步传输链路时,协议规定采用硬件 标志字段「完全一样 来完成比特填充(和HDLC的做法一样)。 的8比特组合 会被误认为是标志字段F ·当PPP用在异步传输时,就使用一种特殊的字符 填充法。 发送端在5个连1之后 010011111010001010 填入0比特再发送出去 发送端填入0比特 接收端把5个连1 01001111100001010 之后的0比特测除 接收端副除填入的0比特 零比特的填充与副除 3效松悦地 38 王数括链路 字符填充(RFC1662规定) 不提供使用序号和确认的可靠传输 ·将信息字段中出现的每一个Ox7E字节转变成为 ·PPP协议之所以不使用序号和确认机制是出于以 2字节序列(0x7D,0x5E)。 下的考虑: ·若信息字段中出现一个0x7D的字节,则将其转变 ·在数据链路层出现差错的概率不大时,使用比较简单 成为2字节序列(0x7D,0x5D)。 的PPP协议较为合理。 ·在因特网环境下,PPP的信息字段放入的数据是IP ·若信息字段中出现ASCI码的控制字符(即数值 数据报。数据链路层的可靠传输并不能够保证网络层 小于0x20的字符),则在该字符前面要加入一 的传输也是可靠的。 个0x7D字节,同时将该字符的编码加以改变。 ·帧检验序列FCS字段可保证无差错接受。 3数标性蜂
PPP PPP IP FCS
3.2.3PPP协议的工作状态 3.3.1局域网的数据链路层 ·当用户拨号接入SP时,路由器的调制解调器对拨号做 出确认,并建立一条物理连接。 ·局域网最主要的特点是: ·PC机向路由器发送一系列的LCP分组(封装成多个PPP ·网络为一个单位所拥有: 顿)。 ·地理范围和站点数目均有限 ·这些分组及其响应选择一些PPP参数,并进行网络层配 ·局域网具有如下主要优点: 置,NCP给新接入的PC机分配一个临时的P地址,使 ·具有广播功能,从一个站点可很方便地访问全网。局域 PC机成为因特网上的一个主机。 网上的主机可共享连接在局域网上的各种硬件和软件资 ·通信完毕时,NCP释放网络层连接,收回原来分配出去 源。 的P地址。接着,LCP释放数据链路层连接。最后释放 ·便于系统的扩展和逐渐地演变,各设备的位置可灵活调 的是物理层的连接。 整和改变。 ·高的可靠性、可用性和生存性。 ·可见,PPP协议已不是纯粹的数据链路层的协议,它还 包含了物理层和网络层的内容。 3数苏健赠 43 3.数然继路 链路静止 设备之间无链路 局域网拓扑结构 LCP配 物理层连接建立 LCP链路 协商失败 终止 链路建立 物理链路 LCP配置协商 匹配电 链路终止 鉴别失败 鉴别 LCP链路 总线网 鉴别成功或无需鉴别 星形网 链路故障或 关闭请求 网络层协议 已鉴别的LCP链路 NCP配置协商 干线辆合{ 链路打开 已鉴别的LCP链路 和NCP链路 环形网 PPP协议的状态图 3松能地 44 王数标链路 3.3使用广播信道的数据链路层 媒体共享技术 ·3.3.1局域网的数据链路层 ·静态划分信道(用户被分配固定的信道) ·3.3.2CSMA/CD协议 ·频分复用 ·3.3.3使用集线器的星形拓扑 ·时分复用 ·波分复用 ·3.3.4以太网的信道利用率 ·码分复用 ·3.3.5以太网的MAC层 ·动态媒体接入控制(多点接入) ·随机接入:用户随机发送信息,同时发送信息可能产 生碰撞。 ·受控接入:用户发送信息必须服从一定的控制,如多 点线路探询(polling),或轮询。 3效松链特 45 数性蜂
(polling)
1.以太网的两个标准(10Mbit/s) 一般不考虑LC子层 ①DIX Ethernet V2是世界上第一个局域网产品 ·由于TCP/IP体系经常使用的局域网是DX (以太网)的规约。 Ethernet V2而不是802.3标准中的几种局域网, ②IEEE802.3是第一个IEEE的以太网标准。 因此现在802委员会制定的逻辑链路控制子层 LLC(即802.2标准)的作用已经不大了。 ·DIX Ethernet V2标准与IEEE的802.3标准只有很 小的差别,因此可以将802.3局域网简称为“以 ·很多厂商生产的适配器上就仅装有MAC协议而 太网” a 没有LLC协议。 ·严格说来,“以太网”应当是指符合DX Ethernet V2标准的局域网。 3数琳健器 的 3.数然继路 数据链路层的两个子层 2.适配器的作用 ·为了使数据链路层能更好地适应多种局域网标准, ·网络接口板又称为通信适配器(adapter)或网络 1EEE802委员会就将局域网的数据链路层拆成两个子 接口卡NIC(Network Interface Card),或“网 层: 卡 。包含了数据链路层和物理层这2个层次的 ·逻辑链路控制LLC (Logical Link Control)子层; 协议功能。 ·媒体接入控制MAC(Medium Access Control)子层。 ·适配器的重要功能: ·与接入到传输媒体有关的内容都放在MAC子层,而 LC子层则与传输媒体无关。 ·进行串行/并行转换。 ·对数据进行缓存。 ·不管采用何种协议的局域网,对LC子层来说都是 ·通过设备驱动程序与计算机的操作系统的交互。 透明的。 ·实现以太网协议。 3效松悦地 0 局域网对LC子层是透明的 计算机通过适配器和局域网进行通信 Lc子层看不见 P地址 硬件地址 下面的局域网 计算机 网络层 网络层 CPU和 适配器 至局域网 逻辑链路控制 LLC LLC 数据 存储器 并行 (网卡) 串行通信 媒体接入控制 MAC 局域网 MAC 链路层 通信 物理层 物理层 站点1 站点2 生成发送的数据 把帧发送到局域网 处理收到的数据 从局域网接收顿 3效松链特 51 人数括性蜂
LLC (Logical Link Control) MAC (Medium Access Control) TCP/IP DIX Ethernet V2 802.3 802 LLC 802.2 MAC LLC (adapter) NIC (Network Interface Card) 2 /
3.3.2 CSMA/CD协议 以太网采取了两种重要的措施 ·最初的以太网是将许多计算机都连接到一根总线 (2)以太网发送的数据都使用曼彻斯特(Manchester) 上。当初认为这样的连接方法既简单又可靠,因 编码,以实现信号收发双方的同步。 为总线上没有有源器件。 比特流 0 匹配电阻(用来吸收总线上传播的信号) 匹配电阻 曼彻斯特 只有D接受 B发送的数据 差分 人与 曼彻斯特 不接受 B向D 不接受 接受 不接受 曼彻斯特编码缺点是:它所占的频带 发送数据 宽度比原始的基带信号增加了一倍。 3数据选 55 3雪据提第 以太网采用广播方式发送 CSMA/CD协议 ·总线上的每一个工作的计算机都能检测到B发 ·CSMA/CD含义:载波监听多点接入/碰撞检测(Carrier 送的数据信号。 Sense Multiple Access with Collision Detection). ·由于只有计算机D的地址与数据帧首部写入的 ·“多点接入”表示许多计算机以多点接入的方式连接在 地址一致,因此只有D才接收这个数据帧。 一根总线上。 ·其他所有的计算机(A,C和E)都检测到不是发 ·“载波监听”是指每一个站在发送数据之前先要检测一 送给它们的数据帧,因此就丢弃这个数据帧而不 下总线上是否有其他计算机在发送数据,如果有,则暂 能够收下来。 时不要发送数据,以免发生碰撞。 ·在具有广播特性的总线上实现了一对一的通信。 ·总线上并没有什么“载波”。因此,“载波监听”就是 用电子技术检测总线上有没有其他计算机发送的数据信 号。 3然位蝎 3数标性路 以太网采取了两种重要的措施 碰撞检测 为了通信的简便,以太网采取了两种重要的措施: ·“碰撞检测”就是计算机边发送数据边检测信道上的 (1)采用较为灵活的无连接的工作方式 信号电压大小。 ·不必先建立连接就可以直接发送数据。 ·当几个站同时在总线上发送数据时,总线上的信号 ·对发送的数据帧不进行编号,也不要求对方发回确认。 电压摆动值将会增大(互相叠加)。 ·这样做的理由是局域网信道的质量很好,因信道质量产生差错 的概率是很小的。 ·当一个站检测到的信号电压摆动值超过一定的门限 ·以太网提供的服务是不可靠的交付,即尽最大努力的交 值时,就认为总线上至少有两个站同时在发送数据, 付。 表明产生了碰撞。 ·当目的站收到有差错的数据帧时就丢弃此顿,其他什么也不做, ·所谓“碰撞”就是发生了冲突。因此“碰撞检测” 差错的纠正由高层来决定。 也称为“冲突检测” ·如果高层发现丢失了一些数据而进行重传,但以太网并不知道 这是一个重传的帧,而是当作一个新的数据顿来发送。 57 人数标性蜂
3.3.2 CSMA/CD B D D A, C E (2) (Manchester) CSMA/CD CSMA/CD / (Carrier Sense Multiple Access with Collision Detection)