<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>网络协议 on 豆子技术站</title><link>https://blog.91demo.top/tags/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE.html</link><description>Recent content in 网络协议 on 豆子技术站</description><generator>Hugo -- 0.155.1</generator><language>zh-cn</language><lastBuildDate>Tue, 10 Feb 2026 07:05:33 +0000</lastBuildDate><atom:link href="https://blog.91demo.top/tags/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/index.xml" rel="self" type="application/rss+xml"/><item><title>网络协议新纪元：基于 Go 语言实现支持 Ed25519 加密的 QUIC 高性能通信实战</title><link>https://blog.91demo.top/go/quicgo.html</link><pubDate>Tue, 10 Feb 2026 07:05:33 +0000</pubDate><guid>https://blog.91demo.top/go/quicgo.html</guid><description>&lt;h2 id="1-为什么是-quic从-tcp-的瓶颈说起"&gt;1. 为什么是 QUIC？从 TCP 的瓶颈说起&lt;/h2&gt;
&lt;p&gt;手机在 Wi-Fi 和 4G/5G 之间切换（即“切网”）导致 TCP 连接断开，是移动互联网开发中的经典痛点。&lt;/p&gt;
&lt;p&gt;TCP 连接是基于源 IP、源端口、目的 IP、目的端口这“四元组”来标识的。当你从 Wi-Fi 切换到 5G 时，手机的 IP 地址发生了变化，旧的四元组立即失效，TCP 必须重新进行三次握手建立新连接，正在传输的数据（如视频缓冲、下载）就会中断。&lt;/p&gt;
&lt;p&gt;QUIC 引入了 Connection ID 的概念。它不依赖于底层 IP 地址。只要 CID 不变，即便你的 IP 从 A 变成了 B，服务端依然能通过 CID 认出：“噢，你还是刚才那个客户端！”。这样对于业务层完全无感知，数据传输无缝继续。这就是所谓的 “连接迁移 (Connection Migration)”。&lt;/p&gt;
&lt;p&gt;除了切网，QUIC 在弱网（丢包率高、延迟高）下更强的原因在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;改进的拥塞控制： QUIC 在应用层实现，可以更激进地进行丢包恢复。&lt;/li&gt;
&lt;li&gt;无队头阻塞： 在 TCP 中，丢一个包全家等死；在 QUIC 中，你刷朋友圈的图丢了一个包，不会影响你接收聊天消息的流。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-go-库quic-go-简介"&gt;2. go 库&lt;a href="https://github.com/quic-go/quic-go"&gt;quic-go&lt;/a&gt; 简介&lt;/h2&gt;
&lt;p&gt;这是Go的库，在 Go 语言世界里，quic-go 是事实上的标准实现。它不仅完整实现了 IETF QUIC 协议，还提供了类标准库 net 的简洁接口。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connection (连接)： 代表两个端点之间的 UDP 隧道。&lt;/li&gt;
&lt;li&gt;Stream (流)： 连接内部的逻辑通道，双向且独立。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-证书准备使用-openssl-生成-ed25519-证书"&gt;3. 证书准备：使用 OpenSSL 生成 Ed25519 证书&lt;/h2&gt;
&lt;p&gt;为了极致的性能与安全，弃用了传统的 RSA，选择 Ed25519 算法。它的签名速度更快，密钥更短。&lt;/p&gt;</description></item></channel></rss>