Switch-Router

Recent Posts

  • 2025-03-27

    dlmalloc 原理分析

    简介dlmalloc 全称是 Doug Lea’s Malloc, 它是由 Doug Lea 开发的经典 memory allocator, 被广泛运用在其他开源软件或库, 如 VPP、SQLite、uClibc、RT-Thread 等.从实践上看, 它具有以下优点: 多线程无锁分配: 它通过线程本地存储(TLS)或私有堆(per-thread-heap)实现完全无锁分配. 元数据开销最小化: 它的元数据结构十分简洁, 额外开销甚少, 非常适合应用于资源受限环境. ...

  • 2024-11-15

    网络封锁与反封锁

    前言近日, 俄罗斯政府将 discord 进行了网络封锁, 其国内用户不再能直接使用该软件, 除非使用科学上网软件或者将网络流量进行一些伪装.在搜集学习了一些相关资料后, 今天将一些读后所得记录于此, 以免以后忘掉.正文不同国家地区封锁的范围和策略并不相同。以我国为例, 除了国家层面大名鼎鼎的GFW外, 小到一些运营商或者校园网络都可能进行一些网络流量干扰或阻断.干扰的方式一般是对特定网络流量进行限制. 这些流量可能是以下条件的单独一项或者多项的组合:type1.访问特定目的IP地址typ...

  • 2024-09-17

    P2P游戏通信原理与STUN/TURN协议笔记

    本文用于记录个人学习P2P游戏通信过程中的心得体会。两种网络拓扑 CS vs P2P网络游戏一般采用两种网路拓扑之一: CS(Client-Sever) 或 P2P(Peer-to-Peer)在采用 CS 网络拓扑的游戏中, 各个玩家客户端都是与中心服务器进行网络通信, 这类游戏的游戏逻辑处理和计算都在服务端, 典型的例子如 PUBG、LOL、DOTA2、CS2 等.而 P2P 网络拓扑的游戏则不一样, 各个玩家通常是与一名玩家(房主)建立网络连接, 再由房主进行网络流量中转和分发。这个过...

  • 2024-07-16

    XDP 接收报文实践

    现代网卡能接收处理报文的极限通常会超过单个 CPU 能能力, 此时具有硬件 RSS 功能的网卡来对接收到的流量进行分流, 以将负载分发给不同的 CPU,然而, 如果网卡不具有硬件 RSS 功能或者流量不符合 RSS 支持的类型 (比如我们想根据报文的非常规字段设计自定义的 CPU 分发规则) 时, 就需要另想办法.这里, eXpress Data Path(XDP) 就是一个可选方案, 我们可以利用 XDP 实现可编程的 RSS, 以及其他更多功能….XDP 的基本原理是在报文接收方向,...

  • 2024-01-15

    linux 内核实现与 rfc 不一致的地方

    本文后续不定时更新SYN 报文是否能携带 payload (不考虑 TCP FastOpen)TCP Fast Open(TFO)TCP ISN 递增速度理解 TCP 初始序号选择(ISN Selection)TCP TIME-WAIT 时间tcp_tw_reuse 的原理和实现TCP MSS 协商Linux内核协议栈中一些关于 TCP MSS 的细节rfc 接收端糊涂窗口综合征 vs 内核首部预测一个 TCP 接收缓冲区问题的解析本文不定时更新