1.18k likes | 1.37k Views
第三章. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 内. 黑白纵横三千里. 容. 第一节 数据链路层的设计问题. 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理. 经天纬地一点通. 第二节 差错检测与校正. 传输差错的特性. 常用的简单差错控制编码:纠错码、检错码. 第三节 基本数据链路层协议. 无错信道上的单工停等 式 协议. 有错信道上的单工停等 式 协议. 第四节 滑动窗口协议. 1 位滑动窗口协议. 回退 N 协议. 选择重传协议.
E N D
第三章 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层
内 黑白纵横三千里 容 第一节 数据链路层的设计问题 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理 经天纬地一点通 第二节差错检测与校正 传输差错的特性 常用的简单差错控制编码:纠错码、检错码 • 第三节基本数据链路层协议 无错信道上的单工停等式协议 有错信道上的单工停等式协议 第四节滑动窗口协议 1位滑动窗口协议 回退N协议 选择重传协议 第五节数据链路层协议实例 SONET上数据包 对称数字用户线
内 黑白纵横三千里 容 第六节使用广播信道数据链路层 局域网的数据链路层;CSMA/CD协议 第七节以太网 经天纬地一点通 以太网回顾 经典以太网物理层 经典以太网的MAC子层协议 以太网性能 交换式以太网 高速以太网:100BASE-T以太网;吉比特以太网;10吉比特以太网 使用高速以太网进行宽带接入 第八节数据链路层交换 网桥的使用 学习网桥 生成树网桥 中继器、集线器、网桥、交换机、路由器和网关 虚拟局域网
主机A 主机B • 无确认的无连接服务 • 有确认的无连接服务 • 面向连接的服务 AL TL NL DL PL AL TL NL DL PL 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 数 据链路层的设计问题 3.1 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理 提供给网络层的服务
指明帧的开始和结束 标 志 字 段 地址字段 控制字段 正文字段 校验字段 成幀 • 涉及的问题 • 协议数据单元 • 将上层(网络层)交下来的数据包按照所采用协议决定的格式,封装成一定形式的帧; • 考虑接收双方的同步问题(即定界); • 计算帧的校验和并放入帧中一起传送给接收方; 帧:在数据链路上交换数据的单位。
字符计数法 字符填充的首尾定界法 位填充的首尾定界法 5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 计数值传输出错时导致收发双方不同步. 同步字符法 标志法 填充技术
物理层编码违例法 综合法 违例 或 “0” “1” • 用计数值确定帧尾 • 检查帧定界符是否出现在应该出现的地方 • 计算校验和
差错控制 • 顺序到达 指保证所有的帧最终都按正确的发送次序到达目的。 • 确认方式 • 计时器法 计时器值的设定要保证一帧到达对方并作处理后,相应的确认帧返回。 • ACK肯定确认 • NAK否定确认 计时结合序号才能保证每一帧的正确次序。 检错和纠错 检出传输中出现的差错;可能的话确定出错位置从而纠正错误。
流量控制 流量控制的特点 流量控制 网络层实体控制从数据链路层接收数据的速率,据此,数据链路层要控制从同等实体接收PDU的速率。 • 流量控制必须是动态的 • 必须有某种反馈机制 限制发送方发送速度的一种机制。使发送速率不能超过接收方能处理的速率。 流量速度不仅与发方速度相关而且与网络的当前拥挤程度有关 使发方了解收方的当前处理能力
路由器A 路由器B 分组/包 3 3 3 3 2 2 2 2 2 2 2 2 2 2 帧 传输线 数据链路进程 2 3 路由选择进程 链路管理 数据链路协议 DL协议的作用就是使不可靠的通信线路变得一定程度的好。
物理层: ---- 物理链路 ---- 比特流传输 ---- 有差错的物理链路 数据链路层: ---- 数据链路 ---- 帧传输 ---- 无差错的数据链路 ---- 数据链路层数据服务单元 ---- 帧 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换
差 错检测与校正 3.2.1 传输差错的特性 传输差错的特性 • 噪声分类: • 信道所固有的,持续存在的随机热噪声 • 由于外界特定的短暂原因所造成的冲击噪声 • 噪声比较: • 随机错通常较少 • 冲击噪声的幅度可以相当大 ,它是传输中产生差错的重要原因 • 衡量一个信道质量的重要参数是误码率: • 通常用10的负若干次方来标志信道的误码率Pe
差错控制编码的原理: 信息位:要发送的数据 冗余位:在向信道发送之前,先按照某种关系加上一定 ~ 发送与接收的过程: 发送时:信息位+冗余位构成码字发送; 接收时:收到码字后查看信息位和冗余位,并检查它们之间的关系(校验过程),以发现传输过程中是否有差错发生。 • 差错控制编码分类: • 检错码 • 指能自动发现差错的编码 • 纠错码 • 指不仅能发现差错而且能自动纠正差错的编码
衡量编码性能的参数 编码效率R 意思是码字中信息位所占的比例 若码字中信息位为k位,编码时外加冗余位为r位,则编码后得到的码字长为n = k + r位。 判定规律 编码效率越高,即R越大,则信道中用来传送信息码元的有效利用率就越高。
数据通信中,利用编码方法来进行差错控制的方式,基本上有两类:数据通信中,利用编码方法来进行差错控制的方式,基本上有两类: 自动请求重发ARQ(Automatic ReQuest for repeat) 接收端检测出有差错时,就设法通知发送端重发,直到正确的码字收到为止。 前向纠错FEC(Forward Error Correction) 接收端不但能发现差错,而且能确定二进制错码元的位置,从而就可以加以纠正。
除非在单向传输或实时要求特别高(FEC由于不需要重发,实时性较好)等场合外,数据通信中使用更多的还是ARQ差错控制方式。 自然,也可以将上述两者混合使用,即当码字中的差错个数在纠正能力以内时,直接进行纠正;当码字中的差错个数超出纠正能力时,则检出差错令其重发来纠正差错。 两种编码方式
差 错检测与校正 3.2.2 常用的简单差错控制编码:纠错码、检错码 纠错码 • 纠错码: • 海明(Hamming)码 • 检错码: • 校验和(Check Sum) • 块校验码(Block Check Code) • 循环冗余检错码CRC(Cyclic Redundancy Check)
海明纠错码 m个数据位外加r个纠错位。在2i (i=0,1,2,3…) 的位置放的是纠错位。m个数据的次序不变。如字符m的7位二进制码为1101101,要加上4位纠错码0011(偶校验),共11个bit。
纠错位的取值 一个纠错位由多个信息异或然后取偶/奇校验
海明码纠错位取值举例 采用偶校验
接收方的校验 计算结果S4 S3 S2 S1为0 0 0 0意味着接收正确 计算结果S4 S3 S2 S1为0 1 0 1意味着第5位出错
字符m采用海明码的发送序列为11001100111 接收方的校验举例 如接收到的序列也为 11001100111 S4S3S2S1=0000意味校验正确
字符m采用海明码的发送序列为11001100111 11001110111 如接收到的序列为 S4S3S2S1=0101意味第5位出错
检错码 校验和 • 算法简单、实现容易,但检错率不高 • 将发送的数据看成是二进制整数序列,并划分成一段段规定的长度(如8位、16位、32位等),计算他们的和。如校验和大于规定的长度,则将进位加到最后的校验和中。将校验和和数据一起发送。在接收端,重新计算校验和,与原校验和比较。如要传输“ Hello world.” • 以16位为例: • 4865H+6C6CH+6F20H+776FH+726CH+642EH+进位=71FCH
块校验码 • 块校验码BCC(Block Check Code)简单常用,但检错的强度较弱,如在同一列上有偶数位错,则不能检测。 • 如传输的数据都是ASCII字符(即面向字符,这在应用中很 • 多),每个字符进行奇偶校验,然后把所有的字符(连同奇偶 • 位)进行异或运算,运算结果即为其块校验码。发送端一面发 • 送一面计算,最后发送块校验码,接收端一面接收一面计算, • 最后与接收到的块校验码比较。 如“ Hello world.”,采用偶校验,校验后的字符序列为: 48H⊕65H⊕6CH⊕6CH⊕6FH⊕A0H⊕77H⊕6FH⊕72H⊕6CH⊕E4H⊕2EH=2EH
循环冗余检错码CRC CRC码计算举例 如一帧为1101011011 即:M(x)= x9+x8+x6+x4+x3+x+1 G(x)=x4+x+1 T(x)= x4M(x) =x4(x9+x8+x6+x4+x3+x+1) =x13+x12+x10+x8+x7+x5+x4
1 100001010 10011110 100 10 10 1 1 0 0 0 1 1 1 110110000 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 帧:1101011011 0 0 0 0 0 0 0 0 0 1 0 0 0 0 除数:10011 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 实际传输帧: 11010110111110 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 10 00 帧数据 余数 余数 CRC码计算举例 1 1 10
三个生成多项式国际标准 CRC-12: x12+x11+x3+x2+x1+1 用于字符长度为6位 CRC-16:x16+x15+x2+1 用于字符长度为8位 CRC-CCITT: x16+x12+x5+1 用于字符长度为8位 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换
基 本数据链路层协议 3.3.1 无错信道上的单工停等式协议 无错信道上的单工停等式协议 接收方不可能具有足够高的CPU处理能力来及时处理所有的接收帧,也不可能具有足够大的缓冲区,但仍假定:链路是理想的传输通道,所传输的任何数据既不会出错也不会丢失即:不需校验,也不可能重发所以,当它来不及处理时,应通知发送方暂缓发送,一旦可以继续接收,则通知发送方继续发送
SENDER voidsender2(void) {frames; packetbuffer; event_typeevent; while(true) { from_network_layer(&buffer); s.info=buffer; to_physical_layer(&s); wait_for_event(&event); } }
RECEIVER voidreceiver2(void) { framer,s; event_typeevent; while(true) { wait_for_event(&event); from_physical_layer(&r); to_network_layer(&r.info); to_physical_layer(&s); } }
基 本数据链路层协议 3.3.2 有错信道上的单工停等式协议 • 在噪声信道中应考虑传输有差错的情况 • 所谓差错: • 帧的损坏:如帧中若干位出错, 通常CRC都能检测到 • 帧的丢失:一旦帧头出错,接收方将检测下一个帧头,以同步, 但该帧已丢失 • 帧的重复:如确认帧丢失,接收方将接收到重复帧所以,发送方应启动一个计时器,一旦超时立即重发 有错信道上的单工停等式协议
发送方要记录下一个准备发送的顺序号,接收方要记录下一个期望接收的顺序号,发送过程和接收过程是严格交替的,接收方收到一个正确的帧,即便不是期望的帧,都将发送一个确认(即一个空的确认帧)也称为ARQ协议:Automatic Repeat reQuest
SENDER voidsender3(void) {next_frame_to_send=0; from_network_layer(&buffer); while(true) {s.info=buffer; s.seq=next_frame_to_send; to_physical_layer(&s); start_time(s.seq) wait_for_event(&event); if(event==frame_arrival) {from_physical_layer(&s); if(s.ack==next_frame_to_send){ stop_timer(s.ack); from_network_layer(&buffer); inc(next_frame_to_send); } } } }
RECEIVER voidreceiver3(void) {frame_expected=0; while(true) {wait_for_event(&event); if(event==frame_arrival) {from_physical_layer(&r); if(r.seq==frame_expected) {to_network_layer(&r.info); inc(frame_expected);} s.ack=1-fram_expected; to_physical_layer(&s); } } } 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换
滑 动窗口协议 3.4.1 1位滑动窗口协议 滑动窗口协议 条件 双向数据传送 网络层总准备好 有错通道 DLL处理速度有限 通道传送时间可以大 功能 成帧、折帧、校错、纠错、流控和保序 可靠。可提供有连接服务。
帧 • 帧“头”需要类型域,序号确认号n( 〉1 )位; • 帧尾有检验域 • 建立连接帧、释放连接帧、0#—N-1 # 数据帧(N=2n) • 0#—N-1 # 确认帧:收方发确认帧ACKa表示已经 • 收到第a号和以前的数据帧。准备接收下一帧。 • 并可捎带确认以提高效率 接收窗口 接收窗口用以存放可接收帧的序号。接收窗口内的下界帧是最早发出但尚未收到的帧收到下界帧:去“头”成为分组交与网络层,将接收窗口向前滚动一格,接收窗口大小不变。接收窗口外的帧表示已经接收过的帧或者对方尚未发出的帧。收到窗外帧,扔掉
一位滑动窗口协议 • 序号和确认号均为一位,N=2 • 发送窗口的尺寸只能等于0或1,接收窗口尺寸恒为1 • 一位滑动窗口协议和基本协议三相比的区别: • 是双向数据协议 • 是可靠的协议 • 确认帧带有确认号0或1:ACK0和 ACK1。
发方 2号下界帧超时限 收方 0 1 8 2 3 6 7 9 4 2 4 7 3 6 8 5 5 1 0 6 2 3 4 5 E 3 4 5 6 7 8 滑 动窗口协议 3.4.2 回退N协议 重发策略 :超时未收到发送窗口下帧号i的确认帧,或收到否认(k号),从i号帧或k号帧开始重发。发送窗口 〉1 接收窗口≡ 1 回退n协议 其它为下界确认帧 或空 收到窗外确认帧,扔掉 收到窗内非下界确认帧 ACK1 ACK5 ACK3 ACK1 ACK1 ACK0 ACK1 ACK2 ACK4 ACK1 ACK1 ACK6 2号帧 丢失 收到下界帧交网络层窗口滚动一格 收到下界帧交网络层 窗口滚动一格 收到窗外帧, 扔掉
滑 动窗口协议 3.4.3 选择重传协议 选择重传协议 • 发送窗口 〉1 接收窗口 〉1 接收窗口≤ N/2和回退n帧法相比节省容量,但需要多用存储器。 • 重发策略 :若超时未收到发送窗口下界帧号i的确认帧, 则重发下界帧(i号的帧); 若收到否认(k号)帧则重发k号帧
发方 收到窗内非下界确认帧 其它为下界确认帧 或空 收到窗外确认帧 2号下界帧超时限 收方 11 12 14 15 10 13 0 1 8 2 9 2 4 7 3 6 5 1 0 12 11 9 10 2 E 3 4 5 6 7 8 ACK8 ACK1 ACK12 ACK0 ACK1 ACK1 ACK10 ACK1 ACK1 ACK1 ACK9 ACK11 ACK1 2号帧 丢失 收到下界帧将2-8号帧交网络层窗口滚动7格 收到下界帧交网络层窗口滚动一格 收到窗内非下界帧 存入缓冲区 收到下界帧交网络层窗口滚动一格 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换
数 据链路层协议实例 3.5.1 SONET上数据包 SONET上的数据包 • POS:SONET 上的数据包 Packet Over SONET/SDH (PoS)是利用点对点协议(PPP)实现 IP 数据报到 SONET 帧有效载荷的映射的系列协议。Packet over SONET(PoS)是一种可伸扩协议,由于现有 SONET 体系结构的支持,PoS中克服了 ATM 中存在的许多不足之处。通过少数高级数据链路控制(HDLC)或点对点,PoS提供了一种直接在 SONET 同步净荷包(SPE:Synchronous Payload Envelope)内传送数据包的机制。PoS包括以下三层:
顶层:IP 数据报被封装到 PPP 分组 • 中层:PPP 分组利用 HDLC 协议成帧 • 底层:映射到 SONET • 底层,映射到 SONET,是由 IETF 定义在 RFC 2615中关于 PoS的唯一部分。其特征如下所述:. • High-Order Containment — SONET 中同步传输信号必须需要 PoS帧的支持。 • Octet Alignment — 指数据包八位边界线和 STS 八位边界线的联合。 • Payload Scrambling — 扰码指线路上采用1和0进行编码的过程。ANSI 在 T1 传输标准要求平均12.5%为1,即非成帧信号中连续14个0,帧信号中连续15个0。采用1编码的主要是为网络恢复或同步提供定时。但其它方面如 Automatic-Line-Build-Out(ALBO),均衡器,电源使用等也受到编码中1的密度影响。 • Packet over SONET:IP 数据报被封装到 SONET 帧。
数 据链路层协议实例 3.5.2 对称数字用户线 ADSL协议栈
运载ppp数据的AAL5帧 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换
使 用广播信道数据链路层 3.6 局域网的数据链路层;CSMA/CD协议 局域网的数据链路层 • 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。 • 局域网具有如下的一些主要优点: • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。 • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。 • 提高了系统的可靠性、可用性和残存性。
局域网的拓扑 集线器 星形网 总线网 匹配电阻 干线耦合器 环形网 树形网
静态划分信道 频分复用 时分复用 波分复用 码分复用 动态媒体接入控制(多点接入) 随机接入 受控接入 ,如多点线路探询(polling),或轮询。 媒体共享技术