数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
二、数据链路层基本概念- 节点:主机、路由器
- 链路:网络中连个节点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
- 数据链路:网络中两个节点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报
- 帧:链路层的协议数据单元,封装网络层数据报。
无确认无连接服务、有确认无连接服务、有确认面向连接服务。(有连接一定有确认)
2. 透明传输如果是文本文件,可以用SOH/EOT充作帧开始、结束控制符,但数据中可能也出现SOH/EOT,这时需要加转义字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以达到透明传输。这里的透明指的是,数据链路层对传输的数据透明,传输的数据实际上感受不到数据链路层所做的操作。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
连接的建立、维持、释放(用于面向连接的服务)。
4. 组帧组装成帧就是在一段数据的前后部添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用是帧定界(确定帧的界限)。
组帧的四种方法:字符计数法、字符(节)填充法、零比特填充法、违规编码法。
可以简单的理解为差错都是传输过程中由噪声引起的。
- 全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信造比来减少或避免干扰。(对传感器下手) - 局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因
解决办法:通常利用编码技术来解决。
差错分为位错/比特错和帧错
- 位错:比特位出错,由1变为0,0变1。
- 帧错:丢失、重复、失序。
差错控制分为检测编码和纠错编码
- 监错编码:奇偶校验、CRC循环冗余码
- 纠错编码:海明码
注意:数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
6. 流量控制较高的发送速度和较低的接收能力不匹配,会造成传输出差,因此流量控制也是数据链路层的一项主要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端发送一个窗口公告
流量控制的方法:
- 停止-等待协议
- 滑动窗口协议:后退N帧协议(GBN)、选择重传协议(SR)
两个相邻节点通过一个链路相邻,没有第三者。
点对点信道主要用于用户同ISP(验证身份)通信时。早期使用高级数据链路控制HDLC,已经淘汰,现在用的是PPP协议,即point-to-point protocol,点对点通信协议。
PPP协议
是一种支持在点对点链路上传输多种上层协议的数据包。能够实现单点通信。PPP是数据链路层协议,最早是替代SLIP协议用来在同步链路上封装IP数据报的,后来也可以承载诸如DECnet等协议的分组。
PPP帧的格式如下:
注意:其中,F,A,C都是固定的,A是地址,C字段实际上无用。
PPP协议的链接过程:
所有主机共享通行介质。
应用:早期的总线以太网、无线局域网,常用于局域网。
典型拓扑结构:总线型、星型(逻辑总线)
- 局域网
简称LAN,是指在某一区域内有多台计算机互联形成的计算机组,使用广播信道。
特点:
- 特点1:覆盖的地理范围小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
- 特点2:使用专用铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
- 特点3:通信延迟时间短,误码效率低,可靠性较高。
- 特点4:各站为平等关系,共享传输信道。
- 特点5:多采用分布式控制和广播通信,能进行广播和组播。
注意:决定局域网的主要因素为:网络拓扑、传输介质与介质访问控制方法。
- 以太网
以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。
特点:
- 以太网采用的是尽最大努力的交付,不可靠的交付。
- 以太网采用使用CSMA/CD协议。
- 以太网采用的是曼彻斯特编码,基带信号传输。这种编码中间跃变,由高->低为1,反之为0。
以太网MAC帧:
介质访问控制的内容就是采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。
介质访问控制分为:静态划分通道和动态分配信道
- 频分多路复用(FDM)
频分复用的基本思想是:要传送的信号带宽是有限的,而线路可使用的带宽则远远大于要传送的信号带宽,通过对多路信号采用不同频率进行调制的方法,使调制后的各路信号在频率位置上错开,以达到多路信号同时在一个信道内传输的目的。因此,频分复用的各路信号是在时间上重叠而在频谱上不重叠的信号。 - 时分多路复用(TDM)
时分复用TDM是采用同一物理连接的不同时段来传输不同的信号,也能达到多路传输的目的。时分多路复用以时间作为信号分割的参量,故必须使各路信号在时间轴上互不重叠。 - 波分多路复用(WMD)
波分复用WDM是将两种或多种不同波长的光载波信号(携带各种信息)在发送端经复用器(亦称合波器,Multiplexer)汇合在一起,并耦合到光线路的同一根光纤中进行传输的技术;在接收端,经解复用器(亦称分波器或称去复用器,Demultiplexer)将各种波长的光载波分离,然后由光接收机作进一步处理以恢复原信号。这种在同一根光纤中同时传输两个或众多不同波长光信号的技术,称为波分复用。 - 码分多路复用(CDM)
码分复用是用一组包含互相正交的码字的码组携带多路信号。采用同一波长的扩频序列,频谱资源利用率高,与WDM结合,可以大大增加系统容量。有码分多址,频分多址(FDMA)、时分多址(TDMA)和同步码分多址(SCDMA)等相关技术。
- 轮询访问介质访问控制:令牌传递协议
- 随机访问介质访问控制:ALOHA协议、CSMA协议、CSMA/CD协议、CSMA/CA协议
-
纯ALOHA协议
-
时隙ALOHA协议
- 坚持CSMA
坚持指的是对于监听信道忙之后的坚持
协议思想: 如果一个主机要发送消息,那么它先监听信道,若空闲则直接传输,不必等待,忙则一直监听,直到空闲马上传输,如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。 - 非坚持CSMA
非坚持:指对于监听信道忙之后就不继续监听
协议思想:忙则等待一个随机的时间在进行监听
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。 - p-坚持CSMA
p-坚持:指的是对于监听信道空闲的的处理
协议思想:空闲则以P概率直接传输,不必等待,概率1-P等待到下一个时间槽再传输,忙则等待一个随机的时间之后再监听信道。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
他解决的问题是如何在总线局域网上进行“有效”通信。
CSMA/CD的要点如下:
-
多点接入
CSMA/CD协议适用于广播信道,允许总线上多个站点接入。协议的核心是载波监听和碰撞检测。 -
载波监听
由于总线型广播信道上同一时刻只允许一个站点发送数据,故站点需要时时检测信道上是否有其他站点发送数据,这就是载波监听。检测信道通过才能获得发送权。
载波监听发生在:一个站点发送数据之前,以及发送数据的过程中。一旦发现有其他站点发送数据,则立即停止发送。
顺便指出,信道上发送的是基带信号,并没有载波,“载波”一词为借用。 -
碰撞检测(冲突检测)
碰撞检测就是“边发送边监听”。适配器边发送数据边检测信道上信号变化情况,看是否发生了 碰撞。若有两个计算机同时发送数据,则信道上的信号电压变化幅度会超过一定的门限值,则计算机(适配器)能够发现这种变化,后续作出进一步响应。
CSMA/CA:超级有礼貌,不仅监听信道,看有没有其他人在说话,而且说话之前还等一下。
CSMA/CA协议的三个手段避免冲突:
- 预约信道
- ACK帧
- RTS/CTS帧(可选)(主要是为了解决隐蔽站问题)
CSMA/CD 与CSMA/CA比较
相同点:
CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。
不同点:
-
传输介质不同: CSMA/CD 用于总线式以太网[有线],而CSMA/CA用于无线局域网[无线]。
-
载波检测方式不同:因传输介质不同,CSMA/CD 与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用 能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
-
CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
数据链路层:https://www.cnblogs.com/Uni-Hoang/p/13910549.html
【计算机网络】数据链路层总结:https://www.cnblogs.com/duye/p/9903160.html
OSI网络分层之数据链路层介绍:https://baijiahao.baidu.com/s?id=1724450697771358460&wfr=spider&for=pc
PPP协议详解:https://blog.csdn.net/pengjian444/article/details/102020881
数据链路层的MAC和LLC子层的区别:https://www.bilibili.com/read/cv10810893/
CSMA协议简介:https://blog.csdn.net/weixin_42498906/article/details/109601372
CSMA/CA协议:https://www.jianshu.com/p/852ad221cf44