自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 OVS学习

记录下找到的OVS学习资料,方便以后查看:https://docs.openvswitch.org/en/latest/https://arthurchiao.art/blog/ovs-deep-dive-0-overview/https://github.com/openvswitch/ovs/blob/main/Documentation/tutorials/ovs-advanced.rst。

2025-04-03 14:23:21 168

原创 cesium前台踩坑记录

最近接手一个前台使用cesium的项目,由于没有经验,记录下过程中的坑点,避免以后再踩坑。

2025-03-26 17:03:48 190

原创 docker常用操作记录

记录下个人学习容器的相关操作,方便后续查找。

2025-03-23 12:03:02 196

原创 XDP + VPP方案探究

我们验证了XDP + VPP方案是可行的,但文章示例只是说明可行性。这种方式相比DPDK独占网卡,提供了更高的灵活性。更深的使用欢迎大家一起探讨学习。

2025-03-14 11:31:07 343

原创 探寻TCP连接建立之初ssthresh的大小

(如65535字节),以便充分探索可用带宽。其核心目标是平衡探测效率与拥塞风险,直到首次拥塞事件触发动态调整。具体数值因操作系统和TCP实现而异,但逻辑一致:通过高初始阈值最大化早期吞吐量,随后依赖网络反馈逐步优化。TCP连接建立之初的慢启动阶段(cwnd = IW),ssthresh取值多少呢?在TCP拥塞控制的慢启动阶段,初始的慢启动阈值(,窗口按线性增长(每RTT增加1个MSS)。会被更新为当前拥塞窗口(在TCP慢启动阶段,

2025-03-04 11:27:13 739

原创 详解TCP拥塞控制中的快速恢复

快速恢复是TCP拥塞控制算法(如Reno、NewReno)的关键机制之一,旨在减少因部分丢包导致的吞吐量骤降。它通过优化传统TCP Tahoe的“超时重置窗口”策略,在检测到部分丢包时保持网络中的数据流,从而更高效地恢复传输。以下是其核心原理和实现细节:假设,发生单个数据包丢失:快速恢复通过以下机制优化TCP性能:它是现代TCP实现(如Reno、NewReno)的核心组件,显著提升了网络在高丢包环境下的稳定性和效率。后续算法(如CUBIC、BBR)进一步针对高带宽时延积网络优化,但快速恢复的基本思想仍是拥塞

2025-03-03 21:33:36 922

原创 TCP协议中syn与ack处理机制的差异

SYN和ACK报文段在序列号处理上的差异,反映了它们在连接建立和数据确认过程中的不同角色。它的核心作用是同步双方的初始序列号(ISN, Initial Sequence Number),确保后续数据传输的有序性。若每个ACK都需确认,会引入额外的握手(如“确认的确认”),降低效率。如果SYN丢失或ACK丢失,发送方会重传SYN,确保连接建立的可靠性。这意味着SYN需要被可靠传输,若未收到确认(ACK),发送方会触发超时重传。中,SYN部分会消耗一个序列号(服务器的ISN),但ACK部分不消耗序列号。

2025-02-27 15:33:32 483

原创 AF_XDP Multi-Buffer的介绍

启用 AF_XDP 的多缓冲区支持需双重配置用户空间:绑定套接字时添加XDP_USE_SG标志。内核空间:XDP 程序使用xdp.fragssection 声明支持。此机制扩展了 AF_XDP 对复杂网络流量的处理能力,适用于高性能网关、DPI 等场景。开发者需权衡处理复杂度与内存效率,确保分片组装逻辑的正确性。

2025-02-25 11:11:03 915

原创 XDP_USE_NEED_WAKEUP的解释

通过将控制权交给用户空间,实现了内核与用户空间的高效协作。它在牺牲少量延迟的情况下,显著降低了 CPU 开销,是构建 100Gbps+ 高性能网络应用的基石技术之一。正确使用此标志需要结合业务场景,平衡吞吐量、延迟和资源利用率。

2025-02-24 17:52:55 597

原创 xdp-tutorial packet03-redirecting中Assignment2的理解和思考

packet03-redirecting中的assignment2一直没理解是什么意思,困扰了好几天。

2025-02-15 16:29:02 97

原创 《Linux内核观测技术BPF》学习笔记 (四)

正常显示了每秒收到的各ip协议数据包的数量。为什么注释掉bpf.h就可以?

2025-01-17 23:52:56 188

原创 《Linux内核观测技术BPF》学习笔记 (三)

这里需要是因为classifier.c中分类器函数classification定义为static,而libbpf不支持静态程序,不知官方例子为啥这样写?,大概意思就是规则已经存在,不能add,只能change。这里需要将eth0替换成当前环境上的ens33。

2025-01-14 23:20:39 301

原创 《Linux内核观测技术BPF》学习笔记 (二)

test为编译生成的可执行文件。书上uprobe挂载到go代码上,自己实现挂载到c代码上,原理相同。

2024-12-31 23:21:17 162

原创 《Linux内核观测技术BPF》学习笔记 (一)

内核版本:5.15.0-127-generic。

2024-12-27 22:28:01 128

原创 ebpf学习

记录一下,找到的好的ebpf学习资料:

2024-12-03 16:19:48 192

原创 巨页内存使用

发现一篇文章写的好,保存下,方便以后查看:https://www.cnblogs.com/lygin/p/16729407.html

2024-11-29 17:19:12 107

原创 nginx学习

nginx学习

2024-07-26 10:22:57 291

原创 smallchat改造

smallchat是redis作者使用c开发的聊天服务器,实现了聊天室的功能。核心代码200多行,使用了IO多路复用技术。是一款适合学习IO多路复用的开源软件。原实现是使用select实现了IO多路复用。本文改造了原代码,改用epoll实现,并使用reacotor模型,使代码更精简,功能更聚合,方便使用和理解。

2023-11-30 19:15:30 262

原创 IO多路复用学习(5)reactor网络模型

reactor模型组成:非阻塞的io + io多路复用特征:基于事件循环,以事件驱动或事件回调的方式来实现业务逻辑理解:对io的处理转换为对事件的处理。单reactor模型redis单reactor模型 + 任务队列 + 线程池skynet多reactor多线程memcached多进程nginx

2023-10-23 19:44:35 57

原创 IO多路复用学习(4)阻塞IO和非阻塞IO

read从内核读缓冲区中将数据拷贝到用户空间,write把数据从用户空间拷贝到内核的写缓冲区中。

2023-10-13 11:51:32 149

原创 线程池技术

1.任务耗时长,主线程执行任务阻塞其他任务执行。把耗时的任务交给线程池处理。I/0阻塞型,计算处理型。1.系统资源有限,不可能无限创建线程,线程太多调度复杂,加解锁,性能反而下降。2.消费者线程:就是线程池,有固定大小的线程,处理任务。1.生产者线程:复杂任务分发,把任务交给线程池处理。2.频繁创建销毁线程消耗系统资源,影响性能。生产者往队列里放任务,消费者从队列里取任务。如果队列从空变为非空,唤醒消费者线程。如果队列为空,消费者线程阻塞休眠。2.需要线程并发处理。线程池干脏活,累活。

2023-09-21 10:08:51 45

原创 IO多路复用学习(3) epoll

本篇介绍epoll的相关机制和用法。epoll API有三个:epoll_create,epoll_wait,epoll_ctl。三个API共同使用才能完成epoll IO多路复用的功能,这里是与select和poll不一样的地方。

2023-09-18 14:26:27 124

原创 IO多路复用学习(2) poll

2.poll

2023-08-29 19:38:05 101 1

原创 IO多路复用学习(1) select

select/poll epoll nio,bio,aio reactor模型

2023-08-22 15:47:27 115 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除