你所要知道计算机网络知识--数据链路层

533 阅读7分钟

这是我参与更文挑战的第 6 天,活动详情查看: 更文挑战

零、数据链路层的意义

物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时肯定会存在误差的。这样就引入了数据链路层在物理层之上,采用差错检测、差错控制和流量控制等方法,向网络层提供高质量的数据传输服务。

对于网络层,由于链路层的存在,而不需要关心物理层具体采用了那种传输介质和通信设备。

一、数据链路层的功能

  • 链路控制。负责数据链路的建立、维持和释放。主要用于面向连接的服务。
  • 帧同步。接收方确定收到的比特流中一帧开始位置和结束位置。
  • 差错控制。使接收方确定接受的数据就是发送方发送的数据
  • 透明传输。不管数据是什么样的组合,都应当能在链路上传送。
  • 流量控制。在OSI体系中,数据链路层肯定有流量控制(考纲仍放在数据链路层)。而在TCP/IP体系结构中,数据链路层的流量控制被移到了传输层,没必要在数据链路层设置流量控制了。

二、组帧

意义:如果只传输比特流,万一传输的比特流出错,那么要重传全部的比特流。而组帧如果出错,只需发送出错的帧即可。

增加了帧同步、帧定界、透明传输问题。

四种组帧的方法

  • 字符计数法
  • 字节填充的首尾界符法
  • 比特填充的首尾标识法(0比特填充法)
    • 以0111 1110作为帧的开始和结束标志
    • 所以但凡出现5个连续的“1”时,就在其后插入“0”
  • 物理编码违例法

三、差错控制

检错编码:奇偶校验码、循环冗余码CRC

纠错编码:海明码

四、流量控制与可靠传输机制

流量控制和可靠传输机制其实是属于传输层的功能。

流量控制就是控制发送方发送数据的速率,使接收方来得及接受。一个基本的方法是由接收方控制发送方的数据流。

流量控制常见的两种方式:

  • 停止-等待流量控制
  • 滑动窗口流量控制

数据链路层仅仅使用循环冗余码检验差错检测技术,只能做到对帧的无差错接受。并没有要求数据链路层向网络层提供"可靠传输"的服务。可靠传输就是数据链路层发送端发送什么,接收端就接收什么。

传输差错分两大类:

  • 比特差错(可通过CRC来检测)
  • 传输差错:帧丢失;帧重复;帧失序

Q:互联网使用的IP是无连接的,因此其传输是不可靠的。容易使人感到互联网不可靠,为什么不把互联网的传输设计成可靠的?

  1. 传送数据的因特网有一些缺陷,如造成比特差错或分组丢失。
  2. 即使网络可以实现100%的无差错传输,端到端的数据传输仍然可能出现差错。

也就是说,花费很多的钱将通信网络做成非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能的,就应把网络设计的简单点,让具有智能的终端来完成使传输变得更可靠的任务。

计算机网络采用一种策略,在传输层使用面向连接的TCP,保证端到端的可靠传输。只要主机B的TCP发现数据传输有差错,就告诉主机A将出错的那部分数据重传,知道这部分数据正确传送的B为止。

如果说因特网提供的数据传输是不可靠的,那么这里的互联网指的是不包括主机在内的网络(仅有物理层、数据链路层和网络层)。

如果说因特网提供的数据传输是可靠的,就表明互联网的范围已经扩大到主机的传输层。

滑动窗口机制

只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。

可靠传输机制包括停止-等待协议、后退N帧协议、选择重传协议。从滑动窗口的层次上看,该3种协议只是在发送窗口和接收窗口大小上有差别。

  • 停止-等待协议:发送窗口=1,接收窗口=1。
  • 后退N帧协议:发送窗口>1,接收窗口=1。
  • 选择重传协议:发送窗口>1,接收窗口>1。

当接收窗口的大小为1时,一定可保证帧按序接收。

停止-等待协议:

可靠传输就是说发送方发送什么,接收方就收到什么。由确认(发送确认帧)和超时重传两种机制共同完成。使用这两种机制实现可靠传输的策略又称为自动请求重发(ARQ)。

确认分为:

  • 捎带确认:将确认帧捎带在一个回复帧中。

  • 累积确认

协议 = 技术+考虑不利因素。所以停止-等待协议=停止-等待流量控制技术+不利因素。

后退N帧(GBN)协议

若采用n个比特对帧进行编号,其发送窗口尺寸W必须满足1<W<=2^n^-1,接收窗口为1。若发送窗口大于2^n^-1则会造成接收方无法分辨新、旧数据帧的问题。

如果某个帧出错了,接收方只能简单的丢弃该帧及其所有的后序帧。

支持累积确认。

选择重传(SR)协议

若采用n个比特对帧进行编号,为避免接收端向前移动窗口后,新接收窗口与旧接收窗口产生重叠,发送窗口的最大尺寸应该不超过序列号范围的一半:W<=2^n-1^

选择重传协议不支持累积确认。

五、介质控制访问

背景:在局域网中,如果共用信道的时候产生竞争,怎么能够更好地分配信道使用权。介质控制访问就是为了解决此问题。

介质控制访问分为以下3类:

  • 信道划分介质访问控制。静态分配信道
  • 随机访问介质访问控制。动态分配信道
  • 轮询访问介质访问控制。动态分配信道

信道划分

  • 频分多路复用
  • 时分多路复用
  • 波分多路复用
  • 码分多路复用CDMA

随机访问

ALOHA 协议

纯ALOHA

时分ALOHA

CSMA 协议

CS载波侦听 MA多路访问

  • 1-坚持CSMA:监听到空闲,立即发送数据
  • p-坚持CSMA:监听到空闲,以概率p发送数据
  • 非坚持CSMA:监听到空闲,立即发送数据,否则延迟一段随机事件再重新监听

CSMA/CD 协议

带冲突检测的载波侦听多路访问协议。

用于总线式以太网(有线)

先听后发,边听边发,冲突停发,随机重发。

争用期/冲突窗口/碰撞窗口:以太网端到端的往返时延2τ。只有经过这段争用期还没检测到冲突,才能肯定这次发送不会发生冲突。

帧长bit数据传输速率bit/s>=2传播时延(2τ)。传播时延=距离信号传播速度\frac{帧长bit}{数据传输速率bit/s} >= 2*传播时延(即2τ)。传播时延=\frac{距离}{信号传播速度}

因此,以太网规定最短帧长为64B

以太网工作模式有两种:

一是全双工工作模式。在同一时间内,网卡不可能接收到两个都要求发送数据的请求,所以不会有冲突,就不用使用CSMA/CD冲突检测。

二是半双工工作模式。因为发送和接收使用同一个信道,所以肯定要使用CSMA/CD冲突检测机制。

重传时机:截断二进制指数类型退避算法:

重传次数k最大值取10.

16次直接丢弃。

CSMA/CA 协议

主要用于无线局域网中。

在CSMA基础上增加了冲突避免。

CSMA/CA协议对正确接收到的数据帧进行确认。

轮询访问

主要用于令牌环局域网中。

令牌传递协议。

不会发生冲突。

六、局域网

以太网

一般称802.3局域网为以太网,以太网现在几乎成为了局域网的代名词。

以太网的MAC帧

image-20201002161023295

无线局域网

IEEE 802.11

令牌环网

IEEE 802.5

七、广域网

点对点通信

OSI层次:三层物理层、数据链路层、网络层。

使用的协议主要在网络层。

路由选择和分组转发。

因特网是最大的广域网。

PPP协议

点对点的协议。

PPP是一个面向字节的协议。

PPP不需要的功能:纠错、流量控制、序号、多点线路、半双工或单工。

HDLC协议

高级数据链路控制HDLC协议是ISO制定的面向比特的数据链路控制协议。

适用于链路的两种基本配置:

  • 非平衡配置
  • 平衡配置

HDLC帧分3类:信息帧(I帧)、监督帧(S帧)、无编号帧(U帧)。无奸细

采用零比特填充法,即5个连续的1后补0。

PPP和HDLC帧格式的区别

  • PPP面向字节的。HDLC面向比特的。
  • PPP帧比HDLC帧多了一个2字节的协议字段。
  • PPP不使用序号和确认机制,只保证无差错接受(通过硬件进行循环冗余码检验),而端到端差错检测由高层协议完成。HDLC协议的信息帧使用了编号和确认机制。
IMG_0229

八、数据链路层设备

网桥

网桥至少有两个端口,每个端口与一个网段相连。

可互联不同的物理层、不同MAC子层和不同速率的以太网。

网桥的分类:

  • 透明网桥。选择的不是最佳路由。采用了生成树算法。
  • 源选径网桥。选择的是最佳路径。

局域网交换机

局域网交换机实质上是多端口网桥,工作在数据链路层。局域网交换机的每个端口直接与主机或者集线器相连,并且一般都工作在全双工方式。

以太网交换机独占传输媒体的带宽。

交换机总容量计算方式:不说明默认为半双工。

  • 半双工:端口数 * 每个端口带宽
  • 全双工:端口数 * 每个端口带宽 * 2

交换机最大的优点是不仅每个端口结点所占用的带宽不会因为端口节点数量的增加而减少,而且整个交换机的总带宽会随着端口节点的增加而增加。

交换机的两种交换模式:

  • 直通式交换
  • 存储转发式交换

各层设备的广播域、冲突与总结

一般来说,一个网段就是一个冲突域,一个局域网就是一个广播域。

物理层设备:

  • 中继器。放大器和中继器都是起放大作用,只不过放大器放大的是模拟信号,中继器放大的是数字信号。

  • 集线器:多端口中继器。

  • 不能隔离冲突域,也不能隔离广播域。

数据链路层设备:

  • 网桥。
  • 交换机:多端口网桥。交换机的每一个端口都是一个冲突与,即交换机可以隔离冲突与。

网络层设备:

  • 路由器:把数据从一个网络发送到另一个网络。可以隔离冲突域。路由器的每个端口都是一个广播域,可以隔离广播域。

集线器和交换机分别工作在物理层和数据链路层,不能连接两个不同的网络,所以不管是集线器还是交换机遇到广播数据都要每个端口发送一遍(因为每个端口连接的网络仍属同一个网络)。

路由器可以连接不同的网络,而且路由器在默认情况下不转发广播报文的(因为每个端口连接的是不同的网络),路由器的每个端口都是一个广播域。