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

计算机网络基础 - 链路层(3)

计算机网络基础

  • 链路层和局域网
    • 交换局域网
      • 链路层寻址
      • 地址解析协议 ARP
      • 以太网
        • 物理拓扑
        • 以太网帧结构
        • 以太网提供的服务
        • 以太网标准
      • 链路层交换机
        • 交换机转发和过滤
        • 自学习
        • 交换机优点
        • 交换机和路由器比较


大家好呀!我是小笙,本章我主要分享计算机网络基础 - 链路层(3)学习总结,希望内容对你有所帮助!!

链路层和局域网

交换局域网

链路层寻址

事实上,并不是主机或路由器具有链路层地址,而是它们的适配器具有链路层地址

MAC(LAN/物理/以太网)地址

用于使帧从一个网卡传递到与其物理连接的另一个网卡(在同一个物理网络中)

  • 48bit MAC地址固化在适配器的ROM,有时也可以通过软件设定(通常用十六进制 表示法 1A-2F-BB-76-09-AD)
  • 理论上全球任何2个网卡的MAC地址都不相同

image-20250114082326294

不同公司如何在生产适配器的时候,控制使用不同 MAC 地址?

答案是 IEEE在管理着该MAC地址空间。当一个公司要生产适配器时,它支付象征性的费用购买组成24个地址的一块地址空间。IEEE分配这块24个地址的方式是固定一个MAC地址的前24比特,让公司自己为每个适配器生成后24比特的唯一组合

IP地址和MAC地址的作用区别

IP地址具有分层的结构(即一个网络部分和一个主机部分)

  • 当主机移动时,主机的 IP地址需要改变,即改变它所连接到的网络
  • 主要用于IP地址网络到网络的交付

适配器的MAC地址具有扁平结构

  • 网卡在生产时不知道被用于哪个网络,因此给网卡一个唯一的标示,用于区分一个网络内部不同的网卡即可(不论适配器到哪里用都不会变化)
  • 主要用于一个物理网络内部的节点到节点的数据交付

网络地址如果和 MAC 地址进行捆绑,可能存在的问题

  • 局域网是为任意网络层协议而设计的,而不只是用于 IP 和因特网
  • 每次上电都要重新写入网卡 IP地址
  • 在适配器中不使用任何地址,让每个适配器将它收到的每帧数据,沿协议栈向上传递到网络层才能够核对网络地址层是否匹配,这将会导致主机将被局域网上发送的每个帧中断

地址解析协议 ARP

ARP 协议主要用于网络层地址和链路层地址之间的转换(需要在同一个子网中)

每台主机或路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系(该ARP表也包含一个寿命 TTL 值,它指示了从表中删除每个映射的时间,通常的过期时间是20分钟)

image-20250115065402966

寻址过程

  • A 要发送帧 给 B(B的IP地址已知) 但 B 的MAC地址不在 A 的ARP表中
  • A 广播包含 B 的IP地址的ARP查询包
    • LAN上的所有节点都会收到该查询包
  • B 接收到ARP包,回复 A 关于自己的MAC地址 (单播
  • A 在自己的ARP表中,缓存 IP - MAC地址映射关系,直到信息超时 (软状态: 靠定期刷新维持的系统状态 )
  • ARP是即插即用的
    • 节点自己创建ARP的表项
    • 无需网络管理员的干预

以太网

  • 日前最主流的LAN技术:98%占有率
  • 100Mbps 以太网只需要30元RMB ,比令牌网和ATM网络简单、廉价
  • 技术带宽不断提升:10M,100M,1G,10G
物理拓扑

总线(在上个世纪80年代很流行)

  • 一次只允许一个节点发送
  • 可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为是冲突,总是冲突

常见的网络拓扑结构有哪几种• Worktile社区

星型(目前最主流)

  • 连接选择:集线器 hub或者交换机 switch (现在一般是交换机在中心)
  • 交换机:每个节点以及相连的交换机端口使用(独立的)以太网协议(不会和其他节点的发送产生碰撞)

img

以太网帧结构

发送方适配器在以太网帧中封装 IP数据报,或其他网络层协议数据单元

image-20250116065902989

前同步码(8字节)

以太网帧以一个8字节的前同步码字段开始,该前同步码的前7字节的值都是10101010;第八个字节是10101011

前同步码字段的前7字节用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步;前同步码的第8个字节的最后两个比特(出现的两个连续的1)警告适配器需要接收的数据就要到了

目的地址(6字节)

这个字段包含目的适配器的MAC地址,即 XX-XX-XX-XX-XX-XX

当适配器B收到一个以太网帧,帧的目的地址无论是 XX-XX-XX-XX-XX-XX,还是MAC广播地址,它都将该帧的数据字段的内容传递给网络层;如果它收到了任何其他MAC地址的帧,则丢弃之

类型(2字节)

指出高层协(大多情况下是IP,但也支持其它网络层协议Novell IPX和Apple Talk)

数据字段(46~1500字节)

这个字段承载了IP数据报,数据大小必须在 46字节 - 1500字节之间,数据过大需要分片,数据过小需要补齐(网络层使用IP数据报首部中的长度字段来去除填充部分)

CRC(4字节)

CRC(循环冗余检测)字段的目的是使得接收适配器检测帧中是否引入了差错

以太网提供的服务

采用二进制退避的CSMA/CD介质访问控制形式

  • 无连接:帧传输前,发送方和接收方之间没有握手
  • 不可靠:接收方适配器不发送 ACKs或 NAKs给发送方
  • 如果由于丢弃了以太网帧而存在间隙,接收主机上的应用也会看见这个间隙吗?
    • 如果应用使用的是 UDP,则接收主机中的应用的确会看到数据中的间隙
    • 如果应用使用的是TCP,则接收主机中的TCP将不会确认包含在丢弃帧中的数据,从而引起发送主机的TCP重传
以太网标准

很多不同的以太网标准

  • 相同的MAC协议(介质访问控制)和帧结构
  • 不同的速率:2Mbps、10Mbps、100Mbps、1Gbps、10Gbps
  • 不同的物理层标准
  • 不同的物理层媒介:光纤,同轴电缆和双绞线
image-20250116072601020

名称解读,比如 100BASE-T2 表示的是 100Mbps + 基带以太网 + 物理媒介类型


链路层交换机

交换机转发和过滤
  • 过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的功能

  • 转发是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的功能

  • 交换机的过滤和转发借助于交换机表(switch table)完成(交换机表的一部分)

    image-20250117065154964

举例:假定目的地址为DD-DD-DD-DD-DD-DD的帧从交换机接口x到达。交换机用MAC地址DD-DD-DD-DD-DD-DD索引它的表,有3种可能的情况

  • 表中没有对于DD-DD-DD-DD-DD-DD的表项。在这种情况下,交换机向除接口x外的所有接口前面的输出缓存转发该帧的副本。(换句话说就是没有对于目的地址的表项,交换机广播该帧)
  • 表中有一个表项将DD-DD-DD-DD-DD-DD与接口x联系起来。在这种情况下,该帧从包括适配器DD-DD-DD-DD-DD-DD的局域网网段到来。无须将该帧转发到任何其他接口,交换机通过丢弃该帧执行过滤功能即可(说明目的接口和到来的接口是同一个,只需要过滤即可)
  • 表中有一个表项将DD-DD-DD-DD-DD-DD与接口y≠x联系起来。在这种情况下,该帧需要被转发到与接口y相连的局域网网段。交换机通过将该帧放到接口y前面的输出缓存完成转发功能
自学习

交换机是即插即用设备,它们不需要网络管理员或用户干预

自学习过程

  • 交换机表初始为空
  • 对于在每个接口接收到的每个入帧,该交换机在其表中存储:①在该帧源地址字段中的MAC地址;②该帧到达的接口;③当前时间(如果在局域网上的每个主机最终都发送了一个帧,则每个主机最终将在这张表中留有记录)
  • 如果在一段时间后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个地址
交换机优点
  • 消除碰撞,在使用交换机(不使用集线器)构建的局域网中,没有因碰撞而浪费的带宽
  • 异质的链路,交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行
  • 管理,除了提供强化的安全性,交换机也易于进行网络管理
交换机和路由器比较
  • 都是存储转发设备,但层次不同
    • 交换机:链路层设备(检查链路层头部)
    • 路由器:网络层设备(检查网络层的头部)
  • 都有转发表
    • 交换机维护交换表,按照MAC地址转发
    • 路由器维护路由表,执行路由算法

image-20250117071222141

相关文章:

计算机网络基础 - 链路层(3)

计算机网络基础 链路层和局域网交换局域网链路层寻址地址解析协议 ARP以太网物理拓扑以太网帧结构以太网提供的服务以太网标准 链路层交换机交换机转发和过滤自学习交换机优点交换机和路由器比较 大家好呀!我是小笙,本章我主要分享计算机网络基础 - 链路…...

ray.rllib 入门实践-5: 训练算法

前面的博客介绍了ray.rllib中算法的配置和构建,也包含了算法训练的代码。 但是rllib中实现算法训练的方式不止一种,本博客对此进行介绍。很多教程使用 PPOTrainer 进行训练,但是 PPOTrainer 在最近的 ray 版本中已经取消了。 环境配置&#x…...

FPGA 使用 CLOCK_LOW_FANOUT 约束

使用 CLOCK_LOW_FANOUT 约束 您可以使用 CLOCK_LOW_FANOUT 约束在单个时钟区域中包含时钟缓存负载。在由全局时钟缓存直接驱动的时钟网段 上对 CLOCK_LOW_FANOUT 进行设置,而且全局时钟缓存扇出必须低于 2000 个负载。 注释: 当与其他时钟约束配合…...

选择的阶段性质疑

条条大路通罗马,每个人选择的道路,方向并不一样,但不妨碍都可以到达终点,而往往大家会更推崇自己走过的路径。 自己靠什么走向成功,自己用了什么方法,奉行什么原则或者理念,也会尽可能传播这种&…...

固有频率与模态分析

目录 引言 1. 固有频率:物体的“天生节奏” 1.1 定义 1.2 关键特点 1.3 实际意义 2. 有限元中的模态分析:给结构“体检振动” 2.1 模态分析的意义 2.2 实际案例 2.2.1 桥梁模态分析 2.2.2 飞机机翼模态分析 2.2.3 具体事例 3. 模态分析的工具…...

数科OFD证照生成原理剖析与平替方案实现

一、 引言 近年来,随着电子发票的普及,OFD格式作为我国电子发票的标准格式,其应用范围日益广泛。然而,由于不同软件生成的OFD文件存在差异,以及用户对OFD文件处理需求的多样化,OFD套餐转换工具应运而生。本…...

CAN总线数据采集与分析

CAN总线数据采集与分析 目录 CAN总线数据采集与分析1. 引言2. 数据采集2.1 数据采集简介2.2 数据采集实现3. 数据分析3.1 数据分析简介3.2 数据分析实现4. 数据可视化4.1 数据可视化简介4.2 数据可视化实现5. 案例说明5.1 案例1:数据采集实现5.2 案例2:数据分析实现5.3 案例3…...

SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录 一、情景说明二、分析三、解决 一、情景说明 在整合SpringSecurity功能的时候 我先是去实现认证功能 也就是,去数据库比对用户名和密码 相关的类: UserDetailsServiceImpl implements UserDetailsService 用于SpringSecurity查询数据库 Logi…...

ResNet 残差网络

目录 网络结构 残差块(Residual Block) ResNet网络结构示意图 残差块(Residual Block)细节 基本残差块(ResNet-18/34) Bottleneck残差块(ResNet-50/101/152) 残差连接类型对比 变体网…...

CAPL编程常见问题与解决方案深度解析

CAPL编程常见问题与解决方案深度解析 目录 CAPL编程常见问题与解决方案深度解析引言1. CAPL编程核心难点剖析1.1 典型问题分类2. 六大典型问题场景解析案例1:定时器资源竞争导致逻辑错乱2.1.1 问题现象2.1.2 根因分析2.1.3 解决方案案例2:大数据量报文处理引发性能瓶颈2.2.1 …...

信号处理以及队列

下面是一个使用C和POSIX信号处理以及队列的简单示例。这个示例展示了如何使用信号处理程序将信号放入队列中&#xff0c;并在主循环中处理这些信号。 #include <iostream> #include <csignal> #include <queue> #include <mutex> #include <thread…...

Linux pkill 命令使用详解

简介 pkill 命令用于根据进程名称、用户、组或其他属性终止进程。它是 procps-ng 包的一部分&#xff0c;通常比 kill 更受欢迎&#xff0c;因为它无需查找进程 ID (PID)。 常用选项 -<signal>, --signal <signal>&#xff1a;定义要发送给每个匹配进程的信号&am…...

react注意事项

1.状态的定义以及修改 2.排序用lodash进行排序 import _ from lodassh 3.利用className插件进行动态类名的使用 4.表单使用 5.react中获取dom...

【开源免费】基于SpringBoot+Vue.JS在线考试学习交流网页平台(JAVA毕业设计)

本文项目编号 T 158 &#xff0c;文末自助获取源码 \color{red}{T158&#xff0c;文末自助获取源码} T158&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

怎样在PPT中启用演讲者视图功能?

怎样在PPT中启用演讲者视图功能&#xff1f; 如果你曾经参加过重要的会议或者演讲&#xff0c;你就会知道&#xff0c;演讲者视图&#xff08;Presenter View&#xff09;对PPT展示至关重要。它不仅能帮助演讲者更好地掌控演讲节奏&#xff0c;还能提供额外的提示和支持&#…...

UE AController

定义和功能 AController是一种特定于游戏的控制器&#xff0c;在UE框架中用于定义玩家和AI的控制逻辑。AController负责处理玩家输入&#xff0c;并根据这些输入驱动游戏中的角色或其他实体的行为。设计理念 AController设计用于分离控制逻辑与游戏角色&#xff0c;增强游戏设计…...

H264原始码流格式分析

1.H264码流结构组成 H.264裸码流&#xff08;Raw Bitstream&#xff09;数据主要由一系列的NALU&#xff08;网络抽象层单元&#xff09;组成。每个NALU包含一个NAL头和一个RBSP&#xff08;原始字节序列载荷&#xff09;。 1.1 H.264码流层次 H.264码流的结构可以分为两个层…...

JAVA 接口、抽象类的关系和用处 详细解析

接口 - Java教程 - 廖雪峰的官方网站 一个 抽象类 如果实现了一个接口&#xff0c;可以只选择实现接口中的 部分方法&#xff08;所有的方法都要有&#xff0c;可以一部分已经写具体&#xff0c;另一部分继续保留抽象&#xff09;&#xff0c;原因在于&#xff1a; 抽象类本身…...

反向代理模块b

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…...

Nuitka打包python脚本

Python脚本打包 Python是解释执行语言&#xff0c;需要解释器才能运行代码&#xff0c;这就导致在开发机上编写的代码在别的电脑上无法直接运行&#xff0c;除非目标机器上也安装了Python解释器&#xff0c;有时候还需要额外安装Python第三方包&#xff0c;相当麻烦。 事实上P…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...