Chapter Four 数据链路层.

Slides:



Advertisements
Similar presentations
3.2 使用点对点信道的数据链路层 使用点对点信道的数据链路层 点对点协议 PPP PPP 协议的特点 PPP 协议的帧格式 PPP 协议的工作状态.
Advertisements

大胆作为 勇于承担  建立安全监管新常态 市安全监管局 林凯军.
第 10 章 電腦網路.
建筑与周边环境的和谐关系 建筑系 梁晓蕊
PART II 04 藍芽  藍芽簡介  藍芽協定  藍芽無線電層協定  藍芽的基頻層協定  藍芽微網的建立及連接過程
先介绍计算机网络基础知识,再分析网络视频监 控系统的架构、原理与维护。
第八章 组织文化的整合 ——并购中的文化整合(二) 小组成员:浦若蓉、朱谷一、贾彦彦.
第6章 计算机网络基础 1.
第 12 章 UDP 與 TCP.
语文组:藏在泉州古巷中的美食 结题报告.
自信心训练教材 如何提高自己的自信心 -Jerrywang.
吉林大学通信工程学院 赵蓉 数据通信原理 吉林大学通信工程学院 赵蓉
道路交通管理 授课教师:于远亮.
网络协议及架构安全 培训机构名称 讲师名字.
人民舆情数据库 讲解人:李晗.
Chapter 12 UDP 與 TCP.
项目二 组建办公网络.
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第6章 计算机网络基础.
第3讲 计算机网络体系结构 一、 网络体系结构与网络协议的概念 二、 ISO/OSI参考模型 三、七层协议简介 四、信息的流动过程
计算机网络的组成 资源子网:   主机 终端 终端控制器   外设 软件资源 信息资源    .
网络体系结构:OSI模型.
——开启你计算机网络之门的金钥匙 图书作者:王达 制作
第3章 计算机网络体系结构与协议 本章教学目标: (1)认识计算机网络的基本概念。 (2)了解网络结构的分层思想。
第1章 概述.
4.6 局域网标准 专门的LAN标准 OSI/RM和TCP/IP均属于WAN标准 LAN具有自身固有的特点:
第 3 章 数据链路层 基本内容:数据链路层的基本概念,数据链路层协议的工作原理:停止等待协议,连续ARQ协议,滑动窗口,选择ARQ协议,Internet中的数据链路层协议。 重点掌握: 数据链路层的基本概念。 数据链路层协议的工作原理。 滑动窗口原理。
第3章 计算机网络体系结构.
通信技术基础 第1章 通信与通信系统的基本概念 王钧铭 1.1 通信的概念 1.2 通信系统 1.3 通信方式 1.4 信道和传输介质
Great jungle + Abundant minerals
主讲 彭红 西南科技大学网络教育系列课程 计算机网络基础与应用 主讲 彭红
计算机网络实用教程.
第 12 章 UDP 與 TCP.
第6章 网络互联技术与实践.
熟练掌握TCP/IP、IEEE802.3协议的主要内容
HL-001 网络基础知识 ISSUE 5.1 江西陶瓷工艺美术职业技术学院.
2.1 计算机网络概念 2.2 因特网体系结构 ★ 2.3 OSI-RM与TCP/IP的关系 2.4 TCP/IP协议簇 ★
远 动 监 控 技 术 西南交通大学电气工程学院.
基礎網路管理 第一章 環境介紹 製作:林錦財.
计算机网络技术基础 任课老师: 田家华.
第三章 資料連結層 3-1 資料連結層簡介 3-2 訊框化 3-3 通訊連線管理 3-4 流量控制 3-5 滑動視窗法 3-6 錯誤檢出
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
第4章 OSI傳輸層.
第三章 计算机网络模型 主要内容 1. 网络标准化组织 2. ISO/OSI模型.
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
计算机网络 第 3 章 数据链路层 课件制作人:谢希仁.
计算机网络 第 3 章 数据链路层.
第3章 数据链路层 设计问题 为网络层提供的服务 帧 差错控制 流量控制 05:55:10.
Chapter 3 The Data Link Layer
计算机组成原理 The Principle of Computer
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
Chapter 3 数据链路层.
2.3.1 导向传输媒体 双绞线 同轴电缆 光缆 屏蔽双绞线 STP (Shielded Twisted Pair)
闖關卡 恭喜你通過所有的考驗! 你是超級厲害的棒! 三年 班 號 姓名: 有色眼鏡 占心數 九九神功 你真棒! 神奇敲敲樂 魔陣密碼
第十章 差错控制编码 10.1 差错控制编码的基本原理 10.2常用的简单编码 10.3 线性分组码 10.4循环码 10.5卷积码.
计算机网络 第三章:数据链路层 阮晓龙 / 河南中医学院管理信息工程学科 河南中医学院网络信息中心
操作系统原理与设计 Operating Systems: Design and Implementation
网络工程 苏兆品 QQ:
實驗24 NetSim-Cisco WAN專線服務-PPP、ISDN
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
第 5 讲 数据链路层(1) 1/31.
第二章 電腦硬體知識 Chapter 2-電腦硬體知識.
引 言 虽然CAN-BUS系统的通信方式对于汽车网络维修没有直接的关系,但是对于一个机电维修工,了解总线传输技术,有助于正确认识汽车网络的构成和工作方式,正确利用OBDⅡ接口,正确选用故障诊断设备和故障诊断方式。 CAN-BUS工作的核心内容就是怎样通过二根(或若干根)通信线,传输远远超过二个的信息量(数据),本章讲述CAN-BUS局域网的控制单元之间是如何进行数据(信息)传输.
1.6 差错控制 差错类型及基本控制方法 噪声引入的随机误码,均匀分布 由干扰、快衰落引起的突发误码 单比特错误 多比特错误
01 FISHBONE DIAGRAM TARGET PART ONE PART TWO PART THREE PART FOUR
计算机通信网 Lecture 3: 数据链路层.
主讲人:徐悦甡(16年入职) 课程:数据通信与计算机网络 软件学院
Lecture Review 交换 多路复用 各种调制-脉冲编码、差分脉冲编码、增量 数据链路层的功能 电路交换 报文交换 分组交换
第3章 数据通信与广域网技术.
3.4 链路控制协议示例 一.面向字符的控制规程-- BSC
Presentation transcript:

Chapter Four 数据链路层

本章教学提要 教学目标: 教学难点:差错控制,滑动窗口协议 理解数据链路层的功能与作用; 了解常用的成帧方式; 理解差错控制的作用和原理; 理解流量控制的作用和原理; 了解HDLC协议的工作过程; 理解数据链路层设备与组件的作用与特性。 教学难点:差错控制,滑动窗口协议

Section One 数据链路层概述

本节驱动问题 为什么在物理层之上要有数据链路层? 什么样的结点属于相邻结点?

数据链路层的简单模型 主机 H1 向 H2 发送数据 从层次上来看数据的流动 局域网 广域网 主机 H1 主机 H2 路由器 R1 电话网 从层次上来看数据的流动 链路层 应用层 运输层 网络层 物理层 R1 R2 R3 H1 H2

数据链路层的简单模型( 续) 主机 H1 向 H2 发送数据 仅从数据链路层观察帧的流动 局域网 广域网 主机 H1 主机 H2 路由器 R1 路由器 R2 路由器 R3 电话网 仅从数据链路层观察帧的流动 H1 H2 链路层 应用层 运输层 网络层 物理层 R1 R2 R3

为什么需要数据链路层? 数据在物理传输过程可能损坏,尽管物理层采取了必要的措施来减少信号传输过程中的噪声。 DTE DCE 数据在物理传输过程可能损坏,尽管物理层采取了必要的措施来减少信号传输过程中的噪声。 收发双方的接收和发送速率不匹配,会产生数据溢出,从而引发数据丢失。 物理层只关心原始比特流的传送,不考虑也不可能考虑所传输信号的意义和信息的结构,从而物理层不可能识别或判断数据在传输过程中是否出现了损坏或丢失,更谈不上采取相应的方法进行补救。 也就是说,只有物理层的功能是不够的。

数据链路层的功能 数据链路层是为了克服物理层的物理传输质量不足而存在的。 其目的是为了实现两个相邻节点间的无差错传输。 从分层的角度,数据链路层利用了物理层提供的原始比特流传输服务,检测并校正物理层的传输差错,控制数据的传输流量,使在相邻节点之间构成一条无差错的链路,从而向网络层提供可靠的数据传输服务。 

何为相邻节点? 相邻节点是指由同一物理链路直接连接的所有节点。(相邻节点之间的数据通信不需要其它交换设备转发) 点到点(point to point)网络环境中的两个节点 由同一物理线路连接的共享介质环境中的节点 位于不同物理线路上,但由第一层网络设备(中继器或集线器)互连的节点

在数据链路层上传输数据帧 以多快的速度发送数据帧,即每帧之间相隔多长时间?如何确认对方是否收到数据? ?发送方: ?接收方: ?传输过程: !解决这些问题,是数据链路层的主要任务。 !针对这些问题所制定的通信规程就是数据链路层的通信协议。 以多快的速度发送数据帧,即每帧之间相隔多长时间?如何确认对方是否收到数据? 是否接收到正确的数据帧?如何告诉发送方?能及时处理接收到的数据帧吗? 会出错吗?会丢失数据帧吗?

数据链路层要解决的主要问题 物理寻址如何识别不同的相邻节点或确定一个接收目标 数据链路的建立、维持和释放如何为相邻结点之间的可靠数据传输提供必要的数据链路建立、维持和释放机制 数据流的定界如何提供一种机制使得接收方能识别数据流的开始与结束 差错控制与流量控制如何实现可靠的数据传输 如何将解决上述问题的机制或方法以协议的形式统一表达出来。

数据链路与物理链路的区别 “物理链路”:一条无源的点到点物理线路,中间没有任何其他的交换结点。 “数据链路”:在物理链路上加上必要的数据传输规程或协议后所形成的逻辑连接。 这种规程或协议控制着数据在逻辑链路上的传输,被称为数据链路层协议   数据链路/逻辑链路=物理链路+通信规程

Section Two 帧与成帧

本节驱动问题 “帧”有什么作用? 帧通常包括哪几部分? 为什么要进行“成帧”和“拆帧”? 如何区分不同的帧?

帧(Frame) 为了实现诸如差错控制、物理寻址和流量控制等功能,数据链路层首先要使自己所看到的数据是有意义的 除了要传送的用户数据外,还要提供关于寻址、差错控制和流量控制等所必需的控制信息,而不再是物理层的原始比特流。 为此,数据链路层采用了被称为帧(frame)的协议数据单元作为该层的数据传送逻辑单元。 数据链路层协议的核心任务就是根据所要实现的数据链路层功能来规定帧的格式,即语法和语义。

帧的一般示意图 帧中的语法成分被称为域或字段(field); 帧浓缩了与数据链路层功能实现相关的各种机制 帧提高了数据处理和传输的效率 帧的开始 地址 帧类型或长度 数据 帧的结束 帧校验 FCS 帧头 帧尾 帧的定界 用于寻址 差错控制 帧中的语法成分被称为域或字段(field); 帧浓缩了与数据链路层功能实现相关的各种机制 帧提高了数据处理和传输的效率 不同的数据链路层协议的帧格式可能会存在微小的区别。

帧的基本格式 帧开始字段和帧结束字段分别用以指示帧或数据流的开始和结束。 地址字段给出节点的物理地址信息。 第三个字段则提供有关帧的长度或类型的信息,也可能是其他一些控制信息。 数据字段承载的是来自高层即网络层的数据分组(packet)。 帧检验序列FCS (Frame Check Sequence)字段提供与差错检测有关的信息。 通常数据字段之前的所有字段被统称为帧头部分,而数据字段之后的所有字段被称为帧尾部分。

帧的地址 帧中的地址属于物理或硬件地址 用于设备或机器的物理寻址 能够在多个相邻结点之间确定一个接受目标 网卡地址(局域网) 链路标识(广域网) 用于设备或机器的物理寻址 能够在多个相邻结点之间确定一个接受目标

成帧与拆帧 成帧与拆帧:数据链路层的封装与拆封 确认自己是目标节点 FCS 校验正确 物理链路-原始比特流 帧头 帧头 分组 分组 帧尾 帧的开始 地址 帧类型/长度 数据 帧校验 FCS 帧的结束 帧的开始 地址 帧类型/长度 数据 帧校验 FCS 帧的结束 物理链路-原始比特流 成帧与拆帧:数据链路层的封装与拆封

成帧与拆帧 在发送方,数据链路层从网络层获得分组(Packet)后,要加上必要的帧头与帧尾后传送给物理层,并通过物理层传送到接收方的数据链路层。 这种加上帧头与帧尾的过程就称为成帧(Framing)。 在接收方,数据链路层则必须去掉发送端数据链路层所加的帧头和帧尾部分,从中分离出网络层所需的分组. 将帧重新拆装成分组的过程称为拆帧。

帧的定界 定界:标识帧的开始与结束 常用方法: 字符计数法 带字符填充的首尾界符法 带位填充的首尾标志法 物理层编码违例法

字符计数法 在帧头中使用一个字段来标明帧内的字符数,通常该字段称为帧长字段。 如果发生传输错误,则可能更改帧长的值,从而导致帧的同步出现问题。 该方法通常与下面介绍的其他方法结合使用。 6 A B C D E 5 U V W X 8 1 2 3 4 4 5 8 6 A B C D E 7 U V W X 8 1 2 3 4 4 5 8 三个帧的长度分别为6字节、5字节和8字节。 ???

四个帧的长度分别为5字节、5字节、8字节和8字节。 字符计数法 帧长度计数 第1帧 第4帧 第3帧 第2帧 5 1 2 3 4 6 7 8 9 第1帧 第2帧 帧长度计数错 5 1 2 3 4 7 6 8 9 一旦帧长度计数被误读,将无法再同步,这样方法不可用。

首尾界符法 每一帧以ASCII字符序列DLE STX开始,以DLE ETX结束。 DLE为“Data Link Escape”的缩写,STX意味着“Start of Text”, ETX代表“ End of Text”。 其缺点是成帧完全依赖于8位字符,而且若数据部分也出现了DLE STX或DLE ETX,则接收端就会错误判断帧边界。 DLE … Data … STX ETX

首尾界符法中的字符填充 在首尾界符法中,由于数据中可能会出现DLE STX或DLE ETX,从而干扰帧的正常定界 字符填充法可用于解决上述问题。即发送端在数据中所遇到的DLE前再插入一个附加的DLE,而接收端则忽略两个连续DLE的前一个。 Data DLE STX … ETX … DLE ETX STX

首尾标志法 每一帧使用一个特殊的位模式“01111110”作为开始和结束标记。 该位模式又称为“flag”。 位模式允许数据帧包含任意个数的比特,也允许每个字符采用任意比特的编码。 … Data … 01111110

首尾标记法中的位填充 在首尾标记法中,由于数据中可能会出现与标记相同的位串,从而干扰帧的正常定界 位填充法可用于解决上述问题。即发送端在数据中若遇到5个连续的“1”时,则在其后自动插队入一个“0”。该技术简称“逢五1插0”;接收端则忽略5个连续的“1”后面的“0”,简称“逢五1删0” 。 Data 01111110 … 111111 111110 01111110 … 1111101 1111100

物理层编码违例法 利用物理层信息编码中未用的电信号来作为帧的边界。 采用冗余编码技术,如曼切斯特编码,即对连续两个信号进行采样,可得到一个二进制位 数据0:低-高电平对 数据1:高-低电平对 高-高电平对和低-低电平对没有使用,如在二进制编码中出现则称为编码违例,但这两种违例编码正好可用作帧界符,在令牌环网中使用编码违例格式。

Section Three 差错控制

本节驱动问题 数据链路层如何得知“帧”在传输过程中出错了? 为什么要进行差错控制? 有哪些常用的机制?

差错的类型、原因与衡量 要探寻差错控制的机制,首先要了解差错的产生原因及类型。 物理信道中所存在的各类噪声,会引起数据传输中的错误,误码率: Pe=错误接收的码元数/接收的码元总数 根据噪声产生原因的不同,差错分为随机错和突发错。 热噪声→随机错 冲击噪声(如EMI/RFI电磁干扰/射频干扰)→突发错

差错控制 信道中的噪声是客观存在的 不管信道质量多高,无论通过哪种类型传输介质或信道进行数据传输,误码率都不可能是零。都要进行: 差错控制必不可少 差错控制就是通过发现传输中的错误,以采取相应的措施降低数据传输错误的影响。

差错控制的核心 差错控制的核心是发送端对传送的数据信息加上与其满足一定关系的冗余码,形成一个加强的、符合一定规律的发送序列。 所加入的冗余码称校验码; 接收端利用相同的规律进行检查从而发现错误。 校验码按校验错误能力的不同被分为: 纠错码 检错码

纠错码 纠错码不仅能发现传输中的错误,还能利用纠错码中的信息自动纠正错误。 对应的差错控制措施为自动向前纠错。 海明码(Hamming code)为典型的纠错码,具有很高的纠错能力。 海明码是一种可以纠正一位差错的编码。它是利用在信息位为m位,增加k位冗余位,构成一个n=m+k位的码字,然后用k个监督关系式产生的k个校正因子来区分无错和在码字中的n个不同位置的一位错。

检错码 检错码用来发现传输中的错误,但不能自动纠正所发现的错误。 常见的检错码有: 奇偶校验码 校验和(Check Sum) 块校验码(Block Check Code) 循环冗余校验码(CRC)

奇偶校验 水平奇偶校验:   在面向字符的数据传输中,在每个字符的7位信息码后附加一个校验位0或1,使整个字符中“1”的个数构成奇数个(奇校验)或偶数个(偶校验)。 垂直奇偶校验:    在发送字符块的末尾附加一个校验字符,且该字符中的第i位是针对所有字符的第i位所进行的校验。 垂直水平奇偶校验    垂直奇偶校验和水平奇偶校验技术的综合。对每个字符作垂直校验,对整个字符块作水平校验。

奇校验的例子 1 1 1 1 1 1 1 1 1 b1 b2 b3 b4 b5 b6 b7 check 校验字符 字符1 字符2 字符3 1 校验字符 1 字符1 1 字符2 1 字符3 1 字符4 1 字符5 1 字符5 1 字符6 1 字符7 b1 b2 b3 b4 b5 b6 b7 check

校验和 算法简单、实现容易,但检错强度较弱 将发送的数据看成是二进制整数序列,并划分成一段段规定的长度(如8位、16位、32位等),计算它们的和,如计算和时有进位,则将进位加到最后的校验和中,并将校验和与数据一起发送;在接收端,重新计算校验和,并与接收到的原校验和比较,如要传输“ Hello world.” H e l o w r d . 48 65 6C 6F 20 77 72 64 2E 71 FC 以16位为例: 4865H+6C6CH+6F20H+776FH+726CH+642EH+进位=71FCH

块校验码 块校验码BCC(Block Check Code)简单常用,但检错的强度较弱,如在同一列上有偶数位错,则不能检测。 如传输的数据都是ASCII字符(即面向字符,这在应用中很多),每个字符进行奇偶校验,然后把所有的字符(连同奇偶位)进行异或运算,运算结果即为其块校验码,通常发送端在发送完数据区的结束标志后发送BCC,接收端一边接收数据一边计算BCC,最后与接收到的BCC比较,以确认所接收到的数据正确与否 如“Hello world.”,采用偶校验,校验后的字符序列为: H e l o w r d . 48 65 6C 6F A0 77 72 E4 2E 48H65H6CH6CH6FHA0H77H6FH72H6CHE4H2EH = 2EH

循环冗余校验 循环冗余校验 英文全称为Cyclic Redundancy Check ,简称CRC。 工作原理: 又称多项式校验 多项式除法:被除多项式=除式*商+剩余多项式 通信双方约定除式,发送方将余式作为冗余信息发送给接收方 接收方验证所收到的多项式能否为除式所整除,以判断传输过程是否出错。 又称多项式校验

CRC的工作原理(1) f(x)=an-1xn-1 +an-2xn-2 + a1x + a0 将要发送的二进制数序列看成是一个多项式。n位的数据序列对应n-1次多项式。   f(x)=an-1xn-1 +an-2xn-2 + a1x + a0   选定除式,被选作除式的多项式称为生成多项式,常见的生成多项式有: CRC-12: G(x)=x12 +x11 +x3 + x2 + x + 1 CRC-16: G(x)=x16 +x15 + x2 + 1 CRC-CCITT: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的工作原理(2) 将f(x)乘以 G(x)的最高幂次作为被除式,作多项式除式。除法采用“加法不进位,减法不借位”的规则,即相当于异或操作; 将所得到的余式多项式R(x)重新转换为二进制数,作为冗余码;     将冗余码加在原传送数据后面,构成发送序列; 接收方收到后,将接收序列用同样的生成多项式去除。若余式为零,则表示无差错;否则,说明传输过程中出现了错误。

CRC的例子(1) 设所要发送的二进制数序列为“110011”,该6位数据序列对应一个5次多项式:  f(x)=1*x5+1*x4+0*x3+0*x2+1*x+1*x0=x5+x4+x+1    假定选定的生成多项式为:   G(x)=x4 +x3 + 1   (最高次数为4,相当于11001) 则被除多项式为:    f(x)x4= x9+x8+ x5+ x4       (相当于1100110000)

CRC的例子(2) 多项式除法后得到冗余码为1001,所以相应的数据发送序列为110011 1001 0000 1100110000 11001 10000 1001 多项式除法后得到冗余码为1001,所以相应的数据发送序列为110011 1001 CRC校验可以由软件或硬件来实现,现多采用超大规模集成电路芯片以硬件方式实现。

CRC的检错能力 全部单个错 全部离散的二位错 全部奇数个错 全部长度小于或等于K的突发错( K为生成多项式的最高幂次)

差错控制措施:反馈重发 检错码不能自动纠正所发现的错误,需要提供一种与之相配套的错误纠正机制; 反馈重发:当接收方检出错误的帧时,首先将错误帧丢弃,然后给发送方反馈信息,请求对方重发相应的帧。 又称自动请求重传(automatic repeat request),简称ARQ。 常见的实现方法: 停止等待方式 连续ARQ方式

停止--等待方式 发送端在发出一帧之后必须停下来等待接收端的对发送帧的确认(acknowledgement) 。 若发送方收到确认帧,表示接收方已正确接收,发送方可继续发送下一帧; 否则,可能: 接收方收到了被损坏的数据帧,给发送方发送否认帧

停止--等待方式(续1) 两种永远收不到确认帧的情况: 发送端所发送的数据帧在传输过程被丢失 接收端发送给发送方的确认帧被丢失 Solution--超时重发机制: 在发送方设置一个计时器(timeout),当发送一个帧之后,就开始倒计时;若倒计时结束确认帧还未到达,就默认为帧在传输过程中被丢失,主动重新启动帧的发送。 可能造成重复接收 解决方法为帧编号

停止--等待方式(续2) 传输过程中出现差错: (1)数据帧出错:ACK,NAK (2)数据帧丢失:超时计时器Time-outer (3)确认帧丢失:重复帧、编号

停止--等待方式(续3) 发送序号编号问题:对发送的数据帧带上发送序号,序号所占用的比特数是有限的。经过一段时间后,发送序号就会重复。序号所占用的比特数越少,额外开销就越小。 对停止等待协议,每发送一帧就停止等待,故用一个比特来编号就够了。 虽然物理层在传输比特时会出现差错,但由于数据链路层的停止等待协议采用了有效的检错重传机制,数据链路层对上面的网络层就提供了可靠传输的服务。

停止--等待方式(续4) 停止等待协议ARQ的优点:比较简单; 缺点:信道利用率不高。尤其当信道引起的传播时延很大时(如卫星通信),也就是说信道还远远没有被数据比特填满。 为克服这一缺点,产生了另外两种协议:连续ARQ和选择重传ARQ。

连续ARQ方式 连续发送多个帧; 为不同的帧加上序列号以作为帧的标识; 帧传输出现差错时,有两种反馈重发方式: 拉回 (back to n) 选择重发 (selective repeat )

连续ARQ方式:拉回 含义: 假定发送方连续发送了m帧,而接收方在对收到的数据帧进行校验后发现第n帧出错,于是接收方给发送方出错信息要求发送方重发第n帧及第n帧以后的所有帧。换言之,一旦接收方发现第n帧出错,则丢弃第n帧及第n帧以后的所有帧。 代价   信道的带宽

选择重发方式 含义: 假定发送方连续发送了m帧,而接收方在对收到的数据帧进行校验后发现第n帧出错(n≤m) ,于是接收方给发送方出错信息要求发送方重发第n帧。换言之,一旦接收方发现第n帧出错,则丢弃第n帧,但缓存第n帧以后的所有正确帧。 代价   存储空间

连续ARQ方式图示 请同学们来判断图中哪个为拉回?哪个为选择重传?

连续ARQ方式问题 在连续ARQ议中,应当将已发送出去但未被确认的数据帧的数目加以限制。因为: (1)当未被确认的数据帧数目太多时,只要有一帧出了差错,就可能有很多的数据帧需要重传,这必然就白白花费较多的时间,增大开销。 (2)为了对所发送的大量数据帧进行编号,每个数据帧的发送序号也要占用较多的比特数,这样又增加了一些不必要开销。

Section Four 流量控制

本节驱动问题 为什么要进行流量控制? 如何实现?

流量控制 由于系统性能的不同,如硬件能力(包括CPU,存储器等)和软件功能的差异,会导致发送方与接收方数据处理能力有所不同。 流量控制的作用是使发送方所发出的数据流量,使其发送速率不要超过接收方所能接收的速率。 流量控制的关键是需要有一种信息反馈机制,使发送方能了解接收方是否具备足够的接收及处理能力 存在各种不同的流量控制机制。如简单的停--等协议,而滑动窗口协议则将关于帧的确认与流量控制巧妙地结合在了一起。

滑动窗口(Sliding Window) 实际的通信往往是全双工通信; 捎带应答(piggybacking):将确认序号携带在数据帧中传输,提高线路的效率; 推迟确认:当需要发送确认但没有要发送的数据时,可以让确认信息推迟一小段时间再发送; 滑动窗口协议:允许发送端在没有收到前一个帧的确认时,就可以发送后续的帧;接收端可以对正确收到的若干个帧同时进行确认。 滑动窗口协议的要点: 任何时刻发送进程维持一组帧序号,对应于一组已经发送但尚未被确认的帧,用一个发送窗口维持这些帧; 接收进程也维持一组帧序号,对应于一组允许接收的帧,用一个接收窗口维持这些帧序号。

滑动窗口协议(续) 每一个要发送的帧都包含一个序列号,其范围从0到某一个值。若帧中“序列号” 字段的长度为n,则序列号的最大值为2n-1。 发送方,维持一个发送窗口(sending window): 在发送窗口内保持着一组序列号,对应于允许发送的帧,形象地称这些帧落在发送窗口内。 若发送窗口的大小为Ws ,则表明已经发送出去但仍未得到确认的帧总数不能超过Ws。 发送窗口的下限对应当前已经发送出去但未被确认的最后一帧 帧的确认帧到达后,发送窗口的下限和上限各自加1--窗口向前滑动一个位置

滑动窗口协议(续) 接收方,维持一个接收窗口(receiving window): 保持着一组序列号,对应于允许接收的帧,形象地称这些帧落在接收窗口内; 接收窗口的大小等于发送方未收到接收方的确认之前所能发送的最多帧。 若下限帧被正确接收,则接收窗口向前滑动一个位置,即窗口的上下限各加1,使一个新序列号落入窗口内,同时给发送方返回一个确认帧。 发送方与接收方的数据处理能力有所不同,接收窗口和发送窗口可以不具有相同的窗口大小,也可以不具有相同的窗口上限与下限。 在某些协议中,窗口大小在传输过程中还可动态调整。

滑动窗口协议的例子1:3位长度的序列号,窗口大小为4帧 1 2 3 4 5 6 7 1 2 3 4 5 6 7 初始状态:发送方等待发送帧,接收方等待接收帧 1 2 3 4 5 6 7 1 2 3 4 5 6 7 状态2:发送方发送帧0和1,接收方等待接收帧 1 2 3 4 5 6 7 状态3:接收方正确接收了接收帧0和1,并给发送方确认消息 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 状态4:发送方收到了关于0和1的确认消息

滑动窗口协议的例子2:3位长度的序列号,窗口大小为4帧 1 2 3 4 5 6 7 1 2 3 4 5 6 7 初始状态:发送方等待发送帧,接收方等待接收帧。 1 2 3 4 5 6 7 1 2 3 4 5 6 7 状态2:发送方发送帧0、1、2和3,接收方等待接收帧。 1 2 3 4 5 6 7 1 2 3 4 5 6 7 状态3:接收方正确接收了接收帧0、1和2,并给发送方确认。 1 2 3 4 5 6 7 1 2 3 4 5 6 7 状态4:发送方收到了关于0、1和2的确认消息。

当发送出数据时,滑动窗口从左边开始收缩; 当收到确认时,滑动窗口向右扩展。 发送窗口 1 2 3 4 5 6 7 WT 不允许发送这些帧 允许发送 5 个帧 (a) 还允许发送 4 个帧 已发送 (b) (c) 还允许发送 3 个帧 并已收到确认 (d) 当发送出数据时,滑动窗口从左边开始收缩; 当收到确认时,滑动窗口向右扩展。

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

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

Section Five 数据链路层所提供的 基本服务

数据链路层提供的服务 可以将数据链路层设计成提供各种服务,实际的服务因系统的不同而不同。 通常有三种基本的服务可供选择: 无确认的无连接服务(Unacknowledged connectionless service) 有确认的无连接服务(Acknowledged connectionless service) 有确认的面向连接的服务(Acknowledged connection-oriented service)

无确认的无连接服务 源机器向目标机器发送独立的数据帧,而目的机器不对收到的帧作确认。 由于线路上的噪声而造成的帧丢失,数据链路层不作努力去恢复,而将该工作留给上层(通常为传输层)。 事先不存在建立连接,事后也不存在释放。 适用于误码率较低的信道,如大多数的局域网中。 实现这类服务的数据链路层协议通常比较简单 。

无确认面向无连接的服务 例如:局域网 共享信道不需要、也不允许建立连接 信道较为理想,数据传输的误码率很低 即使出错或丢失由上层负责恢复

有确认的无连接服务 事先不存在建立连接,事后也不存在释放 源机器向目标机器发送独立的数据帧,但目的机器对收到的每一帧作确认。 若某个确定的时间间隔内未能收到确认帧(超时),则发送方自动重发, 适用于无线通信系统之类的不可靠信道。 协议较实现无确认无连接服务的协议复杂

有确认的无连接服务 例如:无线通信 如建立连接,则信道使用率很低 然而,由于数据传输的误码率相对较高,所以确认是必要的

有确认的面向连接的服务 传送数据前,事先要建立一条连接。 在连接上所传送的每一帧都要编上号,提供相应的确认和流量控制机制来保证每一帧都只被正确地接收一次,并保证所有帧都按正确的顺序被接收 。 数据传输完成之后,需要释放所建立的连接。 真正为网络层提供了可靠的无差错传输服务。 适用于误码率较高的不可靠信道,如某些广域网链路。 协议的实现复杂度及实现代价相对最高。

有确认的面向连接服务 例如:电话 电话是一种实时的应用,如不是面向连接,则实时性难以得到保证 电话是一对一的、双向的数据传输

Section Six 数据链路层协议 (自学)

简单介绍 通过三个由简单到复杂的数据链路协议来介绍该层协议的基本设计思想; HDLC协议概述。

协议1:一个无限制的单工信道

在这样理想化的条件下,数据的传输就非常简单(不需要有流量控制,也不需要有差错控制)。 协议1:一个无限制的单工信道(续) 在这样理想化的条件下,数据的传输就非常简单(不需要有流量控制,也不需要有差错控制)。

协议2:单工停-等协议 仍然假定信道不会出错,但需要进行流量控制。在这时引入反馈机制,要求接收端对于收到的每个帧都要给出响应,同时发送端在发出一帧后必须收到该帧的响应后才能发送下一个帧(停-等)。 由于一次只发送一帧,且该帧一定能正确到达,不会有重发的需要,因此也不需要帧序号。

协议3:有噪信道上的单工协议 假设信道会出错,而且接收端处理能力也有限,即同时需要差错控制和流量控制。 协议要点: 采用协议2中的停-等方式; 发送方每次只发送一个帧,当这个帧被正确接收后才能发送下一帧,若该帧未在规定的时间内得到确认(超时),则重发该帧; 接收端对每个收到的帧进行校验,对正确收到的帧发回确认,错误的帧丢弃; 由于需要区分新、旧两个帧,因此要使用1比特的帧序号。

协议3:有噪信道上的单工协议(续) 发送方处理流程: 1) 初始化(next_frame_to_send = 0); 2) 从网络层接收一个分组,放入缓冲区; 3) 使用缓冲区中的分组和next_frame_to_send构造一个帧; 4) 将帧传给物理层发送,并启动相关的计时器; 5) 等待事件发生(帧到达,收到坏帧,超时); 6) 事件发生: ①帧到达:从物理层接收一个帧,检查帧的ack域, 若是对所发帧的确认(ack = next_frame_to_send),终止相关的计时器,从网络层接收下一个分组放入缓冲区,发送序号加1,返回 3); 若不是对所发帧的确认,返回 3);(缓冲区内容和发送序号均不变) ②其它事件(收到坏帧,超时):返回 3);(缓冲区内容和发送序号不变)

协议3:有噪信道上的单工协议(续) 接收方处理流程: 1) 初始化期待接收的帧序号(frame_expected = 0); 2) 等待帧的到达; 3) 从物理层接收一个帧,检查帧的seq域: 若是期待接收的帧(seq = frame_expected),将帧中携带的分组交给网络层,frame_expected加1,执行 4); 若不是期待接收的帧(一个重复帧),执行 2); 4) 发回确认帧(确认帧的ack = 收到帧的seq); 5) 返回 2)。

HDLC 协议概述 HDLC是一个面向比特的链路控制规程。 1974年,IBM 公司推出了面向比特的规程SDLC (Synchronous Data Link Control)。 后来 ISO 把 SDLC 修改后称为 HDLC (High-level Data Link Control),译为高级数据链路控制,作为国际标准ISO 3309,我国国标是GB7496。 CCITT 则将 HDLC 再修改后称为链路接入规程 LAP (Link Access Procedure)。不久,HDLC 的新版本又把 LAP 修改为 LAPB,“B”表示平衡型(Balanced),所以 LAPB 叫做链路接入规程(平衡型)。

HDLC的帧格式 8bit 8 >=0 16 01111110 地址 控制 数据 校验和 帧标志序列 即01111110,作为帧的分隔标志,如线路空闲,则用标志序列填充,用位插入方法实现透明传输 地址域 在总线型多终端情况下,是终端的站号;在点对点的情况下,用来标志命令和响应 控制域 定义帧的类型、序号等和其它一些功能 数据域 用户数据,长度任意 校验和 CRC码,ISO和CCITT有相似的生成多项式

Section Seven 数据链路层的设备 与组件

本节驱动问题 在物理层我们了解了不少的设备与组件,那么在数据链路层是否也有相应的设备与组件? 若有,这些设备与组件与物理层的设备与组件有什么功能上的区别?

数据链路层设备与组件的含义 数据链路层的设备与组件是指那些同时具有物理层和数据链路层功能的设备或组件。 数据链路层的组件有网卡。 数据链路层的主要设备包括网桥和交换机。

网卡 局域网中提供各种网络设备与网络通信介质相连的接口,全名是网络接口卡(NIC,Network Interface Card),也叫网络适配器 。 网卡作为一种I/O接口卡插在主机板的扩展槽上,其基本结构包括接口控制电路、数据缓冲器、数据链路控制器、编码解码电路、内收发器、介质接口装置等六大部分。 主要实现数据的发送与接收、帧的封装与拆封、编码与解码、介质访问控制和数据缓存等功能。

网卡的基本结构 MAC:Media Access Control AUI:Attachment Unit Interface 数据缓冲及帧的装配与拆卸 MAC层协议 控制电路 编码与解码电路 收发电路 AUI 介质接 口装置 内部总线 MAC:Media Access Control 媒体访问控制 AUI:Attachment Unit Interface 连接单元接口---“D”型端口

网卡地址 每一网卡在出厂时都被分配了一个全球唯一的地址标识,该标识被称为网卡地址或MAC地址; 网卡地址被固化在网卡上,并被局域网的数据链路层用于识别不同的物理节点即寻址,故又被称为物理地址或硬件地址。 网卡地址由48bit长度的二进制数组成。其中,前24bit表示生产厂商,后24bit为生产厂商所分配的产品序列号。 若采用12位的十六进制数表示,则前6个十六进制数表示厂商,后6个十六进制数表示该厂商网卡产品的序列号。 思科系统公司是全球领先的互联网设备供应商

网卡分类 按照网络技术的不同可分为以太网卡、令牌环网卡、FDDI网卡、802.11卡等,以太网卡最常见; 按照传输速率,单以太网卡就提供了10Mbps、100Mbps、1000Mbps和10G等多种速率 。 按照总线类型,网卡可分为ISA总线网卡(已淘汰)、EISA总线网卡、PCI总线网卡等 。 按照所支持的传输介质,网卡可分为双绞线网卡、粗缆网卡、细缆网卡、光纤网卡和无线网卡 。

用于台式PC机的以太网网卡 用于笔记本电脑的网卡 用于台式PC机无线局域网网卡

网桥 Bridge,也叫桥接器。 工作在数据链路层的一种网络互连设备,其可以实现两个或多个LAN的互联; 主要功能包括: 物理上扩展网络 基于第二层地址的数据过滤功能 逻辑划分网络的功能 数据推进功能 帧格式转换功能

网桥应用示意图

网桥的工作原理示意

网桥的工作原理 缓存:网桥首先会对收到的数据帧进行缓存并处理。 过滤:判断入帧的目标节点是否位于发送这个帧的网段中,如果是,网桥就不把帧转发到网桥的其他端口。 转发:如果帧的目标节点位于另一个网络,网桥就将帧发往正确的网段。

网桥的工作原理 学习:每当帧经过网桥时,网桥首先在网桥表中查找帧的源MAC地址,如果该地址不在网桥表中,则将有该MAC地址及其所对应的网桥端口信息加入。 扩散:如果在表中找不到目标地址,则按扩散的办法将该数据发送给与该网桥连接的除发送该数据的网段外的所有网段。

网桥基于第二层地址进行工作,所以被归为数据链路层设备 网桥与OSI模型 网桥基于第二层地址进行工作,所以被归为数据链路层设备

交换机 Switch ,也是工作在数据链路层的一种网络互连设备。 由网桥发展而来,是一种多端口的网桥,其通过在其内部配备大容量的交换式背板实现了高速数据交换。 根据涉及的第二层技术,分为以太网交换机、FDDI交换机、帧中继交换机、ATM交换机和令牌环交换机等。

交换机工作 示意图 LAN1 LAN4 LAN2 LAN3 A001CD201B56 LAN1/PORT1 20017D201B96 …… 79E17D2019B6 LAN4 /PORT12 交换机工作 示意图 LAN1 LAN4 LAN2 LAN3

交换机与OSI模型 交换机与网桥一样,基于第二层地址进行工作,因此也属于数据链路层设备

APDU PPDU Frame Bits SPDU Packet SPDU Segment Bridge/Switch

交换机与网桥的比较 相同性: 均为OSI第二层的网络互连设备。交换机作为多端口网桥,具备了网桥所拥有的全部功能,如物理上扩展网络、逻辑上划分网络等。 区别: 作为对网桥的改进设备,交换机: 1)可以提供高密度的连接端口; 2)采用的基于交换背板的虚电路连接方式,可为每个交换机端口提供更高的专用带宽; 3)数据转发基于硬件实现,较网桥采用软件实现数据的存储转发具有更高的交换性能。

虚电路方式 虚电路方式是面向连接的方式,就是在用户数据传送前先通过发送呼叫请求分组建立端到端的虚电路;一旦虚电路建立后,属于同一呼叫的数据分组按建立的路径顺序通过网路传送,最后通过呼叫清除分组来拆除虚电路。 虚电路方式适用于较连续的数据流传送,如文件传送、传真业务等。

虚电路方式特点 数据分组中不需要包含终点地址,对于数据量较大的通信传输效率高。 在网路终点不需要对数据重新排序,分组传输时延小,而且不容易产生数据分组的丢失。 当网络出现故障时 ,将由网络自动选择并建立新的虚电路,不需要用户重新呼叫,并且不丢失用户数据。

交换机作为多端口网桥的交换机可以取代多个网桥的作用,且具有更高的带宽