计算机网络知识梳理---数据链路层

吐槽

这周又是没出门的一周,在家天天读读英语,看看书,健身也是很享受的,可能自己肥宅太久了吧,真的懒得出门尴尬。体重也按照计划慢慢瘦下来了哈哈,这周计算机网络就看了数据链路层的知识。

思维导图

计算机网络知识梳理---数据链路层_第1张图片

1基本概念

  • 链路 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
  • 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

数据链路层传送的是帧
计算机网络知识梳理---数据链路层_第2张图片
简单的模型如下图
计算机网络知识梳理---数据链路层_第3张图片

2 数据链路层的三个基本问题

上面看到数据链路层传输的是帧,数据是咋变成帧的,我们如何保证传输的正确性,数据可靠性呢,所以我们要解决以下问题

2.1 封装成帧

我们把数据切分成帧,帧与帧就好比机关枪打出的子弹,每一个子弹都要是独立的那种,所以我们在切分数据的时候,要给数据进行包装,数据头和尾都要进行处理。

我们在数据的头和尾加入一个帧首部和帧尾部进行处理
计算机网络知识梳理---数据链路层_第4张图片

2.2 透明传输

在封装成帧的时候,我们用了帧首部和帧尾部进行处理数据,但是帧首部和帧尾部也是01数据,万一我们数据内部跟这两个数据重合了怎么办,所以我们要处理这种事情,把数据内部跟帧首部和帧尾部重合的数据段进行特殊处理一下

如果不处理会造成一下的情况

计算机网络知识梳理---数据链路层_第5张图片

处理的方法也很简单就是 字符填充

计算机网络知识梳理---数据链路层_第6张图片

  • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)
  • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
  • 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个

2.3 差错检测

在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
具体的过程如下:

  • 在发送端,先把数据划分为组。假定每组 k 个比特
  • 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送
  • 用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0
  • 得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位
  • 接收端对收到的每一帧进行 CRC 检验
  • 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)
  • 若余数 R  0,则判定这个帧有差错,就丢弃

计算机网络知识梳理---数据链路层_第7张图片

3 数据链路层两种类型

  • 点到点类型 这种信道使用一对一的点对点通信方式。

  • 广播信道类型 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发

3.1 点到点 ppp协议

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

计算机网络知识梳理---数据链路层_第8张图片
ppp协议的特点

  • 简单
  • 封装成帧
  • 透明性
  • 多种网络层协议
  • 多种类型链路
  • 差错检测
  • 检测连接状态
  • 最大传送单元
3.1.2 ppp协议的组成

PPP 协议有三个组成部分

  • 一个将 IP 数据报封装到串行链路的方法
  • 链路控制协议 LCP
  • 网络控制协议 NCP

计算机网络知识梳理---数据链路层_第9张图片

3.1.3 ppp协议的透明传输问题
  • 当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)
  • 当 PPP 用在异步传输时,就使用一种特殊的字符填充法

字符填充的方式

  • 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)
  • 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)
  • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变

比特填充的方式

  • 发送端,只要发现有 5 个连续 1,则立即填入一个 0
  • 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除

3.2 广播信道类型 csma/cd协议

最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。

计算机网络知识梳理---数据链路层_第10张图片

  • 总线上的每一个工作的计算机都能检测到 B 发送的数据信号
  • 由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧
  • 其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来
  • 具有广播特性的总线上实现了一对一的通信

csma/cd的意思就是

  • 多点接入表示许多计算机以多点接入的方式连接在一根总线上
  • 载波监听是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
3.2.2 碰撞检测

碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小

当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加

当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”

当遇到碰撞的时候

  • 发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来
  • 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送

为了避免这种情况,所以我们要解决数据丢失的问题

3.2.3 争用期

我们看看碰撞的模拟图
计算机网络知识梳理---数据链路层_第11张图片

当我们发现如果么有碰撞传输过去的时间段就是0到2倍的传输时间

  • 最先发送数据帧的站,在发送数据帧后至多经过时间 (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
  • 以太网的端到端往返时延两倍的端到端往返时延称为争用期,或碰撞窗口
  • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞

二进制指数类型退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据

  • 确定基本退避时间,一般是取为争用期 2倍的传播时延
  • 定义重传次数 k ,k 小于等于0, k = Min[重传次数, 10]
  • 从整数集合[0,1,…, (2k 1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间
  • 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
3.2.4 最短有效帧的长度
  • 以太网取 51.2 s 为争用期的长度
  • 对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节
  • 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突

所以我们可以根据这个推断出最短有效帧的长度
以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧

4 以太网

传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。10BASE-T 双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。

以太网的信道利用率

一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间  使得信道上无信号在传播)时为止,是发送一帧所需的平均时间
计算机网络知识梳理---数据链路层_第12张图片

4.1以太网的mac层

  • 在局域网中,硬件地址又称为物理地址,或 MAC 地址
  • 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符

48 位的 MAC 地址

  • EEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。
  • 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址
  • 一个地址块可以生成224个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是EUI-48
  • “MAC地址”实际上就是适配器地址或适配器标识符EUI-48

MAC 帧的格式

计算机网络知识梳理---数据链路层_第13张图片

帧间最小间隔

  • 帧间最小间隔为 9.6 s,相当于 96 bit 的发送时间
  • 一个站在检测到总线开始空闲后,还要等待 9.6 s 才能再次发送数据
  • 这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

5 扩展局域网

5.1 在物理层扩展局域网 集线器

  • 主机使用光纤和一对光纤调制解调器连接到集线器
  • 用多个集线器可连成更大的局域网
  • 用集线器组成更大的局域网 都在一个碰撞域中

集线器的优点

  • 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信
  • 扩大了局域网覆盖的地理范围

缺点

  • 碰撞域增大了,但总的吞吐量并未提高
  • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来

5.2 在数据链路层扩展局域网 网桥

  • 在数据链路层扩展局域网是使用网桥
  • 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发
  • 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口

计算机网络知识梳理---数据链路层_第14张图片

网桥的优点

  • 过滤通信量
  • 扩大了物理范围
  • 提高了可靠性
  • 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网

网桥的缺点

  • 存储转发增加了时延
  • 在MAC 子层并没有流量控制功能
  • 具有不同 MAC 子层的网段桥接在一起时时延更大
  • 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴
5.2.1 透明网桥
  • 目前使用得最多的网桥是透明网桥
  • 透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的

网桥应当按照以下自学习算法 处理收到的帧和建立转发表

  • 若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A
  • 网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目
  • 在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面
  • 在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口

计算机网络知识梳理---数据链路层_第15张图片

网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如有,则把原有的项目进行更新

透明网桥使用了生成树算法
这是为了避免产生转发的帧在网络中不断地兜圈子
计算机网络知识梳理---数据链路层_第16张图片

你可能感兴趣的:(计算机网络知识梳理)