1 / 118

第三章

第三章. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 数据链路层. 内. 黑白纵横三千里. 容. 第一节 数据链路层的设计问题. 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理. 经天纬地一点通. 第二节 差错检测与校正. 传输差错的特性. 常用的简单差错控制编码:纠错码、检错码. 第三节 基本数据链路层协议. 无错信道上的单工停等 式 协议. 有错信道上的单工停等 式 协议. 第四节 滑动窗口协议. 1 位滑动窗口协议. 回退 N 协议. 选择重传协议.

jag
Download Presentation

第三章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层 数据链路层

  2. 黑白纵横三千里 容 第一节 数据链路层的设计问题 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理 经天纬地一点通 第二节差错检测与校正 传输差错的特性 常用的简单差错控制编码:纠错码、检错码 • 第三节基本数据链路层协议 无错信道上的单工停等式协议 有错信道上的单工停等式协议 第四节滑动窗口协议 1位滑动窗口协议 回退N协议 选择重传协议 第五节数据链路层协议实例 SONET上数据包 对称数字用户线

  3. 黑白纵横三千里 容 第六节使用广播信道数据链路层 局域网的数据链路层;CSMA/CD协议 第七节以太网 经天纬地一点通 以太网回顾 经典以太网物理层 经典以太网的MAC子层协议 以太网性能 交换式以太网 高速以太网:100BASE-T以太网;吉比特以太网;10吉比特以太网 使用高速以太网进行宽带接入 第八节数据链路层交换 网桥的使用 学习网桥 生成树网桥 中继器、集线器、网桥、交换机、路由器和网关 虚拟局域网

  4. 主机A 主机B • 无确认的无连接服务 • 有确认的无连接服务 • 面向连接的服务 AL TL NL DL PL AL TL NL DL PL 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 帧 数 据链路层的设计问题 3.1 提供给网络层的服务、成帧、差错控制,流量控制以及链路管理 提供给网络层的服务

  5. 指明帧的开始和结束 标 志 字 段 地址字段 控制字段 正文字段 校验字段 成幀 • 涉及的问题 • 协议数据单元 • 将上层(网络层)交下来的数据包按照所采用协议决定的格式,封装成一定形式的帧; • 考虑接收双方的同步问题(即定界); • 计算帧的校验和并放入帧中一起传送给接收方; 帧:在数据链路上交换数据的单位。

  6. 字符计数法 字符填充的首尾定界法 位填充的首尾定界法 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 计数值传输出错时导致收发双方不同步. 同步字符法 标志法 填充技术

  7. 物理层编码违例法 综合法 违例 或 “0” “1” • 用计数值确定帧尾 • 检查帧定界符是否出现在应该出现的地方 • 计算校验和

  8. 差错控制 • 顺序到达 指保证所有的帧最终都按正确的发送次序到达目的。 • 确认方式 • 计时器法 计时器值的设定要保证一帧到达对方并作处理后,相应的确认帧返回。 • ACK肯定确认 • NAK否定确认 计时结合序号才能保证每一帧的正确次序。 检错和纠错 检出传输中出现的差错;可能的话确定出错位置从而纠正错误。

  9. 流量控制 流量控制的特点 流量控制 网络层实体控制从数据链路层接收数据的速率,据此,数据链路层要控制从同等实体接收PDU的速率。 • 流量控制必须是动态的 • 必须有某种反馈机制 限制发送方发送速度的一种机制。使发送速率不能超过接收方能处理的速率。 流量速度不仅与发方速度相关而且与网络的当前拥挤程度有关 使发方了解收方的当前处理能力

  10. 路由器A 路由器B 分组/包 3 3 3 3 2 2 2 2 2 2 2 2 2 2 帧 传输线 数据链路进程 2 3 路由选择进程 链路管理 数据链路协议 DL协议的作用就是使不可靠的通信线路变得一定程度的好。

  11. 物理层: ---- 物理链路 ---- 比特流传输 ---- 有差错的物理链路 数据链路层: ---- 数据链路 ---- 帧传输 ---- 无差错的数据链路 ---- 数据链路层数据服务单元 ---- 帧 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换

  12. 错检测与校正 3.2.1 传输差错的特性 传输差错的特性 • 噪声分类: • 信道所固有的,持续存在的随机热噪声 • 由于外界特定的短暂原因所造成的冲击噪声 • 噪声比较: • 随机错通常较少 • 冲击噪声的幅度可以相当大 ,它是传输中产生差错的重要原因 • 衡量一个信道质量的重要参数是误码率: • 通常用10的负若干次方来标志信道的误码率Pe

  13. 差错控制编码的原理: 信息位:要发送的数据 冗余位:在向信道发送之前,先按照某种关系加上一定 ~ 发送与接收的过程: 发送时:信息位+冗余位构成码字发送; 接收时:收到码字后查看信息位和冗余位,并检查它们之间的关系(校验过程),以发现传输过程中是否有差错发生。 • 差错控制编码分类: • 检错码 • 指能自动发现差错的编码 • 纠错码 • 指不仅能发现差错而且能自动纠正差错的编码

  14. 衡量编码性能的参数 编码效率R 意思是码字中信息位所占的比例 若码字中信息位为k位,编码时外加冗余位为r位,则编码后得到的码字长为n = k + r位。 判定规律 编码效率越高,即R越大,则信道中用来传送信息码元的有效利用率就越高。

  15. 数据通信中,利用编码方法来进行差错控制的方式,基本上有两类:数据通信中,利用编码方法来进行差错控制的方式,基本上有两类: 自动请求重发ARQ(Automatic ReQuest for repeat) 接收端检测出有差错时,就设法通知发送端重发,直到正确的码字收到为止。 前向纠错FEC(Forward Error Correction) 接收端不但能发现差错,而且能确定二进制错码元的位置,从而就可以加以纠正。

  16. 比较ARQ与FEC

  17. 除非在单向传输或实时要求特别高(FEC由于不需要重发,实时性较好)等场合外,数据通信中使用更多的还是ARQ差错控制方式。 自然,也可以将上述两者混合使用,即当码字中的差错个数在纠正能力以内时,直接进行纠正;当码字中的差错个数超出纠正能力时,则检出差错令其重发来纠正差错。 两种编码方式

  18. 错检测与校正 3.2.2 常用的简单差错控制编码:纠错码、检错码 纠错码 • 纠错码: • 海明(Hamming)码 • 检错码: • 校验和(Check Sum) • 块校验码(Block Check Code) • 循环冗余检错码CRC(Cyclic Redundancy Check)

  19. 海明纠错码 m个数据位外加r个纠错位。在2i (i=0,1,2,3…) 的位置放的是纠错位。m个数据的次序不变。如字符m的7位二进制码为1101101,要加上4位纠错码0011(偶校验),共11个bit。

  20. 信息位影响的纠错位

  21. 纠错位的取值 一个纠错位由多个信息异或然后取偶/奇校验

  22. 海明码纠错位取值举例 采用偶校验

  23. 接收方的校验 计算结果S4 S3 S2 S1为0 0 0 0意味着接收正确 计算结果S4 S3 S2 S1为0 1 0 1意味着第5位出错

  24. 字符m采用海明码的发送序列为11001100111 接收方的校验举例 如接收到的序列也为 11001100111 S4S3S2S1=0000意味校验正确

  25. 字符m采用海明码的发送序列为11001100111 11001110111 如接收到的序列为 S4S3S2S1=0101意味第5位出错

  26. 检错码 校验和 • 算法简单、实现容易,但检错率不高 • 将发送的数据看成是二进制整数序列,并划分成一段段规定的长度(如8位、16位、32位等),计算他们的和。如校验和大于规定的长度,则将进位加到最后的校验和中。将校验和和数据一起发送。在接收端,重新计算校验和,与原校验和比较。如要传输“ Hello world.” • 以16位为例: • 4865H+6C6CH+6F20H+776FH+726CH+642EH+进位=71FCH

  27. 块校验码 • 块校验码BCC(Block Check Code)简单常用,但检错的强度较弱,如在同一列上有偶数位错,则不能检测。 • 如传输的数据都是ASCII字符(即面向字符,这在应用中很 • 多),每个字符进行奇偶校验,然后把所有的字符(连同奇偶 • 位)进行异或运算,运算结果即为其块校验码。发送端一面发 • 送一面计算,最后发送块校验码,接收端一面接收一面计算, • 最后与接收到的块校验码比较。 如“ Hello world.”,采用偶校验,校验后的字符序列为: 48H⊕65H⊕6CH⊕6CH⊕6FH⊕A0H⊕77H⊕6FH⊕72H⊕6CH⊕E4H⊕2EH=2EH

  28. 循环冗余检错码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

  29. 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

  30. 三个生成多项式国际标准 CRC-12: x12+x11+x3+x2+x1+1 用于字符长度为6位 CRC-16:x16+x15+x2+1 用于字符长度为8位 CRC-CCITT: x16+x12+x5+1 用于字符长度为8位 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换

  31. 本数据链路层协议 3.3.1 无错信道上的单工停等式协议 无错信道上的单工停等式协议 接收方不可能具有足够高的CPU处理能力来及时处理所有的接收帧,也不可能具有足够大的缓冲区,但仍假定:链路是理想的传输通道,所传输的任何数据既不会出错也不会丢失即:不需校验,也不可能重发所以,当它来不及处理时,应通知发送方暂缓发送,一旦可以继续接收,则通知发送方继续发送

  32. SENDER voidsender2(void) {frames; packetbuffer; event_typeevent; while(true) { from_network_layer(&buffer); s.info=buffer; to_physical_layer(&s); wait_for_event(&event); } }

  33. 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); } }

  34. 本数据链路层协议 3.3.2 有错信道上的单工停等式协议 • 在噪声信道中应考虑传输有差错的情况 • 所谓差错: • 帧的损坏:如帧中若干位出错, 通常CRC都能检测到 • 帧的丢失:一旦帧头出错,接收方将检测下一个帧头,以同步, 但该帧已丢失 • 帧的重复:如确认帧丢失,接收方将接收到重复帧所以,发送方应启动一个计时器,一旦超时立即重发 有错信道上的单工停等式协议

  35. 发送方要记录下一个准备发送的顺序号,接收方要记录下一个期望接收的顺序号,发送过程和接收过程是严格交替的,接收方收到一个正确的帧,即便不是期望的帧,都将发送一个确认(即一个空的确认帧)也称为ARQ协议:Automatic Repeat reQuest

  36. 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); } } } }

  37. 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); } } } 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换

  38. 动窗口协议 3.4.1 1位滑动窗口协议 滑动窗口协议 条件 双向数据传送 网络层总准备好 有错通道 DLL处理速度有限 通道传送时间可以大 功能 成帧、折帧、校错、纠错、流控和保序 可靠。可提供有连接服务。

  39. • 帧“头”需要类型域,序号确认号n( 〉1 )位; • 帧尾有检验域 • 建立连接帧、释放连接帧、0#—N-1 # 数据帧(N=2n) • 0#—N-1 # 确认帧:收方发确认帧ACKa表示已经 • 收到第a号和以前的数据帧。准备接收下一帧。 • 并可捎带确认以提高效率 接收窗口 接收窗口用以存放可接收帧的序号。接收窗口内的下界帧是最早发出但尚未收到的帧收到下界帧:去“头”成为分组交与网络层,将接收窗口向前滚动一格,接收窗口大小不变。接收窗口外的帧表示已经接收过的帧或者对方尚未发出的帧。收到窗外帧,扔掉

  40. 一位滑动窗口协议 • 序号和确认号均为一位,N=2 • 发送窗口的尺寸只能等于0或1,接收窗口尺寸恒为1 • 一位滑动窗口协议和基本协议三相比的区别: • 是双向数据协议 • 是可靠的协议 • 确认帧带有确认号0或1:ACK0和 ACK1。

  41. 发方 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号帧 丢失 收到下界帧交网络层窗口滚动一格 收到下界帧交网络层 窗口滚动一格 收到窗外帧, 扔掉

  42. 动窗口协议 3.4.3 选择重传协议 选择重传协议 • 发送窗口 〉1 接收窗口 〉1 接收窗口≤ N/2和回退n帧法相比节省容量,但需要多用存储器。 • 重发策略 :若超时未收到发送窗口下界帧号i的确认帧, 则重发下界帧(i号的帧); 若收到否认(k号)帧则重发k号帧

  43. 发方 收到窗内非下界确认帧 其它为下界确认帧 或空 收到窗外确认帧 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格 收到下界帧交网络层窗口滚动一格 收到窗内非下界帧 存入缓冲区 收到下界帧交网络层窗口滚动一格 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换

  44. 据链路层协议实例 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包括以下三层:

  45. 顶层: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 帧。

  46. 据链路层协议实例 3.5.2 对称数字用户线 ADSL协议栈

  47. 运载ppp数据的AAL5帧 第一节 数据链路层的设计问题 第二节 差错检测与校正 第三节 基本数据链路层协议 第四节 滑动窗口协议 第五节 数据链路层协议实例 第六节 使用广播信道数据链路层 第七节 以太网 第八节 数据链路层交换

  48. 使 用广播信道数据链路层 3.6 局域网的数据链路层;CSMA/CD协议 局域网的数据链路层 • 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。 • 局域网具有如下的一些主要优点: • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。 • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。 • 提高了系统的可靠性、可用性和残存性。

  49. 局域网的拓扑 集线器 星形网 总线网 匹配电阻 干线耦合器 环形网 树形网

  50. 静态划分信道 频分复用 时分复用 波分复用 码分复用 动态媒体接入控制(多点接入) 随机接入 受控接入 ,如多点线路探询(polling),或轮询。 媒体共享技术

More Related