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

news2024/11/17 17:44:58

文章目录

  • 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.coloradmin.cn/o/1303203.html

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

相关文章

线上扭蛋机小程序搭建,扭蛋与科技的完美结合

扭蛋机作为当下比较热门的一种盲盒玩法,在年轻人群体中非常受欢迎。随着经济的增长和人们生活水平的提高,人们对娱乐消费需求也在增加,扭蛋机的受众群体也在扩大。 目前线上扭蛋机小程序也获得了大众的青睐,扭蛋机小程序就是把线…

Appium 2.X(移动端自动化保姆级教程)

文章目录 Appium 2.X 安装使用1. Appium (Server)安装2. Appium Inspector (Client)安装3. SDK Manger (ADB)安装4. adb操作 Appium 2.X 安装使用 1. Appium (Server)安装 Node&am…

AI生成视频专题报告:Runway基础模型快速迭代,视频生成领域的先行者

今天分享的AI系列深度研究报告:《AI生成视频专题报告:Runway基础模型快速迭代,视频生成领域的先行者》。 (报告出品方:中泰证券) 报告共计:14页 Runway Reaserch:视频软件编辑工具提供者&…

【EI会议征稿】2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)

2024年遥感、测绘与图像处理国际学术会议(RSMIP2024) 2024 International Conference on Remote Sensing, Mapping and Image Processing 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)将于2024年1月19日-21日在中国厦门举行。会议主要围绕遥感、测绘与图像处理等研究领…

深度学习 Day15——P4猴痘病识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU(如果设备上支持GPU就使用GPU,否则使用C…

树莓派,opencv,Picamera2利用舵机云台追踪特定颜色对象

一、需要准备的硬件 Raspiberry 4b两个SG90 180度舵机(注意舵机的角度,最好是180度且带限位的,切勿选360度舵机)二自由度舵机云台(如下图)Raspiberry CSI 摄像头 组装后的效果: 二、项目目标…

视频美颜SDK技术的演变:从基础滤镜到智能特效

视频美颜SDK通过提供一系列的算法和工具,让开发者可以方便地集成美颜功能到他们的应用中。 一、背景:美颜技术的崛起 随着高清摄像设备的普及,用户对于自己在视频中的外观要求也变得越来越高。美颜技术应运而生,开始从照片领域渗…

freeRTOS使用

创建第一个FreeRTOS程序 1、官网源码下载 (1)进入FreeRTOS官网FreeRTOS professional services for application and RTOS development and consulting. FreeRTOS is an Open Source Code RTOS (2)点击下载FreeRTOS 2、处理目录 &…

千梦网创:有些事做的不如一泡尿顺畅

狗急了会跳墙,尿急了到路旁。 如果你有过在路边停车尿尿的经历,你一定体会过极度渴望是一种什么感觉。 你对那一刻的释放有着不可遏制无法压抑的情怀,所以不论时间地点人物情节,你都会风雨无阻的立即停在路边去解决你的“燃眉之…

数据结构与算法—排序算法(一)时间复杂度和空间复杂度介绍

排序算法 文章目录 排序算法1.排序算法的介绍1.1 排序的分类 2.算法的时间复杂度2.1 度量一个程序(算法)执行时间的两种方法2.2 时间频度2.2.1 忽略常数项2.2.2 忽略低次项2.2.3 忽略系数 2.3 时间复杂度2.3.1 常见的时间复杂度2.3.1.1 常数阶 O ( 1 ) O(1) O(1)2.3.1.2 对数阶…

8.STP生成树协议

8.STP生成树协议 资源被大量占用,网络卡顿,除非某条链路断开,不然会一直转发下去,不停的占用资源 同一个MAC地址,先从3口发来,又从2口发来,MAC地址表就会将旧的删掉,认为这个MAC地址属于2口所接的设备 有环路的时候,会禁用一个端口,虽然插着,但是处于阻塞状态 当另一条线路断开…

LAMP与LNMP架构

一、概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或…

viple与物理机器人(一):线控模拟

为了检测viple程序与物理机器人是否能顺利连接上 如果能顺利连接上,那么,可以通过内建事件从而控制物理机器人的前进、后退、左转、右转以及暂停。 如果不能连接上,首先,程序无法控制物理机器人,其次,当vip…

JavaEE之多线程编程:1. 基础篇

文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别(重点!)四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序: 如:我们知道JDBC的驱动程…

Python 日期时间模块详解(datetime)

文章目录 1 概述1.1 datetime 类图1.2 类描述 2 常用方法2.1 获取当前日期时间&#xff1a;now()、today()、time()2.2 日期时间格式化&#xff1a;strftime()2.3 日期时间大小比较&#xff1a;>、、<2.4 日期时间间隔&#xff1a;- 3 扩展3.1 Python 中日期时间格式化符…

GEE:构建和调用自己的 js 函数库

作者&#xff1a;CSDN _养乐多_ 本文记录了在Google Earth Engine&#xff08;GEE&#xff09;上构建自己的 js 函数库的步骤。构建自己的函数库以方便代码调用和扩展。 文章目录 一、创建lib文件二、调用lib库三、附加3.1 定义函数3.2 js 库中函数互相调用 一、创建lib文件 …

05_W5500_UDP通信

上两节我们分别完成了的客户端和服务端的测试&#xff0c;这节我们要实现W5500UDP通信。 目录 1.UDP通信介绍&#xff1a; 2.UDP的通信流程: 3.代码分析: 4.测试 1.UDP通信介绍&#xff1a; UDP提供不可靠服务&#xff0c;具有TCP所没有的优势&#xff1a; UDP无连接&…

天津大学博士论文查重率要求【保姆教程】

大家好&#xff0c;今天来聊聊天津大学博士论文查重率要求&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 天津大学博士论文查重率要求 引言 作为国内知名的高等学府之一&#xff0c;天津大学一直秉持着…

kafka学习笔记--broker工作流程、重要参数

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

uniCloud(二) 使用数据库、前端展示数据

一、在云服务空间的云数据库中新建一张表 &#xff08;1&#xff09;它有两种方式&#xff0c;我暂时手动创建一张表 &#xff08;2&#xff09;修改表结构&#xff1a;权限read为true &#xff08;3&#xff09;添加数据记录 注意&#xff1a;需要一条一条的加入