BBR 算法 (Bottleneck Bandwidth and Round-trip Propagation Time) 详解
BBR (Bottleneck Bandwidth and Round-trip Propagation Time) 是由 Google 开发的一种 TCP 拥塞控制算法。与传统的基于丢包的拥塞控制算法(如 Cubic, Reno)不同,BBR 专注于测量网络瓶颈带宽 (Bottleneck Bandwidth) 和往返传播时间 (Round-trip Propagation Time),并以此为基础来控制发送速率,旨在达到高吞吐量和低延迟的最佳平衡。 核心思想:基于带宽和 RTT 测量,而不是丢包,来探知网络的实际容量,从而更精准地控制发送速率,避免不必要的丢包,并充分利用带宽。 一、为什么需要 BBR?传统的 TCP 拥塞控制算法(如 Cubic、Reno)主要依赖于丢包作为网络拥塞的信号。它们的工作原理是: 不断增加发送窗口,直到出现丢包。 丢包发生后,认为网络拥塞,降低发送窗口。 循环往复,形成“锯齿状”的发送速率。 这种基于丢包的机制存在以下问题: “缓冲区膨胀” (Bufferbloat): 现代网络设备通常拥有较大的缓冲区。当网络开始拥塞时,数据包不会...
TUN 隧道详解与 HTTP/SOCKS 代理对比
TUN (Tunnel) 隧道 是一种操作系统内核模块提供的虚拟网络接口,它允许用户空间的应用程序注入和接收 IP 数据包。与传统的网络接口不同,TUN 接口没有物理硬件与之对应,而是纯软件实现的。它在 OSI 模型的网络层(第三层)进行操作,因此能够处理 IP 协议栈的完整功能。 核心思想:TUN 接口模拟了一个点对点连接的网络设备,允许应用程序以编程方式像操作物理网卡一样,来处理 IP 层的数据包。 它使得在用户空间实现复杂的网络协议栈成为可能,是构建 VPN (Virtual Private Network) 等虚拟网络技术的基石。 一、TUN 隧道概述TUN 隧道,全称为 “Tunnel” 虚拟网络接口,是一个 Linux/Unix 系统内核提供的一个机制,用于创建虚拟网络设备。这些虚拟设备允许用户空间的程序读取和写入网络层(IP 层)的数据包。当数据包被写入 TUN 接口时,它会被传递给关联的用户空间应用程序;反之,当用户空间应用程序将数据包写入 TUN 接口时,这些数据包会被内核视为从网络中接收的 IP 数据包,并根据路由表进行进一步处理。 1.1 ...
Hysteria2 详解
Hysteria2 是 Hysteria 协议的下一代版本,它是一种高性能、抗审查的代理协议,专注于在高丢包、高延迟、带宽受限的网络环境下提供稳定快速的连接。Hysteria2 在其前身的基础上进行了多项重大改进,将底层传输协议从 QUIC 升级为基于自定义 UDP 的协议栈,并引入了更灵活的流量控制和更强大的抗审查特性。其核心理念是通过高效的 UDP 传输、TCP BBR 拥塞控制算法和 TLS 加密,在恶劣网络条件下最大化可用带宽,同时保持高度的隐蔽性。 核心思想:在不可靠的 UDP 传输之上构建一个可靠的、高性能的、基于 TCP BBR 算法的传输层,并结合 TLS 加密和流量伪装,以应对高丢包、高延迟和严格审查的网络环境。 一、为什么需要 Hysteria2?传统的代理协议,无论是基于 TCP (如 Shadowsocks TCP, VLESS/Trojan over TCP+TLS) 还是基于 QUIC (如 Hysteria1),在高丢包率、高延迟的网络环境中(例如跨国长距离传输、卫星网络、受到干扰的网络)都可能表现不佳: TCP 协议的固有局限性...
QUIC (Quick UDP Internet Connections) 详解
QUIC (Quick UDP Internet Connections) 是由 Google 最早开发的一种通用的传输层网络协议,它旨在通过在 UDP 协议之上实现可靠性和安全性来加速 HTTP 流量。QUIC 合并了 TCP、TLS 和 HTTP/2 的最佳特性,并针对现代互联网环境进行了优化,解决了 TCP 的一些固有局限性。目前,QUIC 已经由 IETF (Internet Engineering Task Force) 标准化为 RFC 9000 系列,并作为 HTTP/3 的底层传输协议。 核心思想:QUIC 将 TCP 连接管理、TLS 加密和 HTTP/2 多路复用等功能集成到 UDP 上,通过 0-RTT 连接、独立流、更快的连接迁移和可插拔拥塞控制,实现了低延迟、高吞吐量和强大的安全性。 一、为什么需要 QUIC?尽管 TCP/IP 协议栈在过去几十年中支撑了整个互联网,但随着网络应用的发展和移动设备的普及,TCP 的一些固有缺陷逐渐显现出来: TCP 三次握手延迟 (3-RTT):每次建立新的 TCP 连接...
REALITY 协议详解
REALITY 是 Xray-core 团队在 2022 年底推出的一种创新型传输协议,旨在彻底解决传统代理协议在 TLS 流量伪装上面临的主动探测和 TLS 指纹识别问题。REALITY 的核心思想是“无服务器指纹,无 TLS 握手特征,无需伪装域名和证书”,它通过重用目标网站的 TLS 证书和握手,将代理流量伪装成访问真实网站的流量,从而达到前所未有的隐蔽性。 核心思想:服务器不再持有自己的 TLS 证书和域名,而是被动地作为中继,复用一个真实存在且受欢迎的 HTTPS 网站的 TLS 证书和握手,将代理流量伪装成访问该网站的流量,从而达到极高的隐蔽性,并且不再需要自签证书和伪装域名。 一、为什么需要 REALITY?尽管 VLESS+XTLS 和 Trojan 等协议已经提供了很强的隐蔽性,但它们仍面临一些挑战: TLS 指纹识别 (TLS Fingerprinting):即使使用合法证书,客户端(如 Xray 客户端)在进行 TLS 握手时,其行为模式(支持的密码套件、扩展顺序、记录大小等)可能与主流浏览器存在细微差异,形成独特的“TLS 指纹”。审查者可以分析...
TUIC (Trojan-compatible UDP over ICMP/TCP) 协议详解
TUIC (TCP User Datagram Internet Connections) 是一个创新的代理协议,旨在结合 TCP 的稳定性和 UDP 的灵活性及高效率。它基于 QUIC 协议的思想,但在用户空间实现了一套自定义的拥塞控制和可靠传输机制,运行在 UDP 端口上,并利用 TLS 1.3 进行加密。TUIC 的核心目标是提供一个高性能、低延迟、抗审查且在各种网络环境下(尤其是高丢包、高延迟)表现优异的代理解决方案,同时保持极高的隐蔽性。 核心思想:在 UDP 端口上模拟 TCP 的可靠传输和拥塞控制(但拥有更强的灵活性和性能),并融入 QUIC 的多路复用优势,所有流量均通过 TLS 1.3 加密,以实现高性能、高隐蔽性和强抗审查能力。 一、为什么需要 TUIC?在代理协议的发展历程中,TCP 和 UDP 各有优劣: TCP 协议: 优点:可靠传输、有序交付、广泛兼容性、穿越 NAT 能力强。 缺点:队头阻塞 (Head-of-Line Blocking)、拥塞控制在高丢包/高延迟环境下效率低下、握手开销大。 UDP 协议: 优点:无连接、低延...
Trojan协议详解:伪装为 HTTPS 的无状态代理协议
Trojan 是一个开源的代理协议,其核心设计理念是“伪装为最常见的 HTTPS 流量”。它通过模仿 HTTPS 流量的特征,并利用 TLS (Transport Layer Security) 的加密和认证机制,旨在实现几乎无法被识别和阻断的代理连接。Trojan 协议放弃了传统代理协议常见的复杂头部和混淆算法,转而直接将代理数据封装在 TLS 中,并强制要求使用 443 端口和合法 TLS 证书,以最大化其隐蔽性。 核心思想:将代理流量深度伪装为 HTTPS 流量,通过在 443 端口上直接利用 TLS 协议的加密会话来传输代理数据,从而使其在外部看来与正常的 HTTPS 流量几乎无异。 一、Trojan 协议的诞生背景与目标Trojan 协议的出现,是对传统代理协议(如 Shadowsocks、VMess 等)在对抗深度包检测 (DPI) 和主动探测时的局限性的一种回应。主要背景如下: 协议特征识别:许多代理协议,即使经过混淆,仍可能因其特定的协议头部、握手流程、流量模式或不符合 TLS 规范的行为而被识别。 主动探测:审查系统可能会主动连接代理服务器,发送探测包...
常见网络攻击详解与预防:构建数字安全防线
随着数字化时代的深入发展,网络已成为我们工作和生活中不可或缺的一部分。然而,伴随而来的网络攻击也日益猖獗,形式多样且破坏力巨大。理解常见的网络攻击类型及其防御方法,对于个人、企业乃至国家层面的网络安全防护至关重要。 核心思想:网络攻击的本质是利用系统、网络、应用或人为的漏洞,破坏信息资产的机密性、完整性、可用性。有效的防御需要结合技术防护、安全管理和人员意识培训。 一、网络攻击概述网络攻击是指以获取、破坏、更改、禁用、窃取或秘密访问计算机系统、基础设施、计算机网络或链接设备为目的的恶意行为。攻击者利用各种技术手段,针对不同层面的漏洞发起攻击,以达到其非法目的。 1.1 攻击目标 数据 (Data):窃取敏感信息(用户数据、商业机密、知识产权),篡改数据,删除数据。 系统/应用 (Systems/Applications):破坏服务可用性(拒绝服务)、获取系统控制权、植入恶意代码。 网络 (Network):瘫痪网络基础设施、监听网络流量、劫持通信。 用户 (Users):欺骗、诱导用户泄露信息(钓鱼)、传播谣言或虚假信息。 1.2 攻击动机 经济利...
XTLS (eXtended TLS) 详解
XTLS (eXtended TLS) 是 Xray-core 提出的一种创新性传输协议,旨在解决传统代理方案中 TLS 双重加密带来的性能损耗,同时保持甚至增强流量的隐蔽性。XTLS 的核心思想是优化 TLS 加密过程,只对必要的数据进行加密,避免重复加密,从而提高代理的性能和降低资源占用。 核心思想:避免 TLS 双重加密,直接复用 TLS 握手后的加密会话,将代理协议数据直接封装在 TLS Payload 中,从而实现高性能且隐蔽的传输。 一、为什么需要 XTLS?在 VLESS+WS+TLS 或 VMess+WS+TLS 等传统代理方案中,数据流通常会经历双重加密: 代理协议自身加密:例如,VMess 协议会对数据进行加密(VLESS 自身不加密,但通常会与其他加密方案结合)。 传输层 TLS 加密:WebSocket 流量再通过 TLS 进行加密,形成 代理协议数据 -> WS 帧 -> TLS 记录 的封装。 这种双重加密虽然增强了安全性,但带来了以下问题: 性能损耗:加密和解密操作是 CPU 密集型的,双重加密会显著增加 CPU 负担,尤其...
VLESS+WS+TLS 代理方式详解
VLESS+WS+TLS 是一种高效、安全且隐蔽的代理组合方案,广泛应用于突破网络审查和实现隐私保护。它结合了 VLESS 协议的轻量和高性能、WebSocket (WS) 的伪装能力以及 TLS 的加密和流量混淆特性。这种组合使得代理流量在网络传输中难以被检测和干扰,提供了良好的稳定性和抗封锁能力。 核心思想:VLESS 负责高效数据传输,WebSocket 将代理流量伪装成正常的网页浏览流量,TLS 提供端到端加密和证书认证,三者结合形成一个难以被识别、安全且高性能的代理通道。 一、各组件详解1.1 VLESS 协议VLESS 是一种由 Xray-core 开发的轻量级代理协议。它旨在提供比 VMess 更简单、更高效的数据传输,并减少协议开销。 特点: 无状态 (Stateless):与 VMess 不同,VLESS 不包含复杂的握手和会话管理,减少了协议开销。 高性能 (High Performance):由于协议简单,数据传输效率高。 透明性 (Transparency):VLESS 可以相对透明地传输数据,不进行额外的加密或混淆(通常与 TLS 或 XTL...
Dokodemo-door 协议详解
Dokodemo-door (任意门) 是 V2Ray (Project V) 中一个特殊的 Inbound (入站) 代理协议。它的设计灵感来源于哆啦A梦的“任意门”,主要作用是将指定端口或 IP/端口范围的所有流量透明地转发到预设的目标地址。与 SOCKS、HTTP 等常见的代理协议不同,Dokodemo-door 不期望客户端发送任何代理协议头信息,而是直接捕获并处理原始的 TCP/UDP 流量。 核心思想:透明地拦截并重定向指定端口/IP 的网络流量,无需客户端配置代理,实现“强制代理”或“透明代理”的效果。 一、Dokodemo-door 的工作原理与用途Dokodemo-door 协议本身并不是一个用于客户端与 V2Ray 服务端通信的“伪装”或“加密”协议(如 VMess、VLESS、Trojan)。它是一个入站协议 (Inbound Protocol),这意味着它在 V2Ray 的服务器端或本地代理端接收流量。 1.1 工作原理当配置了 Dokodemo-door Inbound 时,V2Ray 会监听指定的端口和/...
VLESS协议详解:下一代无状态加密传输协议
VLESS 是一种由 Xray-core 团队设计和实现的代理协议,旨在提供一种简洁、透明且高性能的传输方式。与 VMess 等协议不同,VLESS 自身不包含任何加密或混淆功能,它将这些任务委托给传输层(如 TLS, WebSocket)来完成。VLESS 的核心理念是“不加密,不混淆,只传输”,它极大地减少了协议自身的开销,从而带来了更快的速度和更低的资源占用。 核心思想:将协议开销降到最低,只负责将客户端的流量“透明”地转发给目标服务器,而将加密和混淆的重任完全交给底层的传输协议(如 TLS、WebSocket)。 一、VLESS 协议的诞生背景与目标VLESS 协议的诞生,是对 VMess 协议以及其他一些传统代理协议的反思和改进。它主要为了解决以下问题: 双重加密的性能损耗: 许多代理协议(如 VMess)自身会进行数据加密和混淆。 当这些协议再叠加 TLS(HTTPS)等传输层加密时,就会形成“双重加密”,导致不必要的 CPU 消耗和延迟。 协议特征暴露: 复杂的协议自身往往会产生固定的“指纹”或特征,可能被深度包检测 (DPI) 识别并封锁。 协议越简...
VMess协议详解:V2Ray核心加密代理协议
VMess 是 V2Ray 项目最初开发的一款加密传输协议,也是 V2Ray 的核心协议。它旨在提供一个安全、高效、高匿名性的代理传输方式,以应对复杂的网络审查环境。VMess 协议在设计时考虑了多种加密和混淆方案,并支持多种底层传输协议(如 TCP、WebSocket、mKCP 等),使其在各种网络环境下都具备较强的适应性和抗审查能力。 核心思想:VMess 协议通过复杂的协议头、多重加密机制和灵活的传输配置,实现在客户端和服务器之间建立一个加密且相对隐蔽的通信隧道,以达到绕过网络审查、保护用户隐私的目的。 一、为什么需要 VMess?传统的代理协议(如 SOCKS5、HTTP 代理)或简单的 VPN 协议(如 PPTP)在安全性和抗审查方面存在不足: 缺乏加密:数据明文传输,容易被监听和审查。 协议特征明显:协议固有的特征容易被防火墙识别和封锁。 安全性弱点:认证机制不够完善,易受到攻击。 VMess 协议旨在解决这些问题,提供一个增强安全性、抵抗审查、且高度可配置的代理方案。 二、VMess 的核心特性与机制VMess 协议的设计复杂而精妙,主要包含以下核心特性...
ICMP 协议详解
ICMP (Internet Control Message Protocol),互联网控制消息协议,是 TCP/IP 协议族中的一个核心协议。它主要用于在 IP 主机和路由器之间传递控制消息,这些控制消息可以报告数据报的处理错误,或者提供诊断信息。与 IP 协议的“尽力而为”特性不同,ICMP 为网络层提供了基本的错误报告和查询功能,但它本身并不能修复错误,只是提供一个通知机制。ICMP 消息被封装在 IP 数据报中传输,不提供可靠性保证。 核心思想:作为 IP 协议的“辅助”协议,ICMP 在网络层提供错误报告和诊断功能,帮助网络设备了解网络状态。 一、为什么需要 ICMP?IP 协议是一个无连接、不可靠的“尽力而为”的网络层协议。这意味着 IP 数据报在传输过程中可能丢失、重复、乱序,并且没有任何机制通知发送方这些问题。如果仅仅依赖 IP 协议,当数据报遇到各种网络问题(如目标不可达、路由循环、TTL 超时等)时,发送方将无从得知其数据报的命运。 ICMP 协议的引入正是为了弥补 IP 协议的这一不足: 错误报告 (Error Reporting):当...
Shadowsocks(SS)详解:轻量级加密代理协议
Shadowsocks (SS) 是一个开源的SOCKS5 代理协议,由 @clowwindy 于 2012 年开发。它专门设计用于穿透网络审查,并保护用户隐私。与传统 VPN 不同,Shadowsocks 采取了轻量级的加密和混淆机制,旨在让代理流量看起来不那么“突出”,从而避免被网络防火墙识别和阻断。其简洁高效的设计概念,使其一度成为最流行的科学上网工具之一。 核心思想:Shadowsocks 通过特定的加密算法对SOCKS5代理流量进行加密,并通常通过在TCP层提供一个“看起来像随机数据”的加密层,来隐藏其代理本质,而非像 VPN 那样建立一个完整的隧道。 一、为什么需要 Shadowsocks?传统的 VPN 协议,如 PPTP、L2TP/IPSec 等,虽然能提供加密和匿名性,但在严格的网络审查环境下,其协议特征容易被防火墙识别和阻断。许多早期 VPN 服务商采用的 PPTP 协议甚至因为安全性弱点而不再被推荐。 Shadowsocks 旨在解决以下问题: 协议特征明显:传统 VPN 协议的握手和数据包结构特征明显,容易被防火墙识别。 性能开销:完整...
FRP (Fast Reverse Proxy) 详解
FRP (Fast Reverse Proxy) 是一个高性能的内网穿透和反向代理工具,它允许您将位于内网(局域网)中的服务(如 Web 服务器、SSH、数据库等)通过一台具有公网 IP 的服务器暴露给公网用户访问。在当前 IPv4 地址资源日益紧张,许多家庭和小型办公室难以获取公网 IP 的背景下,FRP 提供了便捷、高效的解决方案。 核心思想:FRP 通过在公网服务器上运行一个 frps (服务端) 和在内网机器上运行一个 frpc (客户端) 来建立连接。内网流量经由 frpc 转发到 frps,再由 frps 转发到公网用户,实现内网服务的公网访问。 一、为什么需要 FRP?在许多场景下,我们需要从外部网络访问位于内网的服务,但常常面临以下问题: 没有公网 IP:大多数家庭宽带用户和一些小型企业用户不再拥有独立的公网 IPv4 地址。他们处于运营商的 NAT (Network Address Translation) 之后,无法直接从外部访问内网设备。 端口转发困难:即使有公网 IP,也可能需要手动在路由器上配置端口转发规则,这对于不熟悉网络配置的用户来说可能比...
HTTP Upgrade 请求详解
HTTP Upgrade 请求 是一种特殊的 HTTP/1.1 机制,允许客户端和服务器在已经建立的 TCP 连接上,将当前协议从 HTTP/1.1 切换到另一个不同的、更高级别的协议。最常见的应用场景是将 HTTP 连接升级到 WebSocket 协议,从而实现全双工、低延迟的持久连接。 核心思想:Upgrade 请求是 HTTP/1.1 中用于协议协商的机制,允许在一个已有的 TCP 连接上,在客户端和服务器都同意的情况下,从 HTTP 切换到其他协议,避免了重新建立连接的开销,并开启更强大的通信模式。 一、为什么需要 HTTP Upgrade?HTTP/1.0 和 HTTP/1.1 都是无状态的请求-响应协议。对于每个请求,客户端发送请求,服务器发送响应,然后连接可以关闭(非持久连接)或保持一段时间用于后续的 HTTP 请求(持久连接,Keep-Alive)。 这种请求-响应模式对于传统的 Web 页面浏览非常高效。然而,随着 Web 应用复杂度的增加,许多场景需要更高级的通信模式: 实时通信:聊天应用、在线游戏、...
WebSocket 详解:实现全双工实时通信
WebSocket 是一种在单个 TCP 连接上进行全双工(Full-Duplex)通信的网络协议。它在 Web 浏览器和服务器之间提供了一个持久化的连接,允许双方在任何时候发送消息,而无需像传统的 HTTP 请求那样需要先发送请求再接收响应。WebSocket 解决了传统 Web 应用中实现实时通信的诸多难题,是构建实时 Web 应用的关键技术之一。 核心思想:从 HTTP 协议“握手”后,将底层 TCP 连接“升级”为 WebSocket 连接,实现客户端与服务器之间长时间、双向、无阻塞的消息传输,从而大幅降低通信开销,提升实时应用的性能。 一、为什么需要 WebSocket?传统 HTTP 的局限性在 WebSocket 出现之前,Web 应用程序要实现实时通信,如聊天室、股票行情、在线游戏、推送通知等,面临着传统 HTTP 协议的固有局限性: 半双工 (Half-Duplex) 通信:HTTP 协议是单向请求-响应模型。客户端发送请求,服务器返回响应。服务器无法主动向客户端发送消息,除非客户端先发起请求。 效率低下: 频繁连接建立与断开:每个 HTTP 请求都需...
网络编程中“流”的详解
在计算机网络编程中,“流 (Stream)”是一个非常核心且抽象的概念,它通常用来描述数据在两个实体之间进行传输时,数据流动的抽象表示。尤其在基于 TCP 协议的网络通信中,“流”的概念至关重要,它模拟了数据的顺序传输和持续性连接。理解“流”有助于开发者更好地掌握网络数据传输的本质,并编写出健壮、高效的网络应用程序。 核心思想:网络编程中的“流”是一种抽象,表示数据像水流一样顺序、持续地从一个端点流向另一个端点,封装了底层网络传输的复杂性。 一、什么是“流”?在网络编程中,“流”可以被理解为: 数据的有序序列 (Ordered Sequence of Data):数据被发送时按照发送的顺序到达接收方,不会乱序。 持续的数据传输通道 (Continuous Data Flow Channel):它代表了客户端与服务器之间建立的一种逻辑连接,数据可以在这个连接上持续不断地传输,就像水流一样。 抽象的读写接口 (Abstract Read/Write Interface):开发者通过操作流接口(例如 read()、write()),而不必关心底层数据的分段、组装、路...
IPSec (Internet Protocol Security) 详解
IPSec (Internet Protocol Security) 是一套在 IP 层 (网络层) 提供安全服务的协议族。它不依赖于任何特定的应用程序,而是通过加密和认证 IP 数据包在网络中安全传输。IPSec 广泛应用于构建 VPN (Virtual Private Network - 虚拟专用网络),为远程用户、分支机构和云资源提供安全的、端到端的通信。它提供了数据完整性、数据源认证、防重放保护以及数据机密性等关键安全服务。 核心思想:IPSec 通过在网络层透明地加密和认证 IP 数据包,为 IP 通信提供端到端的安全保障,是构建安全 VPN 和保护 IP 流量的核心技术。 一、IPSec 概述1.1 什么是 IPSec?IPSec 是由 IETF (Internet Engineering Task Force) 定义的一整套开放标准的协议族,它工作在 OSI 模型的网络层 (Layer 3)。其核心目标是为 IP 通信提供高级安全功能,而无需修改应用程序。 1.2 为什么需要 IPSec?传统的 IP 协议本身无法提供数据的机密性、完整性或认证。数据在公共网...
