Recent Posts
-
2022-05-03
让TCP容忍丢包
声明: 本文所描述的方案未经验证, 只是单纯的个人想法而已 :)网络上看到一个问题: 如何提升高丢包率环境的 TCP 传输性能第一反应是, 既然已经高丢包环境了, 就不要再奢求太多, 毕竟 TCP 所有的”降速”, “重传”等手段都是为了报文能”完整”抵达终点.除非, TCP 愿意付出一些代价, 比如放宽一些条件: 比如忍受部分报文能被丢弃…在完美主义者眼中, 可能已经指着鼻子骂了: 允许丢弃, 这还是 TCP 吗 ?!这确实违背了 TCP 的”可靠传输”的原则。不过,这并不妨碍其具...
-
2022-04-19
一个 qdisc 引起报文阻塞问题
问题现象使用 (fortio)[https://github.com/fortio/fortio] 进行时延测试,有概率出现 target999 的时延超出正常范围。 测试设置并发数 c=8, qps=16, 即一共使用8条连接, 每条连接的qps=2 (每500ms发送一次http请求)ip netns exec busybox-n213 taskset -c "12-23" fortio load -c 8 -qps 16 ............> 0.00055 <=...
-
2022-04-11
VPP: 跨进程 resueport
本系列文章仅为学习使用 VPP 过程中的一些自用笔记VPP 的 reuseport 的机制和内核有较大区别, 主要表现为 始终使能同一个进程不同线程之间的resueort, 不支持不同进程的reuseport内核 reuseport 机制内核的 reuseport 机制经过多次(演进)[https://switch-router.gitee.io/blog/reuseport], 最终以 reuseport group 为基础实现:内核将监听同一个地址端口(打开reuseport)的套...
-
2022-04-11
VPP: NAT
本系列文章仅为学习使用 VPP 过程中的一些自用笔记VPP 的 NAT 功能是针对网关设备设计的VPP 的 NAT 功能是针对网关设备设计的, 它的其中一端连接 local 网络(这一侧的接口称为 inside 口),另一端连接 external (这一个侧的接口称为 outside 口)。根据报文的方向,流量可分为左图中的 in2out 和右图中的 out2in ,in2out 做 SNAT, out2in 做 DNATVPP NAT 的位置VPP 中 SNAT 和 DNAT 的位置...
-
2022-04-11
VPP: fifo-segment
本系列文章仅为学习使用 VPP 过程中的一些自用笔记VPP 中的 fifo 是什么在 VPP/VCL HostStack 模型中,fifo 是作为连接(session)的发送缓冲区和接收缓冲区存在的.发送方向,应用通过 VCL 将数据塞入txfifo, VPP 从 txfifo 中读取;接收方向,VPP 将收到报文塞入连接的 rxfifo, 应用通过 rxfifo 读取数据.fifo 本质上是一段VPP进程和APP进程都可以访问的共享内存,并且,它总是以 fifo pair 的形式成对...