NAT 穿透原理与常见实现方案
NAT简介 在计算机网络中是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问互联网的私有网络中。它是一个方便且得到了广泛应用的技术。当然,NAT也让主机之间的通信变得复杂,导致了通信效率的降低。 NAT产生的原因有两种 第一种是IPv4的地址不够,解决IPv4地址不够有两种方案,其中最好的是使用IPv6,IPv6的地址池更多,基本上每台主机都有...
网络字节序与协议字段定义参考
大端小端 首先,为什么会有小端字节序? 答案是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。 但是,人类还是习惯读写大端字节序。所以,除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。 计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。如果是大端字节序,先读到的就是高位字节...
RTP、RTCP 与 SRTP 协议基础
srtp 只加密rtp负载的内容,尾部有sha1特有标识rtp 头部包含ssrc同源吗,编码类型,时间戳, 版本信息, 序列号 RTP 实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式 RTP内容 基于UDP协议的RTP RTP标准定义了两个子协议 ,RTP和RTCP 数据传输协议RTP,用于实时传输数据。该协议提供的信...
局域网 WebRTC:ICE、STUN 与实时通信
amazon-kinesis-video-streams-webrtc-sdk-c SRTP(Secure Real-time Transport Protocol):用于在 WebRTC 中传输实时的音频、视频和数据,提供了加密、消息认证和完整性保护等功能,确保数据在传输过程中的安全性和可靠性。 ICE(Interactive Connectivity Establishment):用于在客户端之间建立连接,它通过收集和交换双方...
ADC 转换与音频采集基础
模拟数字转换(ADC)是将模拟信号(如声音)转换为数字信号的过程。以下是ADC转换的基础知识以及捕捉声音的硬件方式: 传感器: 亦称换能器,是把现场各种物理信号按一定规律转换成与其对应的电信号。它是实现测量和控制的首要环节,是测控系统的关键部件。 声音捕捉 声波原理: 声音是由空气中的压力波动形成的。当声波到达麦克风时,会使麦克风内部的某些组件发生物理变化,从而生成电信号。 转换机制: 不同类型的麦克风使用不同...
Bluetooth 命令、连接流程与协议栈笔记
cmd line ctl cmd doec bluetoothctl 进入蓝牙控制台,也可以在命令后面加参数直接运行 paired-devices 列出所有已配对的设备 devices 列出所有可用的蓝牙设备 info device_mac_address 获取设备的详细信息 power on 打开蓝牙 scan on 扫描设备 scan off 关闭扫描 exit 退出 bluetoothc...
Kconfig 配置语法与依赖关系笔记
kconfig 提示:Kconfig 是一个用于配置 Linux 内核和其他项目的文件格式,主要用于管理复杂的配置选项。它提供了一种用户界面,允许开发者和用户选择编译时的选项,通常通过菜单驱动的方式。说明 Kconfig 文件的作用* 配置选项管理:Kconfig 文件定义了可用的配置选项,包括模块、驱动程序和其他功能。 * 依赖关系处理:它可以处理选项之间的依赖关系,确保用户只看到与其选择相关的选项。 * 生成配置文件:通过工...
Socket 类型与 TCP、UDP 通信基础
类型 基于网络协议的套接字类型 流式套接字(TCP Socket,SOCK_STREAM) 特点: 面向连接:在进行数据传输之前,需要先建立连接,传输完成后再断开连接。连接的建立和断开遵循特定的握手协议,例如 TCP 的三次握手和四次挥手。 可靠传输:通过确认机制、重传机制和滑动窗口协议等,保证数据在传输过程中不会丢失、重复或乱序,确保数据的完整性和顺序性。 字节流传输:数据以字节流的形式进行传输,就像水流一样连续不断,发送方可以...
CRC 循环冗余校验原理与计算
CRC 循环: CRC 使用多项式除法,数据被视为一个多项式,并通过循环移位的方式进行处理。这个“循环”指的是在数据的每个比特位移动时,使用同一多项式进行计算。 冗余: CRC 在数据包中附加了额外的校验信息(冗余信息),以便接收方能够检查数据的完整性。这个冗余信息是通过 CRC 计算得到的,能够帮助检测任何在数据传输过程中发生的错误。 校验: CRC 用于检测数据传输中的错误。发送方在发送数据时计算 CRC 值,并将其附...
Bluetooth 协议栈与嵌入式音频实践
蓝牙协议栈的层次 应用层:用户应用程序与蓝牙协议栈的接口,负责具体的业务逻辑。 GAP 层(Generic Access Profile):处理设备的发现、连接、配对等基本功能。 GATT 层(Generic Attribute Profile):用于数据的传输和属性的管理,支持服务和特性的定义。 L2CAP 层(Logical Link Control and Adaptation Protocol):提供逻辑链路的控制和适配,...