当前位置: 首页 > news >正文

计算机网络学习(三、数据链路层)

目录

一、数据链路层三个重要问题

1.封装成帧和透明传输

(1)基本概念

(2)接收方如何解析

(3)透明传输

①:面向字节的

②:面向比特的

2.差错检测

(1)奇偶校验

(2)CRC校验

3.可靠传输

(1)可靠传输基本概念

(2)可靠传输实现机制-停止-等待协议

①:协议内容

②:信道利用率

(3)可靠传输实现机制-回退N帧协议

①:基本概念

②:无差错传输情况

③:回退N帧的情况

④:累计确认的方式

⑤:发送窗口超过取值上限有问题

(4)可靠传输的选择重传协议

①:与其他协议对比

②:具体流程

③:窗口太大导致错误

二、点对点协议PPP

1.基本概念

2.帧格式

3.PPP透明传输

(1)面向字节的

(2)面向比特的

(3)差错检测

4.PPP的工作状态

三、共享式以太网

1.网络适配器

(1)基本概念

(2)MAC地址

2.CSMA_CD协议

(1)基本原理

(2)基本流程

3.共享式以太网争用期,最小帧长,最大帧长

(1)争用期

(2)最小帧长

(3)最大帧长

4.退避算法

5.使用集线器的共享式以太网

四、扩展以太网

1.在物理层扩展

2.在数据链路层扩展

3.透明网桥自学习过程

五、交换式以太网

1.基本概念

2.以太网交换机

3.以太网MAC帧格式

六、VLAN

1.概述

2.实现机制

(1).IEEE802.1Q帧这个帧由交换机处理。

(3).交换机接口类型


一、数据链路层三个重要问题

1.封装成帧和透明传输

(1)基本概念

封装成帧值得是在网络层的报文基础上增加个尾部和首部。不同的帧有不同的帧首部和尾部。

帧的数据载荷的长度有上限,比如以太网帧的长度上限是1500。

下面是以太网V2的MAC帧。

下面是PPP帧

(2)接收方如何解析

对于PPP帧,首部和尾部有标志,通过这个标志可以判断一帧的开始和结束。

对于以太网帧,可以通过帧间隔来判断一个帧的开始和结束

(3)透明传输

①:面向字节的

如果传输的数据里面有Flag,那么就比较难判断一个帧的长度。

解决办法是在每个帧里面的Flag价格ESC标志。接收方提取的时候,可以根据ESC和Flag判断一个帧的开始和结束。

②:面向比特的

帧的首部和尾部都是011111110,如果中间有出现011111110,那么连续的5个1中插如一个0。

2.差错检测

(1)奇偶校验

就是判断报文中有多少个1,对于奇校验,就是把数据载荷中的1表示成奇数个,不够就补充。之后在接收方,检查数据载荷的1的个数。如果是奇数个就成功。但是这种方法如果偶数个数据发生变化,就判断不出来。偶校验同理。

(2)CRC校验

双方约定一个多项式,根据这个多项式进行操作。下面是一个例子。

3.可靠传输

(1)可靠传输基本概念

报文在网络中进行传输的时候可能发生各种各样的错误,有以下四种

下面是分层网络结构中,可靠传输和不可靠传输的结构。

(2)可靠传输实现机制-停止-等待协议

①:协议内容

第一阶段是你发我收,收到了给你确认,如果误码可,给你法NAK,让你重发。但是没有办法解决报文丢失的情况。

为了解决上述问题,引入了超时计数器,如果超过一段时间没有收到回复,那么就重新发送

但是如果ACK丢失了,那么由于超时重传,就会重复传送。

解决办法是,给每个DATA加一个序列号,重复的序列号就不要了。

确认ACK也需要编号,用来指示是确认的那个发送报文。

②:信道利用率

(3)可靠传输实现机制-回退N帧协议

①:基本概念

为了提升信道利用率,引入了回退N帧协议。主要引入了发送窗口。

发送方需要维护一个发送窗口,窗口的大小,其中n是你自己指定的。接受方的窗口大小是1。

②:无差错传输情况

在没有差错的情况下,发送方一下把发送窗口数据全部发出去。之后接收方接收数据之后,发送确认,之后滑动窗口。之后发送方根据接收方发过来的确认滑动窗口。

③:回退N帧的情况

发送方收先发送5个数据。

0,1号数据正常接受,但是2误码了,3,4正常发送。

接收方只发送0,1的确认。对于3,4发送2号没有收到的信息。

之后发送方移动窗口,发送4,5编号的数据。

之后接受方还是由于2号的误码,不接受4,5,发送2号没有收到的信息。

之后发送方就收到了4次2号没有收到的信息。可以规定收到一定次数之后直接重传,不用等待超时重传。

超时重传,需要从2号开始重传,虽然后面的之前并没有错误。

④:累计确认的方式

比如发送0,1,2,3,4。 接受没必要每个都回复。可以直接回复2,4。或者直接回复4,说明已经正确接受5个数据了。

⑤:发送窗口超过取值上限有问题

比如开始发送8个数据,都接受到了。但是回复的时候,ACK7丢了,就会触发超时重传。

之后重新从0-7,接收方一看自己的窗口,可以接受。这样就有问题了,接收到重复的数据了。

(4)可靠传输的选择重传协议

他的核心思想是,回退N帧协议的错误了,后面的正确的也重发,现在我只想发错误的。

①:与其他协议对比

②:具体流程

开始的时候发送0,1,2,3。但是0号数据误码了,他会接受1,2,3。之后向发送方发送ACK1,ACK2,ACK3。之后发送方触发超时重传,只重传0。之后接受方接受到0,滑动窗口。发送发接受到ACK0,滑动窗口。

③:窗口太大导致错误

现在由于三位,最大只能是4,我让窗口大小是5.

发送方发送01,2,3,4,5.接收方都受到了,但是ACK0丢了。但是不影响接受方滑动窗口

发送方之后触发超时重传,发送0.接收方也可以正常接受0,因为滑动窗口了,进入下一段了。这样就导致错误。

二、点对点协议PPP

1.基本概念

两种主要应用,分别是拨号上网和专用链路。

对于拨号上网来说,和DHCP不同,这里没有DHCP服务器,需要因特网用户和ISP(接入服务器)协商出一个IP地址, 之后使用这个IP地址通讯。

他俩的区别就是一个是数据链路层,一个网络层。

一个是点到点的通讯,一个依赖网络结构。

具体过程和协议内容也不同。

2.帧格式

3.PPP透明传输

(1)面向字节的

为什么数据载荷的7E需要转换成7D和5E。

因为数据载荷中的7E可能被当作一个帧的开头和结束,所以转换成7D和5E

为什么7D还需要转化成7D和5D。因为7D本身是一个转义字符,他会将后面一个字符转义。比如解析的时候会把7D 5E翻译成7E,把7D 5D翻译成7D。

为什么<0x20的需要加上0x20,之后加上0x7D。因为<0x20有一些控制字符,空格回车什么的。所以加上一个值变成普通字符,之后前面有0x7D,在解析的时候可以还原回来。

0x7D本质是做一个异或操作。

(2)面向比特的

(3)差错检测

CRC

4.PPP的工作状态

简单来讲,初始处于静止状态。

之后插上网线,和ISP建立连接了,之后进行LCP协商,协商成功了进入鉴别状态,失败进入静止状态。

之后鉴别这个过程不是必须的,可能不需要鉴别直接进入网络状态。

网络状态就是分配IP地址,通过NCP协议,弄完之后就有了IP地址了,就可以连上互联网了。

三、共享式以太网

1.网络适配器

(1)基本概念

网络适配器就是网卡,本质就是一块板子,有CPU,有储存。它是连接电脑和互联网之间的媒介。串行接受网络数据,并行传输给计算机。

网卡肯定是要驱动的,没有驱动怎么控制网卡呢?驱动就是配置网卡所需要的协议,一些参数什么的。

(2)MAC地址

2.CSMA_CD协议

(1)基本原理

(2)基本流程

首先多个设备接入到总线上

当某个设备想要发消息的时候,检测到96比特时间总线空闲,开始发数据。

当其他设备如B要发送数据的时候,检测到总线处于忙碌,就不发数据。

但是可能存在C发送了数据,之后数据还没传到B,之后B也检测到空闲,也发送数据,这就造成了碰撞。碰撞其实很好检测,就是电平,正常电平应该是0或者3v3,如果是6v6,就碰撞了,我是这样理解的。所以为了检测碰撞,就需要边发送边检测碰撞,检测到碰撞之后就要停止发送,缓一段时间重新发送。

3.共享式以太网争用期,最小帧长,最大帧长

(1)争用期

碰撞只发生在一个设备检测到空闲发消息。之后发消息的过程中,另外一个设备还没有收到设备之后又检测到总线空闲了,也发送消息。

所以说,我们考虑,当从第一个设备发送消息多少时间之后,如果不发生碰撞,之后就不会碰撞了。

这个时间很容易,假定从第一个设备传递到最后一个设备的时间是t,那么最长在t处碰撞,之后再传回来,也就是2t。这个2t就是争用期。如果一个设备2t没有检测到碰撞,那么后面也不会碰撞。

这说明啥,对于共享式以太网,传输速度越快,总线应该越短。

(2)最小帧长

如果一个帧很短,比如已经发送完毕了但是还是没有传输到D。

如果此时C突然发送一个,之后就碰撞了。之后由于A已经发送完毕,不再进行碰撞检测,所以这个消息不会再发了,所以就有错误。

解决办法就是限制最小帧长。

(3)最大帧长

如果某个帧太长,导致其他设备没办法发送帧,所以限制最大帧长。

4.退避算法

5.使用集线器的共享式以太网

使用总线涉及大量接口,不太可靠。所以引入了集线器,本质也是总线结构,使用的协议也一样。

四、扩展以太网

1.在物理层扩展

集线器连接设备总线不能太长,否则信号衰减没法使用,所以使用光纤推展站点和集线器之间的而距离。

使用集线器连接集线器的方式将多个主机连接到一起,扩展设备的数量,但是这样会导致更大的碰撞域。

2.在数据链路层扩展

为了解决设备扩展的时候,碰撞域增大问题,引入了网桥。可以隔离碰撞域。

网桥有帧转发表,它通过帧转发表来丢弃或者转发帧。

如下图,如果A发送给D,网桥查表发现D在接口二,就转发给接口2就好了。

3.透明网桥自学习过程

五、交换式以太网

1.基本概念

2.以太网交换机

内部联通,可以同时进行多组设备的通讯而不相互影响。

交换机也和网桥一样,有转发表,自学习机制也一样

3.以太网MAC帧格式

校验依旧是CRC校验。

前同步码用于同步时间,帧定界符用于说下面就是帧的开始了。

六、VLAN

1.概述

如果局域网很大,那么很多协议比如DHCP等等都会广播,这样就会有巨大的广播域,浪费广播资源。

虽然路由器可以隔离广播域,但是价格昂贵。

所以使用VLAN技术,广播只会在VLAN里面广播。需要配置交换机

2.实现机制

(1).IEEE802.1Q帧这个帧由交换机处理。

(3).交换机接口类型

一般分为Access和Trunk两种。

在同一台交换机上,当A发出广播信号的时候,交换机接口对这个信号打标签,加上PVID,之后转发给其他接口。其他接口如果PVID=1,那么就接受,否则不接受。

对于两台交换机,交换机之间连接的接口是trunk,他这个是遇到广播就会转发,而不是检查PVID。

http://www.dtcms.com/a/393801.html

相关文章:

  • Refresh keys changed: [] 2023.0.3.3 问题排查
  • 高并发内存池(二):三层缓存的整体框架设计
  • Android音视频编解码全流程之Extractor
  • 基于 @antv/x6 实现流程图
  • markdown 绘制流程图
  • Spark专题-第二部分:Spark SQL 入门(5)-算子介绍-Join
  • 平替Jira,推荐一款国产开源免费的项目管理工具-Kanass
  • ssh不用版本管理器为多个服务器添加密钥
  • Windows Docker Desktop 实战:大模型存入 docker-desktop 实例 home 目录并与 Dify 联动运行指南
  • linux驱动开发笔记
  • 阿里云与腾讯云产品操作与体验:云平台运维实战技术解析
  • 深入了解linux网络—— 网络基础
  • leetcode3 哈希
  • Spring AI 整合OpenAI 聊天、做图
  • 阿里Motionshop人物角色替换成3D虚拟形象
  • C语言自学--字符函数和字符串函数
  • spring-boot--邮箱验证码发送--spring-boot-starter-mail
  • 3ds Max 2026安装教程(附安装包)3ds Max 2026下载详细安装图文教程
  • Genie 2:Google DeepMind 推出的基础世界模型,单张图生成 1分钟可玩 3D 世界
  • LeetCode 104. 二叉树的最大深度
  • 欧拉角描述相机的运动
  • Unity2D-Spriteshape
  • 打工人日报#20250921
  • Coolmuster Android Assistant:Windows系统下的Android设备管理专家
  • Android 的多进程机制 (Android Multi-Process Model)
  • 2025研究生数学建模通用神经网络处理器下的核内调度问题草案
  • Spring Boot 4 新特性详解:5大核心更新助力企业级开发
  • 计算机网络经典问题透视:网络利用率和网络时延之间,究竟存在着怎样一种“爱恨交织”的关系?我们梦寐以求的100%网络利用率,在现实世界中真的能够实现吗
  • requests 和 lxml 库的xpath实现
  • 前端梳理体系从常问问题去完善-工程篇(webpack,vite)