ntp设置

news2024/12/19 12:29:45

NTP(Network Time Protocol)简介

ntp授时定义
- NTP是一种用于在计算机网络中同步时间的协议。它确保网络中的各个设备(如服务器、客户端计算机、网络设备等)的时钟保持准确一致。
- 其工作原理是通过分层的时钟源体系,设备可以与更准确的时间服务器(称为NTP服务器)进行通信,获取准确的时间信息并调整自身的时钟。这些NTP服务器本身也可以从更高级别的时间源(如原子钟)获取时间校准。
NTP的重要性
- **系统集成和一致性**:
    * 在大型企业网络或数据中心环境中,有许多服务器和设备协同工作。例如,在分布式数据库系统中,准确的时间同步对于数据的一致性和事务的正确处理至关重要。不同服务器上的日志记录也需要准确的时间戳,以便在故障排查或安全审计时能够正确地追踪事件顺序。
- **网络安全和认证**:
    * 许多安全机制,如数字证书、Kerberos认证等,依赖于准确的时间。如果时间不同步,可能会导致认证失败或者安全漏洞。例如,证书的有效期是基于时间来判断的,如果设备时间不准确,可能会错误地认为证书已经过期或者尚未生效。

**二、**Chrony和ntp服务器对比

时间同步精度和收敛速度方面
- **Chrony优势**:Chrony具有更快的收敛速度。在系统启动或网络恢复后,它能够快速地使本地时间与时间服务器同步。
- **NTP情况**:NTP虽然也能提供较为准确的时间同步,但收敛速度相对较慢。它的同步过程较为保守,尤其是在初始同步或者网络环境变化后,需要逐步调整时间,花费的时间可能会比较长才能达到高精度的同步状态。
对网络环境的适应性方面
- **Chrony优势**:Chrony能够更好地适应复杂多变的网络环境。它可以在网络延迟波动、丢包等情况发生时,利用之前收集的时间数据和本地时钟的特性来灵活调整同步策略。例如,当网络出现短暂拥塞导致丢包时,Chrony可以根据之前同步过程中获取的时钟偏差估计值和网络延迟的统计信息,继续对本地时间进行合理的调整,以保持时间同步的准确性。
- **NTP情况**:NTP在面对网络环境变化时的适应能力相对较弱。当网络状况不佳,如频繁丢包或者网络延迟突然增大时,NTP的时间同步效果可能会受到较大影响,出现时间偏差增大甚至同步失败的情况。
系统资源占用方面
- **Chrony优势**:Chrony是轻量级软件,对系统资源的占用较少。这使得它非常适合在资源受限的系统(如嵌入式设备)上运行。它可以在不影响系统整体性能的前提下,高效地完成时间同步任务。
- **NTP情况**:NTP在一些资源有限的系统中可能会对系统性能产生一定的影响,特别是在处理复杂的时间同步计算和网络通信时,可能会占用较多的CPU时间和内存资源。
配置的灵活性方面
- **Chrony优势**:Chrony的配置相对简单且灵活。它的配置文件(如在Linux系统中的`/etc/chrony.conf`)易于理解和修改。可以方便地指定多个时间服务器,并且支持多种同步选项,如设置不同的时间源优先级等。
- **NTP情况**:NTP的配置相对复杂一些,尤其是在设置高级功能(如复杂的访问控制和多服务器同步策略)时,需要对NTP的配置语法和选项有更深入的了解。

三、Chrony安装和配置(以Linux为例)

安装
- 在基于Debian或Ubuntu的系统中,可以使用以下命令安装:`sudo apt - get install chrony`。
- 对于基于Red Hat或CentOS的系统,命令为:`sudo yum install chrony`。
配置文件
- 主要配置文件通常是`/etc/chrony.conf`。在这个文件中,可以指定时间服务器(NTP服务器)的地址。例如,可以添加以下行来指定公共的NTP服务器:
- 以下是对这个 `chrony` 配置文件内容的详细解释:
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.

# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
#server ntp.aliyun.com iburst
server 192.168.200.16 iburst
allow 192.168.200.0/24
local stratum 10
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
#keyfile /etc/chrony/chrony.keys

# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift

# Uncomment the following line to turn logging on.
#log tracking measurements statistics

# Log files location.
logdir /var/log/chrony

# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0

# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync

# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
makestep 1 3
配置文件说明部分
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.

这是配置文件开头的注释说明,告知用户这是 chrony 的配置文件,若想了解更多可用指令的详细信息,可以查看 chrony.conf(5) 手册页(在类 Unix 系统中,这种形式的手册页通常用于查看相关配置文件指令等的详细文档)。

时间服务器(NTP 服务器)相关配置
# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
#server ntp.aliyun.com iburst
server 192.168.200.16 iburst
  • 开头注释详细解释了原本可以配置使用来自不同域名的多个 NTP 服务器作为时间源,以及各自可使用的最大服务器数量等情况。例如,从 ntp.ubuntu.com 最多使用 4 个源(其中部分支持 IPv6),从 2.ubuntu.pool.ntp.org 最多使用 2 个源(同样支持 IPv6)等。不过这里前面几个以 pool 开头配置 NTP 服务器池的行被注释掉了(# 表示注释),意味着当前没有启用这些服务器池的配置。
  • server ntp.aliyun.com iburst 这一行也是被注释掉的,它原本的作用是指定 ntp.aliyun.com 作为时间服务器,并使用 iburst 选项。iburst 选项会让 chrony 在初始同步时发送一系列紧密间隔的请求,以便更快地获取准确时间。
  • server 192.168.200.16 iburst 这一行则启用了指定 IP 地址为 192.168.200.16 的服务器作为时间服务器,同样配合 iburst 选项来加速初始时间同步。
访问控制配置
allow 192.168.200.0/24

allow 指令用于设置允许访问 chrony 服务的网络范围,这里表示允许来自 192.168.200.0/24 这个网段内的设备访问 chrony 服务,通常用于限制哪些主机可以与本地运行的 chrony 进行交互(比如获取时间信息等)。

本地时钟层级与特性相关配置
local stratum 10

local 指令结合 stratum 参数用于定义本地时钟在 NTP 层级体系中的层级为 10。stratum 表示时钟的准确程度和在整个 NTP 网络中的层次关系,数字越大通常意味着准确性相对越低,这里将本地时钟设置为层级 10,可能是在特定网络环境下对本地时钟相对位置的一种定义(比如在无法连接到外部可靠时间源等情况下的一种兜底设定)。

认证相关(但当前未启用)
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
#keyfile /etc/chrony/chrony.keys

这部分被注释掉了,原本 keyfile 指令是用于指定包含 NTP 认证所需的 ID 和密钥对的文件位置(在这里文件路径为 /etc/chrony/chrony.keys),若要启用 NTP 认证功能,就需要取消这行的注释,并正确配置对应的认证文件内容,但当前配置中并未启用该功能。

漂移文件配置
driftfile /var/lib/chrony/chrony.drift

driftfile 指令指定了 chrony 将用来存储时钟速率信息的文件路径。chrony 会根据系统时钟与时间源的对比等情况,把时钟漂移相关的数据记录到这个文件中,后续利用这些信息来更精准地进行时间同步调整等操作。

日志相关配置
# Uncomment the following line to turn logging on.
#log tracking measurements statistics

# Log files location.
logdir /var/log/chrony
  • 第一部分中 log tracking measurements statistics 这行被注释掉了,若取消注释,则会开启相应的日志记录功能,记录诸如跟踪、测量、统计等与时间同步相关的详细信息。
  • logdir 指令明确了日志文件存放的目录为 /var/log/chrony,如果开启了日志记录,相应的日志文件就会存放在这个指定的目录下。
最大更新偏差配置
maxupdateskew 100.0

maxupdateskew 指令用于设置允许的最大更新偏差值,单位是秒。在这里设置为 100.0,意味着如果 chrony 检测到时钟调整的偏差大于 100 秒,就会采取相应的措施(比如根据其他配置决定是否进行调整等),该指令主要是防止因过大的时间偏差更新对系统时钟造成不合理的影响。

内核同步及时钟调整相关配置
# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync

# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
makestep 1 3
  • rtcsync 指令启用了内核实时时钟的同步功能,每隔 11 分钟,chrony 会将系统时钟与硬件实时时钟进行同步(需要注意的是它不能和 rtcfile 指令同时使用)。
  • makestep 指令规定了如果时间调整幅度大于 1 秒,那么在前三次时钟更新时,chrony 会直接“跳步”(step)来调整系统时钟,使其快速跟上正确时间,而不是缓慢地调整(即“slewing”,缓慢调整时钟速率来使时间慢慢对齐)。超过三次之后,即使时间偏差大于 1 秒,可能就会采用其他相对缓和的方式来处理时间偏差了。
启动和服务管理
- 安装完成后,可以使用以下命令启动Chrony服务:`sudo service chrony start`(在基于Systemd的系统中,命令为`sudo systemctl start chrony`)。
- 可以将其设置为开机自启,在Systemd系统中使用命令`sudo systemctl enable chrony`。

四 NTPserver安装和配置(以centos为例)

安装

既可做服务端也可做客户端

sudo yum install -y ntp

只同步

sudo yum install -y ntpdate

开启服务,让其他客户端与本机同步,注意防火墙状态

systemctl start ntpd

开机自启

systemctl enable ntpd

修改配置文件
# 记录和上级时间服务器的时间差异
driftfile /var/lib/ntp/drift

# ntp 日志
logfile /var/log/ntp.log
# 日志级别 all event info
logconfig all

# 设置默认策略,允许同步时间,不允许修改
restrict default nomodify notrap nopeer noquery

# 允许本机地址的一切操作,-6 为 IPV6
restrict 127.0.0.1
restrict -6 ::1

# 允许网段内客户端连接此服务器同步时间,但是拒绝让他们修改服务器上的时间
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# https://www.ntppool.org/zone/cn
# 利用 server 设定上层 NTP 服务器,可设置多个。prefer 表示优先
server s1b.time.edu.cn prefer

# 在 /ntp.conf 中定义的 server 都不可用时,将使用 local 时间作为 ntp 服务提供给 ntp 客户端。建议配置,否则 ntp 服务器无法与公网 ntp 服务器同步时,其客户端也会无法同步
server  127.127.1.0
fudge   127.127.1.0 stratum 10

以下是对这段NTP配置文件内容的详细解释:

漂移文件配置
# 记录和上级时间服务器的时间差异
driftfile /var/lib/ntp/drift

driftfile指令用于指定一个文件(这里是/var/lib/ntp/drift),NTP服务会将系统时钟相对于参考时间源(上级时间服务器)的时钟漂移信息记录到该文件中。通过长期监测和记录这些漂移数据,NTP软件能够更精准地对系统时钟进行调整,以补偿时钟频率的微小变化,从而更好地保持时间同步的准确性。

日志相关配置
# ntp 日志
logfile /var/log/ntp.log
# 日志级别 all event info
logconfig all
  • logfile指令明确了NTP服务日志文件的存放位置,即/var/log/ntp.log,所有与NTP运行相关的日志信息都会记录到这个文件中,方便后续查看和分析NTP服务的运行状态、时间同步情况以及可能出现的问题等。
  • logconfig指令设置了日志记录的级别为all,意味着会记录所有类型的日志信息,包括各种事件(event)以及详细的信息(info)等。这样的配置可以提供非常全面的日志内容,但也可能导致日志文件增长较快,需要根据实际需求和磁盘空间等情况合理考虑是否调整日志级别。
访问限制(restrict)相关配置
# 设置默认策略,允许同步时间,不允许修改
restrict default nomodify notrap nopeer noquery

# 允许本机地址的一切操作,-6 为 IPV6
restrict 127.0.0.1
restrict -6 ::1

# 允许网段内客户端连接此服务器同步时间,但是拒绝让他们修改服务器上的时间
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  • restrict指令用于控制对NTP服务的访问权限。restrict default nomodify notrap nopeer noquery这一行是设置了全局默认的访问限制策略,具体含义如下:
    • nomodify:禁止客户端修改NTP服务器的配置以及时间设置,确保服务器时间的权威性和稳定性,只允许客户端从服务器获取时间进行同步。
    • notrap:不处理控制消息陷阱(trap),通常用于避免一些特殊的控制消息交互,简化服务运行逻辑。
    • nopeer:拒绝让其他设备与本NTP服务器建立对等(peer)关系,也就是不允许其他设备把本服务器当作同等地位的时间同步伙伴,明确了服务器与客户端的层级关系。
    • noquery:禁止外部设备对本服务器进行查询操作(除了同步时间相关的必要交互),进一步保障服务器的安全性和稳定性。
  • restrict 127.0.0.1restrict -6 ::1这两行分别针对本地回环地址(IPv4的127.0.0.1和IPv6的::1)放开了所有限制,允许本地进程无限制地访问NTP服务,这是很常见的配置,因为本地的一些系统服务或应用可能需要不受限制地与本地运行的NTP服务交互来获取准确时间。
  • restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap则是针对192.168.1.0/24这个网段内的客户端进行访问限制设置,允许它们连接到本NTP服务器进行时间同步(因为没有设置noquery),但同样不允许它们修改服务器上的时间(通过nomodify选项实现),确保了服务器时间不会被该网段内的客户端意外更改。
时间服务器(server)相关配置
# https://www.ntppool.org/zone/cn
# 利用 server 设定上层 NTP 服务器,可设置多个。prefer 表示优先
server s1b.time.edu.cn prefer

# 在 /ntp.conf 中定义的 server 都不可用时,将使用 local 时间作为 ntp 服务提供给 ntp 客户端。建议配置,否则 ntp 服务器无法与公网 ntp 服务器同步时,其客户端也会无法同步
server  127.127.1.0
fudge   127.127.1.0 stratum 10
  • server s1b.time.edu.cn prefer这一行指定了s1b.time.edu.cn作为上层的NTP时间服务器,并且通过prefer关键字表明在有多个可用时间服务器时,优先使用该服务器进行时间同步。这样可以确保在有多个时间源选择的情况下,优先与更可靠或者更精准的时间服务器对接。
  • server 127.127.1.0fudge 127.127.1.0 stratum 10这两行是一种备用时间源的配置。当配置文件中前面定义的所有外部(公网)NTP服务器(如s1b.time.edu.cn等)都不可用,无法进行时间同步时,NTP服务会将本地的127.127.1.0这个虚拟的本地时钟当作时间源来为NTP客户端提供时间服务。通过fudge指令设置其stratum(层级)为10,表示它在整个NTP时间层级体系中的相对准确性级别,数字越大通常意味着相对准确性越低,但在外部时间源失效的情况下,它可以作为一种兜底的时间提供方式,保证客户端依然能够获取到一个相对稳定的时间基准,避免客户端完全无法同步时间的情况出现。

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

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

相关文章

【鸿睿创智开发板试用】移植OpenCV 4到OpenHarmony 4.1

目录 目录 引言 编译系统镜像 (1) 下载代码后解压SDK (2) 下载docker镜像   (3) 编译OH 编译OpenCV 下载OpenCV源代码 构建编译配置文件 执行编译命令 安装库和头文件 测试 结语 引言 最近有个需求是在基于RK3568的OpenHarmony 4.1系统中使用OpenCV&#xff0c…

二分查找【Lecode_HOT100】

文章目录 1.搜索插入位置No.352.搜索二维矩阵No.743.在排序数组中查找元素的第一个和最后一个位置No.344.搜索旋转排序数组No.335.寻找旋转排序数组中的最小值No.153 1.搜索插入位置No.35 class Solution {public int searchInsert(int[] nums, int target) {int l 0;int r n…

蜂窝结构机械超材料

本研究设计了两种蜂窝结构机械超材料,具有可变的、依赖于拉伸或压缩的正负泊松比,并通过NOKOV度量动作捕捉验证了超材料的形变特性。 研究人员以《Mechanical Metamaterials with Discontinuous and Tension/Compression-Dependent Positive/Negative Po…

JAVA入门:使用IDE开发

JAVA入门:使用IDE开发 什么是IDE IDE(Integrated Development Environment,集成开发环境)是一种软件应用程序,它为程序开发、软件设计、项目管理等提供全面的设施。 简单来说就是简化开发过程,让编程更加方便。 IDEA 业界公认最好用的JAVA IDE 安装IDEA 打开IDEA官…

opencv # Sobel算子、Laplacian算子、Canny边缘检测、findContours、drawContours绘制轮廓、外接矩形

一、Sobel算子 案例图片 cv2.Sobel(src, ddepth, dx, dy, ksize3, scale1, delta0, borderTypeNone) 功能:用于计算图像梯度(gradient)的函数 参数: src: 输入图像,它应该是灰度图像。 ddepth: 输出图像的所需深度&am…

CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)

1. 引言 在完成了所有必要工具的安装和配置后,我们进入到获取 CEF 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本文将详细介绍如何在 macOS 系统上获…

C# OpenCV机器视觉:图像平滑

在一个寒冷的冬日,阿强窝在家里的沙发上,裹着厚厚的毛毯,手里捧着一杯热巧克力。他的朋友们约他一起去滑雪,但阿强却更喜欢待在温暖的家中,享受这份宁静。突然,他的手机响了,是朋友们发来的滑雪…

基于quasar,只选择年度与月份的组件

为什么要做 quasar是个基于vue的强大的UI开发库,它提供了非常多的组件,比如日期选择。但是有些时候只需要选择到月份就可以了,quasar中没有,所以自己动手写了一个。因为对界面编程我不熟悉,所以,如果你有更…

02-3.python入门基础一操作符与表达式

接上章 : 02-2.python入门语法一变量与数据类型2 本文将深入介绍Python中的各种操作符,包括算术操作符、比较操作符、逻辑操作符等,并详细讲解如何使用这些操作符构建表达式。通过丰富的示例与详细的讲解,帮助读者全面掌握这一重要的基础知识…

【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等

【自动化】Python SeleniumUtil 工具 【Python】使用Selenium 操作浏览器 自动化测试 记录-CSDN博客文章浏览阅读58次。文章浏览阅读42次。【附件】Selenium chromedriver 驱动及浏览器下载。【附件】Selenium chromedriver 驱动及浏览器下载-CSDN博客。3.安装Chrome浏览器驱动…

COMSOL快捷键及内置函数

文章目录 COMSOL快捷键使用COMSOL算子求最大值和最小值COMSOL内置函数3.1 解析函数3.2 插值函数3.3 分段函数3.4 高斯脉冲函数3.5 斜坡函数3.6 矩形函数3.7 波形函数3.8 随机函数3.9 Matlab函数3.10 SWITCH函数 COMSOL快捷键 Ctrl+/ 可快速打开预定义的物理量列表。…

QT绘制同心扇形

void ChartForm::paintEvent(QPaintEvent *) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);// 设置抗锯齿painter.save();// 设置无边框(不需要设置QPen,因为默认是不绘制边框的)QPen pen(Qt::NoPen);// QPen pen…

最大质因子序列

最大质因子序列 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 任意输入两个正整数m, n (1 < m < n < 5000)&#xff0c;依次输出m到n之间每个数的最大质因子&#xff08;包括m和n&#xff1b;…

ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程

本章教程,主要记录在Ubuntu22.04版本系统上编译安装安装Opencv4.8.0+Opencv-contrib4.8.0的具体过程。 一、下载opencv和opencv-contrib包 wget https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip wget https://github.com/opencv/opencv_contrib/archive/refs/…

AI芯片常见概念

文章目录 AI芯片常见概念前言常见概念AI芯片分类按照芯片的技术架构分GPU半定制化的 FPGA全定制化 ASIC神经拟态芯片 按应用场景分训练卡推理卡 按部署位置分国产AI卡资料汇总 封装相关Chiplet技术3DIC三星多芯片集成联盟&#xff08;Samsung Multi-Die Integration Alliance&a…

Fiddler(抓包测试工具)下载安装步骤

目录 介绍 主要功能&#xff1a; 使用场景&#xff1a; 一、下载 二、安装 ​编辑三、测试 介绍 Fiddler 是一个强大的网络调试工具&#xff0c;用于捕获和分析 HTTP/HTTPS 请求与响应。它通过代理服务器捕获流量&#xff0c;帮助开发者调试 Web 应用、API&#xff0c;进…

Elasticsearch-DSL高级查询操作

一、禁用元数据和过滤数据 1、禁用元数据_source GET product/_search {"_source": false, "query": {"match_all": {}} }查询结果不显示元数据 禁用之前: {"took" : 0,"timed_out" : false,"_shards" : {&quo…

gorm源码解析(四):事务,预编译

文章目录 前言事务自己控制事务用 Transaction方法包装事务 预编译事务结合预编译总结 前言 前几篇文章介绍gorm的整体设计&#xff0c;增删改查的具体实现流程。本文将聚焦与事务和预编译部分 事务 自己控制事务 用gorm框架&#xff0c;可以自己控制事务的Begin&#xff0…

什么是双声道立体声环绕声全景声 | 一文讲清楚沉浸式声音基本设定

目录 一、 沉浸式声音基本概念1. 声学上的沉浸式2. 空间音频技术3. 声源位置4. 人耳声音定位&#xff08;水平&垂直方向&#xff09;5. 人耳对声源距离定位的影响因素6. 头部相关传递函数7. 三维声技术8. “双耳”与“立体声”9. 耳机重放与扬声器重放10. 环绕声11. 高度声…

使用C语言库函数格式化输入时格式类型与数据类型不匹配导致程序异常

问题 使用两次sscanf()库函数从两个字符串中按照指定的格式读取数据&#xff0c;执行完毕后发现第一个正常读取的数据被篡改。项目在Ubuntu上使用CMake和Ninja构建项目&#xff0c;编译时没有错误和警告。 复现 为方便调试&#xff0c;在keil中编译stm32工程代替&#xff0c…