计算机网络(三) | 数据链路层 PPP协议、广播CSMA/CD协议、集线器、交换器、扩展and高速以太网

文章目录

  • 1 数据链路基本概念和问题
    • 1.1 基本概念
    • 1.2 基本问题
      • (1)封装成帧
      • (2)透明传输
      • (3)差错控制
  • 2.数据链路层协议
    • 2.1 点对点 PPP协议
      • 2.1.1 需要实现的
      • 2.1.2 PPP组成
      • 2.1.3 帧格式
      • 2.1.4 工作流程
    • 2.2 广播 CSMA/CD协议
      • 2.2.1 协议要点
    • 2.3 集线器,交换器
      • 集线器
      • MAC地址
      • MAC帧格式
  • 3 扩展以太网
    • 3.1 物理层扩展方式
    • 3.2 数据链路层扩展方式
      • 3.2.1 交换机的自学功能
    • 3.3 虚拟局域网
  • 4 高速以太网
    • 4.1 100BASE-T
    • 4.2 吉比特以太网

内容笔记来源于谢希任老师《计算机网络》

重点

理解MAC地址

理解交换机

理解VLAN

理解高速以太网

数据链路是计算机网络的底层

1 数据链路基本概念和问题

1.1 基本概念

链路 或者叫物理链路 是一段点到点的物理线段(有线或者无线)中间没有任何其他交换结点

一条链路只是一条通路的组成部分

数据链路 或者叫数据链路 在链路的基础上加上控制协议和实现协议的软件和硬件在这里插入图片描述

​ 现在最常用的是使用适配器(网卡)来实现这些协议的硬件和软件,一般的适配器都包括了数据链路层和物理层的功能

​ 数据链路使用的信道主要有以下两种类型

  1. 点对点信道,使用PPP协议
  2. 广播信道,使用CSMA/CD协议

1.2 基本问题

对于数据链路层而言,以下三个问题很重要

(1)封装成帧

我们知道,互联网上传输数据都以分组(即IP数据报)为传输单位进行传输,所以到了底层数据链路层也得保证不混淆不同的IP报

所以封装成帧就是在网络层的IP数据报上加上首部和尾部,构成帧

那么首部和尾部有什么作用呢?

最重要的

  • 我们首部和尾部的重要作用就是进行帧定界,通俗来讲就是 区分一个帧和另一个帧(核心目的就是为了不让IP数据报混淆)
  • 首部和尾部包含一些控制信息

所以综合来看,一个帧包括的内容有,我们要传输的数据,和首部尾部

那么为了提高传输效率,要尽可能使得传输数据部分长度大于首部尾部的长度,但每一种数据链路协议都规定了数据部分的长度上限——称为最大传输单元MTU

数据链路层传送的是 帧是传输数据的单位

解决方式 用控制字符进行

(2)透明传输

传播的数据部分出现控制字段,如开始和结束

如果不做处理的话,会导致接收方误以为提前结束,这个数据部分的EOS应该不被接收方看见

即应该被认为是透明的,所以叫他为透明传输

实现的方式是怎样的呢?

解决方式 通过字节填充解决.数据中出现控制字符的时候,前面加入一个转义字符“ESC” 十六进制编码1B

可能问题

就是IP层交付的数据和DL数据链路层实际传输的数据不一样

(3)差错控制

在传输过程中不可能一点都不出错,如0变成1,1变成0,这就叫做比特差错。对于差错我们的解决方式是

目前采用较多的是循环冗余检测方法CRC

发送端

原始数据M,进行n位冗余码,商定一个除数P(位数n+1),

1 原始数据M后面加n个零做被除数D

2 D除以P得到的余数(该余数又叫帧检验序列FCS)加在M后面

接收端

得到的信息除以除数P,余数为0,接受,否则丢弃

注意我们上面讲到的是比特差错,CRC仅能排查比特差错

实际上除了比特差错,还有其他差错,就是帧丢失,帧重复和帧失序

其中我们要注意的是仅仅排除比特差错是不够的,实现了无比特差错的传输叫做无差错传输

但是只有排除了所有错误,如帧丢失,帧重复和帧失序之后才能叫做可靠传输,即发送什么就收到什么

这些排除错误的方法(帧编号,确认和重传机制)是往往是更高层来实现的

2.数据链路层协议

2.1 点对点 PPP协议

使用最多的是点对点协议PPP

我们前面反复提到互联网用户如果想要连入互联网,必须连接到某个ISP,其中我们的PPP协议广泛应用于本地计算机和ISP的数据链路层的通信

2.1.1 需要实现的

PPP协议需要实现的一些功能

那么除了我们刚才讲到的 封装成帧,透明传输,差错检测这些基本问题,还实现了简单高效,支持多种网络层协议,支持多种类型链路,检测连接状态,数据压缩算法的协商

2.1.2 PPP组成

一个将IP数据报封装到串行链路的方法,是同步还是异步

一个链路控制协议LCP(建立,配置,和测试数据链路的连接

一套网络控制协议NCP(支持多种网络层协议)

2.1.3 帧格式

开始结束字段 F=0x7E 1字节

地址字段 A=0xFF 因为是点对点,所以设置就维持不变 1字节

控制字段 C=0x03 1字节

开始结束和地址字段,控制字段实际上没有携带什么信息。他是最初设计的时候考虑之后可能会用到,但目前为止也没有用到

协议字段 不同值代表不同协议 2字节

如0x0021时,是IP数据报,若为0xC021 ,则为LCP数据报

信息字段 要传输的IP数据报或,链路控制数据,网络控制数据等

检验字段 FCS

a

对于透明传输问题

异步传输方法是——字节填充法

​ 当信息字段中出现和标志字段一样的比特(0x7E)组合时,在前面添加转义字符0x7D,同时把0x7E变为0x5E传输。整体变为(0x7D,0x5E)传输

​ 当信息字段出现转义符(0x7D)的时候,在前面再添加一个转义字符0x7D,同时把0x7D变为0x5D传输。整体变为(0x7D,0x5D)传输

​ 当信息中出现ASCLL控制码时候,也同理

同步传输方法是——零比特填充法

发送端,先扫描整个信息字段(往往硬件实现)只要发现有5个连续的1,则立即填入一个0,因此经过这种比特的填充后,信息字段就不会出现6个1 的情况

接收端,首先找到标志字段F确定边界,然后用硬件对内部比特流扫描去掉0

2.1.4 工作流程

建立工作状态

  1. 用户拨号接入ISP后,建立了一条从用户个人电脑到ISP的物理连接
  2. 用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了一些将要选择的PPP参数
  3. 进行网络层配置,NCP给新接入的用户分配一个临时IP,正式接入互联网

通信完毕

  1. NCP释放网络层连接,收回去分配出去的IP
  2. LCP释放数据链路层连接
  3. 释放物理层连接

2.2 广播 CSMA/CD协议

接下来重点讨论局域网部分的一对多通信,其中以太网可以看成是一种实现局域网通信的技术标准(目前逐渐大家把它当作局域网的同义词。以太网的拓扑结构有环形的,星形的等等。局域网主要用双绞线,速率更高

开始之前,先探讨一个问题——我们本地的计算机是怎么连到局域网的?

其中一个关键部件是适配器(网卡)

适配器是什么

适配器

网络接口板子又称作通信适配器或者网卡

他的核心作用如下

适配器的功能

​ 进行串行并行转换

​ 对数据进行缓存

​ 在计算机的操作系统安装设备驱动程序

​ 实现以太网协议

计算机通过适配器和局域网进行通信

好的,我们已经了解了连接到局域网的关键设备,适配器

接下来一个重要问题就是,多用户如何共享信道资源,一般两种方式

  1. 静态划分信道——频分复用,时分复用,码分复用等代价价高, 不适合于这个局域网

  2. 动态媒体接入控制——又称为多点接入,信道并非在用户通信时固定分配给用户,这里又分为两类

  • 随机接入:即所有用户可以随机地发送信息,如果恰巧有两个用户在同一时刻发送信息,那么在共享媒体上就要发生碰撞,使得用户的发送都失败。因此,必须有解决碰撞的网络协议

  • 受控接入:用户不能随机的发送信息,而必须服从一定的控制,这类的典型代表有分散控制令牌环局域网和集中控制的多点线路探询,或轮询

由于局域网信道质量比较高(距离短),所以设计的时候要尽可能的简单

为此,局域网采取了如下的措施

  1. 以太网提供的是无连接(不必先建立连接就可以直接发送数据)的不可靠(对发送的数据帧不进行编号,不要求确认)服务,以太网采用CSMA/CD协议,意味着载波监听多点接入\碰撞检测

  2. 以太网的数据采用曼彻斯特编码

2.2.1 协议要点

半双工通信

多点接入 表示计算机以多点的方式连接在一根总线上

载波监听 每一个站点在发送数据前先检测一下总线上有没有其他计算机在发送数据

载波监听的问题

监听到空闲的其实并不一定是空闲的哦!所以需要碰撞检测

以太网端到端往返时延的两倍2t称为争用期或碰撞窗口,如果这段时间还没有检测到碰撞,这次发送就不会碰撞,当发送碰撞后,还会发送强化碰撞,即人为发送干扰信息,保证所有用户都知道已经发生了碰撞

碰撞检测 检测到碰撞后立即停止发送,继续发送人为干扰信号(以便让所有用户知道发生了碰撞)等待一段随机时间后发送。

那么这个随机时间如何计算呢? 随机时间计算

1 基本退避时间为争用期2t (以太网取51.2us为争用期)

2 从整数集合 [ 0 , 1 , 2 , . . . , ( 2 k − 1 ) ] [0,1,2,...,(2^k-1)] [0,1,2,...,(2k1)]中随机取出一个数记为r,k=min[重传次数,10]

3 重传时延就是r倍的基本退避时间

4 如果重传16次依然不能成功时丢弃帧,向高层报告

由于以太网取51.2us为争用期,对于10Mbit/s的网络而言,这期间可以发送512比特(64字节),如果发生冲突一定是在64节内,这会导致检测到冲突停止发送从而数据小于64节所以64字节为最短有效帧长

还有帧间最小间隔即96帧,方便刚刚收到数据帧的站接收缓存清理,做好接受下一帧的准备

总结来看

该协议的要点:

1 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部组成以太网帧。放入适配器的缓存中,发送之前检测信道

2 检测信道:若检测信道忙,则不停检测,一直等待信道转为空闲,且超过96帧后,发送过程中继续监测信道,如果超过争用期后还是未检测到碰撞,就认为发送成功,否则立刻停止发送,然后利用指数退避算法再次发送

接下来我们探讨一下局域网的信道利用率

参数a

T 0 = L / C T_0=L/C T0=L/C L是帧长 C是数据发送速率,T0是帧发送时间

a = t / T 0 a=t/T_0 a=t/T0 参数a等于以太网单端时延与帧的发送时间T_0的比

a接近0的时候,表示一发生碰撞就会被检测出来,信道利用率很高

a越大,争用期所占比例增大,发生一次碰撞就浪费许多资源

当数据率一定时候,以太网的连线长度受到限制,否则t数值就会太大,以太网帧长不能太短,否则会导致T0值太小,a太大

理想信道利用率

image-20231001144501740

上面式子告诉我们 a a a要远小于,才能提高这个利用率

2.3 集线器,交换器

使用接线器比起刚刚的无源的总线结构更靠谱一些

集线器

星形拓扑结构,中心叫集线器,目前使用双绞线或光纤

一个集线器有许多个端口

集线器工作在物理层,仅仅简单地做转发,不进行碰撞检测

前面我们讲到适配器,那么局域网的各个电脑如何区分要发送的目的地呢

就是通过适配器的MAC地址,他是固化在适配的ROM中,全球唯一

MAC地址

MAC地址又叫做硬件地址,物理地址

通常表示为48位, 6字节

表示的时候用12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D

地址段前三个字节由IEEE的注册管理机构RA向厂家分配,后三个字节由厂家自行分配

在这里插入图片描述

IEEE规定地址字段的第一字节的最低位为I/G位

I/G=0时候,地址字段表示一个单站地址

I/G=1时候,地址字段表示一个组地址,用来广播

当48位都为1时候,为广播地址,只能作为目的地址

IEEE规定地址字段的第一字节的最低第二位为G/L位

G/L位=0时候,是全球管理

IG/L位=1时候,是本地管理

当48位都为1时候,为广播地址,只能作为目的地址

MAC帧格式

常用以太网V2格式

在这里插入图片描述

源地址目标地址 上面讲到的MAC地址

类型 上一层使用的什么协议

数据字段

​ 最小长度=64-18字节的头尾=46

​ 最长1500

检测字段FCS

前同步码 8个字节,前7个实现MAC帧同步,第8个帧开始定界符

帧间最小间隔 9.6us

总结:

互联网=通过路由协议联通的N个局域网。

局域网=以太网+TCP/IP协议。

以太网=基于广播(MAC寻址)和碰撞检测机制 CSMA/CD 的网络。

( 以太网是一种计算机局域网技术

3 扩展以太网

我们知道,以太网的两台主机距离不能太远,但是往往比如校园内,一些主机的距离可能蛮远的

要实现这样距离较远的通信,我们就需要扩展以太网

所以我们要搞清楚拓展的核心目的

那么拓展主要有两种方式,物理层上扩展,和数据链路层扩展

3.1 物理层扩展方式

  1. 很早之前拓展是通过接转发器

  2. 而现在拓展的简单方法就是使用光纤,用到光纤调制解调器,能够到达几公里的范围

  3. 还有一种方式就是多个集线器,连接成覆盖更大范围的多级星型结构

    比如一个学校有三个学院,每个学院配备一个集线器,最后再通过一个主干集线器连接在一起

    多级集线器的优点是,可以跨院通信,同时扩大了范围,缺点是碰撞域变大了(三个独立的碰撞域合成了一个),同时没有缓存功能,不同学院必须使用相同的以太网技术

3.2 数据链路层扩展方式

扩展方式主要通过交换机,交换机工作在数据链路层

特点

  1. 交换机实质是一个多端口的网桥,通常有十几个或者更多个端口,全双工工作方式
  2. 具有存储器,能够进行帧缓存
  3. 即插即用,避免人为配置,通过内部帧交换表实现,要了解交换机更新交换表的自学算法
  4. 用户独占信道,增大了交换机总容量
  5. 有多种速率端口

3.2.1 交换机的自学功能

交换表组成: MAC地址,端口,写入时间

如果交换表内没有自己要发送的对方的地址,则进行广播通知每一个主机,其他主机收到后看看是否是要发送给自己,不是的话则过滤掉,是的话则接收,同时将对应的信息加入交换表。如果有的话则直接一对一发送

3.3 虚拟局域网

当前面的扩展方式进行很多的扩展的时候,就会遇到一些问题

首先一整个以太网是一个广播域,那么以太网上经常就会出现大量广播帧,浪费资源

其次,不利于信息的安全

所以提出虚拟局域网,核心思想是把一个较大的局域网分割为很多较小的局域网,每一个局域网是一个广播域

实现方式是在MAC帧的基础上嵌入了VLAN标签,一个虚拟局域网可以跨越多个交换机

4 高速以太网

4.1 100BASE-T

是在双绞线上传输100Mbit/s的系带信号的星形拓扑结构,比之前的100Mbit/s快了很多

4.2 吉比特以太网

即传输速率是1Gbit/s

之前我们讲到大多通过电话线等方式接入互联网

但实际现在更多的是通过以太网进行宽带接入,比如我们现在只要登录校园网就可以访问外网了

拓展

了解一下网速单位

Mbps是Mb/s 而不是MB/S”。

运营商说的1M宽带的M是指Mb/s,也就是Mbps,运营商为什么喜欢说这个呢?数据传输大多是以“位”(bit,又名“比特”)为单位的,数据的传输以及运营商在流量收费的时候都是按照比特来计算的

所以比如运营商说1M带宽,那么也就意味着是1Mb/s,也就是0.125MB/s

在这里插入图片描述

我自己实际测试了网速

如图是300M-500M带宽

那么也就意味着是37.5MB/s到62.5MB/s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/214051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网穿透的应用-如何结合Cpolar内网穿透工具实现在IDEA中远程访问家里或者公司的数据库

文章目录 1. 本地连接测试2. Windows安装Cpolar3. 配置Mysql公网地址4. IDEA远程连接Mysql小结 5. 固定连接公网地址6. 固定地址连接测试 IDEA作为Java开发最主力的工具,在开发过程中需要经常用到数据库,如Mysql数据库,但是在IDEA中只能连接本…

配置BFD多跳检测示例

BFD简介 定义 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。 目的 为了减小设备故障对业务的影响,提高网络的可靠性,网…

【链表Linked List】力扣-117 填充每个节点的下一个右侧节点指针II

目录 问题描述 解题过程 官方题解 问题描述 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 N…

C++中字符串详解

在C语言中只能通过字符串数组来模拟字符串,没有字符串类型。在C引入了string类来表示字符串类型。从而用它定义字符串。 在C语言中: char str[] "abc"; char str[] {a,b,c,\0}; char* str "abc"; //这三种形式是C语言…

因为高考考砸了,我学了计算机

2015年,是我高中的最后一年。 2023年,我已在计算机领域工作十多个年头。 我出生在东部省份的一个不沿海小县城,在那里度过了我高考前的17年。起点平平,没有任何特长傍身,也可以说是毫无亮点;成绩中等&#…

中文语音标注工具FunASR(语音识别)

全称 A Fundamental End-to-End Speech Recognition Toolkit(一个语音识别工具) 可能大家用过whisper(openAi),它【标注英语的确很完美】,【但中文会出现标注错误】或搞了个没说的词替换上去,所…

APP备案,最新获取安卓签名文件中MD5等信息方法

1.通过签名文件获取SHA1和SHA256 直接通过cmd执行命令 keytool -list -v -keystore xxxxx/xxx/xx/xxx.keystore输入后回车会提示输入密码库口令,直接输入Keystore密码(输入过程中终端上不会显示,输完回车就行) 2.获取md5 由于…

redis集群(cluster)笔记

1. 定义: 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序…

IDEA启动失败报错解决思路

IDEA启动失败报错解决思路 背景:在IDEA里安装插件失败,重启后直接进不去了,然后分析问题解决问题的过程记录下来。方便下次遇到快速解决。也是一种解决问题的思路,分享出去。 启动报错信息 Internal error. Please refer to https…

ke14--10章-1数据库JDBC介绍

注册数据库(两种方式),获取连接,通过Connection对象获取Statement对象,使用Statement执行SQL语句。操作ResultSet结果集 ,回收数据库资源. 需要语句: 1Class.forName("DriverName");2Connection conn DriverManager.getConnection(String url, String user, String…

使用人工智能优化常见业务流程

在现代商业环境中,人工智能(AI)正在改变企业的运营方式。将人工智能集成到业务流程中可以提高效率和准确性,从而节省大量时间和成本。 这使员工能够专注于更具战略性的任务。人工智能在商业中的应用范围从自动化日常任务到提供高级分析,以做…

【mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar安装】linux安装mysql5.7

之前安装的时候遇到了很多问题,浪费了一些时间。整理出这份教程,照着做基本一遍过。 这是安装包: 链接:https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包,上传到linux。我这里就放到downloads目录下面…

邮政快递单号查询入口,删除不需要的单号

批量查询邮政快递单号的物流信息,并删除不需要的单号。 所需工具: 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的伙伴记得先注册,然后登录…

SimpleSQL

游戏和应用中的SQL集成 simpleSQL可将数据库存储集成到您的游戏或项目中。创建水平地图链接,存储球员的统计资料,保持库存规格,以及更多! 请注意,simpleSQL是本地数据库解决方案,不能连接到服务器数据库 将SQLite数据库附加到场景中的管理器 无需移动移动设备上的文件! 使…

LeetCode力扣每日一题(Java):20、有效的括号

一、题目 二、解题思路 1、我的思路 我看到题目之后&#xff0c;想着这可能是力扣里唯一一道我能秒杀的题目了 于是一波操作猛如虎写出了如下代码 public boolean isValid(String s) {char[] c s.toCharArray();for(int i0;i<c.length;i){switch (c[i]){case (:if(c[i]…

玩法题材创新的跑酷游戏,广告变现不止带来收益 | TopOn变现干货

跑酷游戏是一类永不落伍的游戏。从远古的红白机到现代的PC、手机&#xff0c;经典作品层出不穷&#xff0c;而提起手机端的跑酷游戏&#xff0c;相信大部分玩家脑海里的第一印象便是《神庙逃亡》和《地铁跑酷》这两款经典游戏&#xff0c;在上蹿下跳、左右挪移间躲避障碍&#…

2023年12月7日:QT实现登陆界面

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//窗口设置this->resize(600,500);//重新设置窗口大小this->setWindowTitle("QQ-盗版");//设置窗口名为QQ-盗版this->setWindowIcon(QIcon("D:\\Qt\\funny\\pi…

VOS3000 在安装AXB时需要几个步骤

安装 VOS3000 AXB 模板需要按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保你已经在服务器上安装了 CentOS 或者其他 Linux 操作系统&#xff0c;并且已经完成了基本的系统设置和网络配置。 下载 VOS3000 软件包&#xff0c;并解压缩到服务器上的指定目录中。 进入…

[虚拟机]使用VM打开虚拟机电脑重启解决方案。

问题&#xff1a;打开虚拟机点击启动后&#xff0c;电脑会自动重启。&#xff08;WINDOWS10 20版本&#xff09; 解决步骤&#xff1a; 1、对Windows功能进行操作。 上图三个启用。 上图一个取消。 再次打开后&#xff0c;不报警&#xff0c;显示下图问题&#xff1a; 继续解…

直流电和交流电

直流电&#xff08;Direct Current&#xff0c;简称DC&#xff09;和交流电&#xff08;Alternating Current&#xff0c;简称AC&#xff09;是电流的两种基本形式。 1. 直流电 直流电是指电流方向始终保持不变的电流。在直流电中&#xff0c;电子只能沿着一个方向移动。直流电…