1. 数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。 功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认! 功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。 功能三:组帧。 功能四:流量控制。 功能五:差错控制(帧错/位错)。
2. 组帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。 **帧同步:**接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。 组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨 碍数据传输的东西。 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误 认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
2.1 字符计数法
2.2 字符填充法
2.3 零比特填充法
2.4 违规编码法
2.5 练习
3. 差错控制
数据链路层编码和物理层编码区别: 数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。 冗余编码: 在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
3.1 检错编码
3.2 纠错编码
海明距离: 两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
3.3 练习
4. 流量控制与可靠传输机制
数据链路层的流量控制: 较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。 数据链路层流量控制手段: 接收方收不下就不回复确认。 传输层流量控制手段: 接收端给发送端一个窗口公告。
4.1 停止-等待协议
为什么要有停止-等待协议? 除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。 研究停等协议的前提? 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据 (接收方)。 因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。 “停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。 停等协议有几种应用情况? 无差错情况&有差错情况
4.2 后退N帧协议(GBN)
GBN发送方必须响应的三件事:
- 上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。 - 收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。 - 超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样, 定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事: 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
窗口长度可以无限码? 若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:1≤ WT≤2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。 GBN协议性能分析: 因连续发送数据帧而提高了信道利用率 在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
4.3 选择重传协议(Selective Repeat)
4.4 练习
5. 介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
点对点链路: 两个相邻节点通过一个链路相连,没有第三者。 应用:PPP协议,常用于广域网。 广播式链路: 所有主机共享通信介质。 应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)
5.1 信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术: 把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。 把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
- 频分多路复用FDM
- 时分多路复用TDM
- 波分多路复用WDM
- *码分多路复用CDM
5.2 随机访问介质访问控制
特点: 信道并非在用户通信时固定分配给用户。所有用户可随机发送信息。发送信息时占全部带宽。
5.2.1 ALOHA协议
- 纯ALOHA协议:不监听信道,不按时间槽发送,随机重发。想发就发
冲突如何检测? 如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。 冲突如何解决? 超时后等一随机时间再重传。
- 时隙ALOHA协议:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性
关于ALOHA要知道的事 1.纯ALOHA比时隙ALOHA吞吐量更低,效率更低。 2.纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
5.2.2 CSMA协议
载波监听多路访问协议CSMA(carrier sense multiple access)
CS: 载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。 MA: 多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。 1-坚持CSMA思想: 如果一个主机要发送消息,那么它先监听信道。 空闲则直接传输,不必等待。 忙则一直监听,直到空闲马上传输。 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。 优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。 缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。 非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。 空闲则直接传输,不必等待。 忙则等待一个随机的时间之后再进行监听。 优点: 采用随机的重发延迟时间可以减少冲突发生的可能性。 缺点: 可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。 p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。 空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则持续监听直到信道空闲再以p概率发送。若冲突则等到下一个时间槽开始再监听并重复上述过程。 优点: 既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。 缺点: 发生冲突后还是要坚持把数据帧发送完,造成了浪费。
5.2.3 CSMA/CD协议
5.2.4 CSMA/CA协议
载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)
5.3 轮询访问介质访问控制
练习
D D
6. 局域网
局域网(Local Area Network): 简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点:
特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。 特点3:通信延迟时间短,误码率低,可靠性较高。 特点4:各站为平等关系,共享传输信道。 特点5:多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。
6.1 局域网拓扑结构
6.2 局域网传输介质
6.3 局域网介质访问控制方法
- CSMA/CD: 常用于总线型局域网,也用于树型网络
- 令牌总线:常用于总线型局域网,也用于树型网络。
它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。 - 令牌环:用于环形局域网,如令牌环网
6.4 局域网的分类
- 以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。
- 令牌环网:物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。
- FDDI网(Fiber Distributed Data Interface):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
- ATM网(Asynchronous Transfer Mode):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
- 无线局域网(Wireless Local Area Network; WLAN):采用IEEE 802.11标准。
IEEE 802标准:IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其 中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
6.5 以太网
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
以太网在局域网各种技术中占统治性地位:
- 造价低廉(以太网网卡不到100块);
- 是应用最广泛的局域网技术;
- 比令牌环网、ATM网便宜,简单;
- 满足网络速率要求:10Mb/s~10Gb/s.
以太网两个标准: DIX Ethernet V2:第一个局域网产品(以太网)规约。 IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)
以太网提供无连接、不可靠的服务: 无连接:发送方和接收方之间无“握手过程”。 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。 以太网只实现无差错接收,不实现可靠传输。
6.6 无线局域网
无线局域网的分类:
练习
B
7. 广域网
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。 广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
7.1 PPP协议
特点: 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。只支持全双工链路。
PPP协议应满足的要求: 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。 封装成帧:帧定界符 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。 多种网络层协议:封装的IP数据报可以采用多种协议。 多种类型链路:串行/并行,同步/异步,电/光…. 差错检测:错就丢弃。 检测连接状态:链路是否正常工作。 最大传送单元:数据部分最大长度MTU。 网络层地址协商:知道通信双方的网络层地址。 数据压缩协商 PPP协议无需满足的要求: 纠错 流量控制 序号 不支持多点线路
PPP协议的三个组成部分: 1.一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。 2.链路控制协议LCP:建立并维护数据链路连接。身份验证 3.网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
7.2 HDLC协议
高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的. 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。采用全双工通信。 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
练习
8. 数据链路层设备
|