计算机网络基础 - 链路层(3)
计算机网络基础
- 链路层和局域网
- 交换局域网
- 链路层寻址
- 地址解析协议 ARP
- 以太网
- 物理拓扑
- 以太网帧结构
- 以太网提供的服务
- 以太网标准
- 链路层交换机
- 交换机转发和过滤
- 自学习
- 交换机优点
- 交换机和路由器比较
大家好呀!我是小笙,本章我主要分享计算机网络基础 - 链路层(3)学习总结,希望内容对你有所帮助!!
链路层和局域网
交换局域网
链路层寻址
事实上,并不是主机或路由器具有链路层地址,而是它们的适配器具有链路层地址
MAC(LAN/物理/以太网)地址
用于使帧从一个网卡传递到与其物理连接的另一个网卡(在同一个物理网络中)
- 48bit MAC地址固化在适配器的ROM,有时也可以通过软件设定(通常用十六进制 表示法 1A-2F-BB-76-09-AD)
- 理论上全球任何2个网卡的MAC地址都不相同

不同公司如何在生产适配器的时候,控制使用不同 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分钟)

寻址过程
- 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年代很流行)
- 一次只允许一个节点发送
- 可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为是冲突,总是冲突

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

以太网帧结构
发送方适配器在以太网帧中封装 IP数据报,或其他网络层协议数据单元
前同步码(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
- 不同的物理层标准
- 不同的物理层媒介:光纤,同轴电缆和双绞线
名称解读,比如 100BASE-T2 表示的是 100Mbps + 基带以太网 + 物理媒介类型
链路层交换机
交换机转发和过滤
-
过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的功能
-
转发是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的功能
-
交换机的过滤和转发借助于交换机表(switch table)完成(交换机表的一部分)

举例:假定目的地址为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地址转发
- 路由器维护路由表,执行路由算法

相关文章:
计算机网络基础 - 链路层(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信号处理以及队列的简单示例。这个示例展示了如何使用信号处理程序将信号放入队列中,并在主循环中处理这些信号。 #include <iostream> #include <csignal> #include <queue> #include <mutex> #include <thread…...
Linux pkill 命令使用详解
简介 pkill 命令用于根据进程名称、用户、组或其他属性终止进程。它是 procps-ng 包的一部分,通常比 kill 更受欢迎,因为它无需查找进程 ID (PID)。 常用选项 -<signal>, --signal <signal>:定义要发送给每个匹配进程的信号&am…...
react注意事项
1.状态的定义以及修改 2.排序用lodash进行排序 import _ from lodassh 3.利用className插件进行动态类名的使用 4.表单使用 5.react中获取dom...
【开源免费】基于SpringBoot+Vue.JS在线考试学习交流网页平台(JAVA毕业设计)
本文项目编号 T 158 ,文末自助获取源码 \color{red}{T158,文末自助获取源码} T158,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
怎样在PPT中启用演讲者视图功能?
怎样在PPT中启用演讲者视图功能? 如果你曾经参加过重要的会议或者演讲,你就会知道,演讲者视图(Presenter View)对PPT展示至关重要。它不仅能帮助演讲者更好地掌控演讲节奏,还能提供额外的提示和支持&#…...
UE AController
定义和功能 AController是一种特定于游戏的控制器,在UE框架中用于定义玩家和AI的控制逻辑。AController负责处理玩家输入,并根据这些输入驱动游戏中的角色或其他实体的行为。设计理念 AController设计用于分离控制逻辑与游戏角色,增强游戏设计…...
H264原始码流格式分析
1.H264码流结构组成 H.264裸码流(Raw Bitstream)数据主要由一系列的NALU(网络抽象层单元)组成。每个NALU包含一个NAL头和一个RBSP(原始字节序列载荷)。 1.1 H.264码流层次 H.264码流的结构可以分为两个层…...
JAVA 接口、抽象类的关系和用处 详细解析
接口 - Java教程 - 廖雪峰的官方网站 一个 抽象类 如果实现了一个接口,可以只选择实现接口中的 部分方法(所有的方法都要有,可以一部分已经写具体,另一部分继续保留抽象),原因在于: 抽象类本身…...
反向代理模块b
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…...
Nuitka打包python脚本
Python脚本打包 Python是解释执行语言,需要解释器才能运行代码,这就导致在开发机上编写的代码在别的电脑上无法直接运行,除非目标机器上也安装了Python解释器,有时候还需要额外安装Python第三方包,相当麻烦。 事实上P…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
