1. 涉及到的虚拟网络设备 bridge:网桥,可以理解为交换机。不同于传统的二层硬件交换机,bridge 可以配置 IP、具有三层能力,可作为端点 、网关。 veth:虚拟以太网设备,总是成对创建(故也称为 veth pair),可以理解为虚拟的网线。是以太网设备形式的数据管道,从一端发送的数据会立刻出现在另一端,支持跨 namespace 。作…
早期云计算时代,虚拟机爆发增长带来的需求:虚机要能在不同的物理宿主机间无缝迁移。无缝迁移,即现有的 TCP/UDP 连接不能断开,这就要求迁移前后 IP 和 MAC 地址不能改变。 早期的方案是在二层上打补丁,即 VLAN,但是由于协议设计时的局限性,划分数量的上线仅 4096,不再满足持续增长的需求。最终演化出了 VXLAN 技术,即在真实的三层…
1. tcp contains 语法: tcp contains "xxx" 可以用来检索出 payload 中含有 xxx 的抓包。在检查特定接口的访问时非常有用。 2. tcptrace 图的观察 极好的入门文章:https://www.packetsafari.com/blog/2021/10/31/wireshark-t…
https://github.com/EtherDream/js-port-knocking
内核中的两个存放连接信息的队列。存放的连接元数据,四元组、MSS、window scale 等。 其用途简单来说: 收到 SYN 以后放进 SYN queue(半连接队列) 收到 ACK 以后放进 Accept Queue(全连接队列) 用户进程调用 accept() 以后,从 Accept Queue 中取出 ![[synqueue.png]] …
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…
1. +trace 不带有 +trace 的 dig 则是直接向 local dns 服务器发起查询。 带有 +trace 的 dig 命令是走的迭代查询,即先获取根 dns 服务器地址,然后向其发起查询获取对应的顶级域名 dns 服务器地址,如此循环下去直到最终查到结果。 举个实测对 cococat.top 进行查询的例子: dig 向 loca…
1. 基本结构 入口类型 ConnectionPool 由一个 Hashmap pool 和一个 lru Lru 组成。 /// Connection pool /// /// [ConnectionPool] holds reusable connections. A reusable connection is released to this…
1. 前言 本篇在知识覆盖完整度上可能不如网上一些高质量的面试题整理,但是可以保证解答文本的简明扼要,容易理解记忆,可以结合较全的整理使用。 2. OSI 7层协议栈 名称 描述 常见协议 标识方法 报文 应用层 应用间的通信 HTTP SMTP FTP DNS / HTTP请求/响应报文 表示层 数据的编解码,加解密 JPEG,MPEG / 会话…