分类: 网络

9 篇文章

openclaw 踩坑
1. discord 代理问题 默认情况下 Openclaw 访问 discord 需要用到 node 的一些网络库,这些网络库不吃 system proxy 的环境变量。此时的常规解决办法是开 TUN;但是如果你的系统上有安装 tailscale,或者你是在 wsl 里跑 Openclaw,则事情就会变得非常复杂了。 幸而,现在 Openclaw…
容器网络笔记
1. 涉及到的虚拟网络设备 bridge:网桥,可以理解为交换机。不同于传统的二层硬件交换机,bridge 可以配置 IP、具有三层能力,可作为端点 、网关。 veth:虚拟以太网设备,总是成对创建(故也称为 veth pair),可以理解为虚拟的网线。是以太网设备形式的数据管道,从一端发送的数据会立刻出现在另一端,支持跨 namespace 。作…
VXLAN 的一些为什么
早期云计算时代,虚拟机爆发增长带来的需求:虚机要能在不同的物理宿主机间无缝迁移。无缝迁移,即现有的 TCP/UDP 连接不能断开,这就要求迁移前后 IP 和 MAC 地址不能改变。 早期的方案是在二层上打补丁,即 VLAN,但是由于协议设计时的局限性,划分数量的上线仅 4096,不再满足持续增长的需求。最终演化出了 VXLAN 技术,即在真实的三层…
wireshark 笔记
1. tcp contains 语法: tcp contains "xxx" 可以用来检索出 payload 中含有 xxx 的抓包。在检查特定接口的访问时非常有用。 2. tcptrace 图的观察 极好的入门文章:https://www.packetsafari.com/blog/2021/10/31/wireshark-t…
SYN Queue & Accept Queue
内核中的两个存放连接信息的队列。存放的连接元数据,四元组、MSS、window scale 等。 其用途简单来说: 收到 SYN 以后放进 SYN queue(半连接队列) 收到 ACK 以后放进 Accept Queue(全连接队列) 用户进程调用 accept() 以后,从 Accept Queue 中取出 ![[synqueue.png]] …
TCP 杂记
1. TCP_NODELAY 和 TCP_QUICKACK 1.1. Nagle's Algorithm 现代的 Linux kernel 的网络协议栈中默认启用的算法,也是粘包产生的原因之一。 根据算法文档,原版的 Nagle 算法可以简要表达为: If a TCP has less than a full-sized packet to tra…
DSCP
简明重点 是一个网络层概念 在网络层报文头中,DSCP 占 6 个 bit,和 ECN (Explicit Congestion Notification,显式拥塞通知)的 2 个 bit 一起组成一个字节 从协议的角度,IPv4 和 IPv6 都是支持的。IPv6 头的 Traffic Class 也就是用于 DSCP+ECN Ref https…
Linux TSO: Tcp Segmentation Offload 笔记
原文: https://www.cnblogs.com/sammyliu/p/5227121.html 简而言之:在网卡硬件支持的情况下,由网卡进行本由内核协议栈负责的 TCP segmentation,从而减少内核的负担,提高系统性能。 要进行 TCP Segmentation 的原理:由于链路层存在 MTU 的限制,网络层相应地也有 MSS 的…
dig 杂记
1. +trace 不带有 +trace 的 dig 则是直接向 local dns 服务器发起查询。 带有 +trace 的 dig 命令是走的迭代查询,即先获取根 dns 服务器地址,然后向其发起查询获取对应的顶级域名 dns 服务器地址,如此循环下去直到最终查到结果。 举个实测对 cococat.top 进行查询的例子: dig 向 loca…