Preface I recently traveled to Taipei for the ACM CCS 2025. It’s been 14 years since my last…
惊人的 IOMMU Overhead 与不合理的 AQC 网卡驱动
背景 给家里的 AMD AI MAX 395 小主机加了个 Thunderbolt 万兆网卡,期望给这台小主机通上 10Gbps 的信息高速公路,这样我可以利用家里的 NAS 的大容量存储快速拉 LLM ,网卡用的是几年前买给 Mac 用的 QNAP…
非原生 eSIM 手机出国旅游 eSIM 使用指北
背景 最近两个月去了法国和日本开会,发现 eSIM 在旅游时使用非常方便,我们可以直接在网上购买旅行 SIM 卡套餐然后扫码下载,主要好处包括: 套餐自由选择,可以按照自己最低需求购买低价套餐,不必担心部分 SIM 卡无法流量充值的问题,不够用就随时再买一张 低可用性风险,遇到问题随时可以下载新的 SIM 卡使用,不必等待快递或是出门找商店 灵活切换运营商,遇到某个运营商信号不好,此时有其他运营商 eSIM 时,可以在手机上点击菜单直接完成切换,而无需带着取卡针更换实体 SIM 卡 (比如我们去…
网络设备(特指 TP-Link)距离正确处理 IPv6 Fragmentation 还有多远
背景 过年在外婆家住了几天,因为这里没有装宽带于是带上了 5G CPE ,以及随便购买了 TP-Link 7DR3630 路由器(现已退货换其他产品) ,为几天后外婆家安装宽带做好准备。由于我的大部分工作数据放在家里的服务器上,出于习惯一般喜欢连接 WireGuard VPN 回家。而连接公共 WiFi 时我一般习惯加上默认路由到 VPN ,结果今天回到外婆家里连着 5G CPE…
在 5G NR 时代,我们真的该大规模部署 TCP BBR 了
背景 自从 Speedtest.net 在 2 年前增加了下载与上传时的 ping 测试后,我们往往会在 LTE / 5G 上观测到其下载和上传占满空口带宽后出现了延迟大幅飙升的情况,而这一情况在使用 WiFi 时影响非常小,但在使用基于 10G EPON / XGPON的有线ISP(有限速)中几乎不存在。这就导致我们使用…
让树莓派4 WireGuard 性能从 400Mbps 飞涨到 1Gbps
背景 由于学校机房依然需要网络认证,因此我采用了使用 WireGuard 从别处接入网络的方式。为了评估放在学校机房的软路由需要什么样的性能才足够跑满千兆大包 WireGuard ,上周末写了个 WireGuard Benchmark 脚本 来评估 CPU 以及 Kernel 网络栈处理 WireGuard 的性能。为了方便评估以取得更多的结果,我采用 network namspace…
自己家的全屋光纤与无线覆盖布网实战
原则与实战结果 自己家今年搬入了新居,对于我来说一件十分重要的事情就是规划网络布线了。 我计划按照以下原则布置网络: 每个房间都有 4 芯光纤,确保以太网使用 2 芯之后还有 2 芯可用,从而可以接 HDMI 光端机等设备以及出现断芯等情况后可以替换。 有人活动的位置 5GHz WiFi RSSI <= -65…
第一次在国内航班体验机上WiFi
于 2023 年 8 月 3 日乘坐了厦门航空的 MF8208 从西安飞往厦门,执飞飞机是一架 BOEING 787-8 宽体型客机,上飞机后惊奇地发现座位旁有 WiFi 图标,而在地面上我拿手机搜索了一圈并没有看到任何非个人热点的 SSID 。但我依然非常期待,因为距离上一次在空中上网已经是2014年在美国使用 gogoinflight 了。…
使用CONNMARK解决Linux上源进源出问题
FWMARK是啥? FWMARK是Linux在处理网络数据包的时候给数据包加上的一个标识,我们可以根据fwmark配置不同的转发规则。 作用域 FWMARK作用于单个数据包。 比如我们可以采用ip rule add fwmark 0x1234 lookup 456这样,让被mark为0x1234的数据包查询路由表456出去。 由于FWMARK是针对单个PACKET而言的,因此在下文中我们所指的Packet Mark与这里的FWMARK相同。 如何给出去/进来的数据包设置FWMARK? 如果要对服务器外出连接设置fwmark,可以使用socket,可以通过setsockopt来设置数据包的MARK,详见这里。 如果要对于某个Wireguard网卡的流入数据包设置fwmark,可以使用wg set $WG_IFACE…