1 / 76

计算机网络技术

计算机网络技术. 第 4 章 数据链路层. 4.1 数据链路层的基本概念 4.2 数据链路控制协议 4.3 流量控制 4.4 高级数据链路控制协议 HDLC 4.5 因特网的点对点链路协议 PPP. 第 4 章 数据链路层. 物理层的问题: 物理链路是 有差错和不可靠 的。 物理设备之间可能存在 传输速度不匹配 的问题。 数据链路层的作用: 通过一些 数据链路控制 协议,在 不太可靠 的物理链路上实现 可靠 的数据传输。. 4.1 数据链路层的基本概念. 物理链路

sondra
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. 计算机网络技术 第4章 数据链路层

  2. 4.1 数据链路层的基本概念 4.2 数据链路控制协议 4.3 流量控制 4.4 高级数据链路控制协议HDLC 4.5 因特网的点对点链路协议PPP 第4章 数据链路层

  3. 物理层的问题: 物理链路是有差错和不可靠的。 物理设备之间可能存在传输速度不匹配的问题。 数据链路层的作用: 通过一些数据链路控制协议,在不太可靠的物理链路上实现可靠的数据传输。 4.1 数据链路层的基本概念

  4. 物理链路 是一条无源的点到点的物理线路段。其间无交换节点,但可以有中继器。网络中两台计算机之间的通路可以由多条链路串接而成。 数据链路 是在物理链路上通过控制协议建立起来的逻辑链路。 一条物理链路上可以建立多个数据链路。 节点交换机 节点交换机 链路控制 链路控制 MODEM MODEM 物理链路 数据链路 物理链路与数据链路 把实现这些协议的硬件和软件加到物理链路上,就构成了数据链路。

  5. 数据链路层协议传送的数据单元(PDU)称为“帧”,是由网络层的协议数据单元以一对一的方式封装而成。数据链路层协议传送的数据单元(PDU)称为“帧”,是由网络层的协议数据单元以一对一的方式封装而成。 数据链路就象一个数字管道, “帧”就是这条数字管道上传输的数据单元。 “帧”如同信件一样,封套上载有源地址和目标地址,故能准确无误地地送达目的地。封套内的数据才是要传送的真正内容。 帧的概念 节点 节点 帧 帧

  6. 对于不同的通信环境或不同的通信协议, “帧”的格式亦不尽相同。 帧的一般结构 • “帧”分为面向字符型和面向比特型两类。前者由ASCII字符构成(IBM BSC协议);后者由任意比特构成,更为灵活和高效(HDLC)。

  7. 在网络实体间提供建立、维持和释放数据链路连接以及提供传输数据链路服务数据单元的功能和过程的手段;在网络实体间提供建立、维持和释放数据链路连接以及提供传输数据链路服务数据单元的功能和过程的手段; 在物理链路上建立数据链路连接; 检测和校正物理层出现的错误,为网络层提供可靠的无差错的数据链路。 设置数据链路层的目的

  8. OSI模型规定数据链路层应为网络层提供三种类型的服务:OSI模型规定数据链路层应为网络层提供三种类型的服务: 无确认无连接的服务 有确认无连接的服务 面向连接的服务 为网络层提供的服务类型 • 源节点不必建立连接,可直接向数据链路发送数据单元; • 目标节点不必对收到的数据单元进行确认。 • 源节点不必建立连接,可直接向数据链路发送数据单元; • 目标节点对每个接收到的数据单元应给予肯定确认或否定确认; • 源节点根据目标节点的确认信息,决定是重发原数据单元还是发送下一个数据单元。 • 源节点要发送数据之前先建立连接,然后进行数据传输,传输结束要拆除数据链路层连接; • 源节点对传输的每个数据单元进行编号,按顺序发送; • 目标节点对收到的数据单元给予肯定确认或否定确认。

  9. 链路管理——为了提供面向连接的服务,数据链路协议要具备数据链路的建立、维护和释放的功能。链路管理——为了提供面向连接的服务,数据链路协议要具备数据链路的建立、维护和释放的功能。 帧同步 流量控制 差错控制 透明传输 寻址 数据链路层的功能 • 链路管理 • 帧同步 • 流量控制 • 差错控制 • 透明传输——能在数据链路上传输任意比特组合的数据。数据链路协议应能有效有效地区分数据信息和控制信息。 • 寻址 • 链路管理 • 帧同步 • 流量控制 • 差错控制 • 透明传输 • 寻址——在多点连接的情况下,能正确判断每一帧的目标地址和源地址。 • 链路管理 • 帧同步——接收方应能从收到的比特流中准确地区分出一帧的开始和结束位置。 • 流量控制 • 差错控制 • 透明传输 • 寻址 • 链路管理 • 帧同步 • 流量控制——当收方来不及接收数据时,必须能及时控制发方的发送速率。 • 差错控制 • 透明传输 • 寻址 • 链路管理 • 帧同步 • 流量控制 • 差错控制——采用抗干扰编码和链路控制协议进行差错检验和控制。 • 透明传输 • 寻址

  10. 字节计数法 用一个特殊字符作为帧的开始定界符,后面使用一个字段来表明帧的长度字节数。 首尾定界法 使用若干个特定字符作为帧的首尾标志。 使用特殊比特模式表示帧的首尾标志。 使用违例编码作为帧的首尾标志。 帧同步技术

  11. 数据封装的过程 FTP message Data Data Segment Segment Header Data (Bytes) Packet Network Header Segment Header Data Frame Frame Header Network Header Segment Header Data Frame Trailer (medium dependent) Bits 0111111010101100010101101010110001 帧同步技术

  12. 10101010 ……10101010|10101011 帧同步技术 • 前导码:是帧同步信号,每个字节均为二进制数10101010。 • 帧开始定界符SOF:10101011B。最后二位11表示SOF结尾。

  13. 帧同步技术

  14. 帧同步技术

  15. 物理链路是有差错和不可靠的。 物理设备之间可能存在传输速度不匹配的问题。 数据链路控制协议要实现差错控制和流量控制 4.2 数据链路控制协议 发送方 接收方 主 机 B 主 机 A AP1 AP2 高层 物理链路 帧 帧 数据链路 数据链路层 缓存 缓存 物理层

  16. 工作原理: 发送方发送一块数据后, 就停止发送动作,开始计时,等待接收方的反馈结果。 接收方对收到的数据进行校验,并根据校验的结果向发送方作出肯定确认或否定确认。 当发送方收到“正确”的确认(ACK)之后,继续发送后继数据块; 如果发送方收到“否定”确认(NAK) ,或者计时器超时,重新传送本数据块。 1. 停止--等待协议

  17. 为了保证按顺序传输,为每一个数据帧带上不同的发送序号N(S) 。每发送一个新的数据帧就把它的发送序号加 1。 若节点 B 收到发送序号相同的数据帧,就表明出现了重复帧,应将其丢弃,同时 向节点A 发送确认帧 ACK 。 为了减少数据传输的额外开销,应尽量使序号占用较少的比特数。 由于停止等待协议每发送一个数据帧就停止等待,因此用一个比特来编号就够了。 帧的序号

  18. 正常 出错重传 超时重传 DATA0 DATA0 DATA0 出错 tout tout A B A B A B A B DATA0 DATA0 DATA1 DATA0 丢 失 ! NAK DATA0 重 传 上层实体 丢 失 ! 上层实体 ACK ACK 重 传 重 传 上层实体 ACK 丢 弃 上层实体 上层实体 ACK ACK ACK 时 间 (b) 数据帧出错 (d) 确认帧丢失 (c) 数据帧丢失 (a) 正常情况 数据帧在链路上的几种情形

  19. 通信双方以半双工方式进行通信 控制简单,易于实现。 传输效率低。尤其对信道质量好、差错率低的情况。 停—等协议的特点

  20. 工作原理: 发送方可以连续发送一系列数据帧,即不要求等待对方的确认,即可发送下一数据帧。 当发送方收到了接收端发来的对某帧信息的确认帧时,就可以接着发送后继的数据帧。 由于减少了等待时间,信道的利用率大大提高。 2. 拉回式连续ARQ协议 • 需要在发送方设置一个较大的缓冲区,用以存放待确认的数据帧。 • 当发送方收到对某帧的确认后方可从缓存中删除该数据帧。 • 发送方每发送完一个数据帧,就启动一个超时计时器。 • 若到了超时计时器所设置的重传时间而仍未收到对方的确认帧,发送方就重传未得到确认的数据帧。

  21. 接收方只能按顺序接收帧。 当某一帧出错时,接收方将丢弃出错帧及其后的帧,等待发方重传出错帧及其后的所有帧。 计时器超时 重传 0 0 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 × D D D D D 出错 ACK2 ACK3 ACK0 ACK1 丢弃 拉回式连续ARQ协议的工作原理 发送方A 接收方B

  22. 为了提高信道的利用率,接收方可以开设较大的缓存区,以保存在出错帧之后正确接收的帧。为了提高信道的利用率,接收方可以开设较大的缓存区,以保存在出错帧之后正确接收的帧。 发送方只需重传出错帧,而不必重复传送那些本来已经正确到达接收方的数据帧。 接收方等到所缺序号的数据帧收到后再一并送交主机。 3. 选择重传ARQ协议

  23. 重传 发送端 0 1 2 3 4 5 2 3 4 5 6 接收端 0 1 2 3 4 5 2 3 4 5 6 ACK1 ACK3 丢弃 ACK0 NAK ACK2 (a) 重传 发送端 0 1 2 3 4 5 2 6 7 8 9 接收端 0 1 2 3 4 5 2 6 7 8 9 丢弃 ACK1 ACK3 ACK5 ACK6 ACK0 NAK ACK4 ACK2 (b) 连续ARQ协议的工作方式 (a) 拉回方式 (b) 选择重发方式

  24. 所谓流量控制是指当收方来不及接收数据时,必须能及时控制发方的发送速率。所谓流量控制是指当收方来不及接收数据时,必须能及时控制发方的发送速率。 在面向帧的同步通信中主要使用滑动窗口机制来实现流量控制。 4.3 流量控制

  25. 发送方必须设置缓存保留已发送且未被确认的数据帧的副本,以备重传。计算机的硬件资源是有限的,缓存容量不能无限制增加。发送方必须设置缓存保留已发送且未被确认的数据帧的副本,以备重传。计算机的硬件资源是有限的,缓存容量不能无限制增加。 当未被确认的数据帧过多时,一旦有一帧出现错误,可能需要重传很多帧,造成很大的浪费,增加了传输的开销。 为了对连续发送的大量数据帧进行编号,每帧的发送序号也要占用较多的比特,又增加了一定的开销。 因此在连续ARQ协议中必须对连续发送的未被确认的帧数做一定的限制,这就是滑动窗口协议所研究的内容。 拉回式连续ARQ协议的问题

  26. 发送端和接收端分别设定发送窗口和接收窗口 。 发送窗口用来对发送端进行流量控制。 发送窗口的大小 WT代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。 窗口机制

  27. 发送窗口 WT WT (a) 0 1 2 3 4 5 6 7 0 1 2 不允许发送这些帧 允许发送 5 个帧 (b) 2 4 0 1 3 5 6 7 0 1 2 不允许发送这些帧 已发送 还允许发送 4 个帧 WT (c) 0 1 2 3 4 5 6 7 0 1 2 已发送 不允许发送这些帧 WT 0 1 2 3 4 5 6 7 0 1 2 (d) 还允许发送 3 个帧 不允许发送这些帧 已发送 已发送 并已收到确认 发送窗口控制发送端的速率

  28. 在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。 若接收到的数据帧落在接收窗口之外,则一律将其丢弃。 在连续 ARQ 协议中,接收窗口的大小 WR = 1。 只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃它。 每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。 接收端设置接收窗口

  29. WR (a) 0 1 2 3 4 5 6 7 0 1 2 WR 不允许接收这些帧 准备接收 0 号帧 (b) 0 1 2 3 4 5 6 7 0 1 2 已收到 不允许接收这些帧 准备接收 1 号帧 WR (c) 0 1 2 3 4 5 6 7 0 1 2 不允许接收这些帧 已收到 准备接收 4 号帧 接收窗口的意义

  30. 只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。 收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。 当发送窗口和接收窗口的大小都等于1时,就是停止等待协议。 滑动窗口的重要特性

  31. 当用n个比特对数据帧进行编号时,若接收窗口的大小为 1,则只有在发送窗口的大小 满足WT 2n  1时,连续 ARQ 协议才能正确运行。 例如,当采用 3 bit 编码时,发送窗口的最大值是 7 而不是 8。 发送窗口的最大值

  32. 选择重传ARQ协议要求加大接收窗口,先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。 选择重传 ARQ 协议可避免重复传送那些本来已经正确到达接收端的数据帧。但我们付出的代价是在接收端要设置具有相当容量的缓存空间。 对于选择重传 ARQ 协议,若用 n 比特进行编号,则接收窗口的最大值满足:WR2n-1 当接收窗口为最大时, WT= WR= 2n-1 选择重传 ARQ 协议的窗口机制

  33. 4.4.1 HDLC概述 HDLC(High-Level Data Link Control)是ISO制定的面向比特型的同步数据链路控制协议( ISO 3309) ; 在IBM公司的SDLC(Synchronous Data Link Control)协议的基础上修订而成; 用于广域网的同步串行链路; 采用帧的首尾定界法实现帧的同步,以特殊比特模式01111110(7EH)作为帧的首尾标记。 提供面向连接的虚电路服务。 4.4 高级数据链路控制协议HDLC

  34. 主站:Primary Station 主站控制整个链路的工作; 主站发出的帧称为“命令”,用来确定和改变链路的状态,确定次站、组织数据传输和链路恢复等。 次站:Secondary Station 次站也称从站,受控于主站; 次站发出的帧称为“响应” ; 主站与每一次站均维持一条独立的逻辑链路。 复合站:Combined Station 复合站也称为组合站,同时具有主站和次站的功能。 HDLC的站点类型

  35. 不平衡链路结构 由一个主站和一个或多个次站构成。 主站控制次站实现链路管理。信道可以是点对点链路,也可以是多点共享的链路。 可支持全双工或半双工通信。 命令 响应 主站 命令 响应 主站 次站 次站 次站 HDLC的链路结构

  36. 平衡链路结构 由两个复合站点对点地互连而成。 两个站点地位均等,负有同等的链路控制责任。 信道可支持全双工或半双工通信。 复合站 命令/响应 响应/命令 复合站 HDLC的链路结构

  37. 正常响应方式NRM—用于不平衡链路结构 主站具有选择、轮询次站的能力,并可随时向次站发送命令或数据; 次站只有在主站轮询时才能作出响应; 异步响应方式ARM —用于不平衡链路结构 主站具有初始化链路,差错校正、链路的建立和释放等功能; 主站和次站都可以主动传输数据。 异步平衡方式ABM —用于平衡链路结构 任一组合站均可控制链路,发出命令或相应;双方均可主动传送数据。 HDLC的数据响应方式

  38. 4.4.2 HDLC的帧结构 8b 8nb 8b/16b 可变 16b 8b 校验区间 透明传输区间 HDLC协议 • 帧标志F(01111110B,7EH) • 用于区分帧的轮廓,兼作同步与定时之用。 • 采用0比特填充法来实现帧的透明传输。

  39. HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现连续的6 个 1。 在发送端,当一串比特流数据中有连续的5 个 1 时,就立即填入一个 0。 在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现连续的5 个 1 时,就将其后的一个 0 删除,以还原成原来的比特流。 零比特填充法

  40. 发送端在 5 个连 1 之后 填入 0 比特再发送出去 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 填入 0 比特 在接收端将 5 个连 1 之后 的 0 比特删除,恢复原样 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 在此位置删除填入的 0 比特 零比特的填充与删除 数据中某一段比特组合恰好 出现和 F 字段一样的情况 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 会被误认为是 F 字段

  41. 采用零比特填充法就可传送任意组合的比特流,即可实现数据链路层的透明传输。采用零比特填充法就可传送任意组合的比特流,即可实现数据链路层的透明传输。 当连续传输两个帧时,前一个帧的结束标志字段 F 可以兼作后一帧的起始标志字段。 当暂时没有信息传送时,可以连续发送标志字段,使收端可以一直和发送端保持同步。 透明传输

  42. 8b 8nb 8b /16b 可变 16b 8b 校验区间 透明传输区间 HDLC帧的地址 • 地址字段A • 在非平衡模式,用于指出次站的地址。; • 在平衡模式,用于指出响应站的地址。 • 全1地址为广播地址,全0地址为无效地址。 • 地址的最后一位为地址扩充标志,当该位为“1”时表示无扩充。

  43. 8b 8nb 8b /16b 可变 16b 8b 校验区间 透明传输区间 HDLC的帧结构 • 控制字段C • 用于表示命令和响应的类型。 • 数据信息I • 用于存放来自网络层的协议数据单元。 • 帧校验码 • 采用16位CRC编码,g(x)=x16+x12+x5+1 • 亦采用“0”比特填充技术。

  44. HDLC帧的类型有三种,由控制字段内的信息标识。HDLC帧的类型有三种,由控制字段内的信息标识。 HDLC的帧类型 8b 8nb 8b /16b 可变 16b 8b 信息帧(I) 监控帧(S) 无编号帧(U)

  45. HDLC的信息帧(I)用来传输数据信息。其中: N(S)是发送序号,表示当前发送的数据帧的序号。 N(R)是接收序号,表示该站期待接收的下一帧的序号。 P/F是探询(Poll)和终止(Final)位。 P=1 表示主站询问,F=1 表示 响应终止。 注意:控制字段的长度在标准格式中是8位,在扩展格式中是16位,序号的长度分别为3位和7位。 HDLC的信息帧

  46. HDLC的监控帧(S)均为响应帧,主要用于差错控制和流量控制,分为以下4 种: RR帧,SS=00, 接收准备就绪。 RNR帧,SS=10,接收未准备好,暂停接收。 REJ帧,SS=01,拒绝。否认N(R) 起的所有帧。 SREJ帧,SS=11,选择拒绝。只否认N(R)帧。 注意:在上述响应帧中均对N (R)之前的所有帧进行捎带确认。 HDLC的监控帧

  47. HDLC协议采用滑动窗口机制来实现流量控制。 发送窗口的大小 满足:WT 2n  1 接收窗口的的大小 满足:WR 2n/2= 2n-1 其中n为序号的比特数 接收方通过RR帧和RNR帧控制窗口的向前滑动。 7 7 7 7 0 0 0 0 6 6 6 6 1 1 1 1 5 5 5 5 2 2 2 2 4 4 4 4 3 3 3 3 HDLC的流量控制

  48. HDLC的无编号帧(U)用于实现数据链路控制。 不含帧序号,其类型由MM和MMM表示,可以定义出32种附加命令和附加响应功能。 目前已定义了15种无编号帧。根据其功能可分为设置链路方式、传输信息、错误恢复、测试和交换标识等具体类别。 HDLC的无编号帧

  49. 无编号命令和响应

  50. 4.4.3 HDLC的通信过程 当采用交换型线路时,两个通信站的通信过程分为以下几个阶段: HDLC的通信过程 建立物理连接 建立数据链路 传输比特流 传输数据帧 拆除数据链路 拆除物理连接

More Related