- 博客(179)
- 收藏
- 关注
转载 绑定非本机地址与透明代理
由代码可见,需要满足以下三个条件中的一个,才能绑定成功:1)此socket所属的net namespace设置了全局的ipv4_sysctl_ip_nonlocal_bind;2)此socket设置了IP_FREEBIND选项;3)此socket设置了IP_TRANSPARENT选项;
2025-06-15 10:55:03
47
原创 高性能网络框架——XDP
为了提升服务器处理网络流量的性能,涌现了一些技术,XDP就是其中的一种。XDP 是一种 Linux 下的基于 eBPF 实现的内核旁路技术,是一个位于内核协议栈之前的数据包处理器,并拥有将数据包绕过内核协议栈重定向至应用层的能力,因此具有很高的性能,可用于DDoS防御、防火墙、负载均衡等领域。
2024-07-14 20:39:25
1717
原创 NAT 打洞
由于 ipv4 地址数量的有限性,导致实际网络部署模式中存在大量的 NAT 网络。对于 NAT 内部的主机,可以主动发起去公网的流量,但对于位于不同 NAT 内的两台主机而言,想要直接进行点对点的连接,就需要用到打洞技术了。
2024-07-07 16:37:41
1616
原创 Wireshark Lua插件入门
开发中经常通过抓包分析协议,对于常见的协议如 DNS wireshark 支持自动解析,便于人类的理解,对于一些私有协议,wireshark 提供了插件的方式自定义解析逻辑。
2024-06-01 21:03:50
1299
原创 Linux内核常见的丢包场景有哪些
一个数据包在网络中传输的过程中,是没法保证一定能被目的机接收到的。其中有各种各样的丢包原因,今天来学习一下数据包经过 linux 内核时常见的丢包场景。
2024-04-14 11:34:09
1488
原创 Linux是怎么发送一个网络包的?
一个网络包的发送,始于应用层,经层层协议栈的封装,终于网卡。今天来循着一个网络包的足迹👣,深入学习一下 Linux 下发送数据的处理流程。
2024-03-31 15:02:38
1360
原创 Linux收到一个网络包是怎么处理的?
一个网络包的接收始于网卡,经层层协议栈的解析,终于应用层。今天来循着一个网络包的足迹👣,深入学习一下 Linux 下接收数据的处理流程。
2024-03-24 18:57:22
1795
3
原创 Linux的进程调度实现
经常被问到进程的调度算法有哪些,什么先进先出、短进程优先、时间片轮转、多级反馈多列等等算法能说一大堆?那具体的,linux内核使用了什么样的算法,且来探究一下。
2024-03-09 20:40:20
1549
原创 一个聊天系统
聊天应用每个人都用过,但一千个人心中就有一千个聊天应用。这篇博客就来探讨一下聊天系统的设计。如何设计一个聊天系统,首先需要搞清楚,要设计一个什么样的聊天系统。
2024-03-02 19:12:22
1304
原创 LRU缓存
有人从网络读数据,有人从磁盘读数据,机智的人懂得合理利用缓存加速数据的读取效率,提升程序的性能,搏得上司的赏识,赢得白富美的青睐,进一步走向人生巅峰~
2024-02-05 20:09:50
1779
原创 C++ future/promise/thread/async/packaged_task入门
std::promise、future、thread、async、packaged_task这些到底是个啥?
2024-01-11 21:18:59
1090
2
原创 HTTP打怪升级之路
上个世纪80年代末,有一天,Tim Berners-Lee正在工作,他需要与另一台计算机上的同事共享一个文件。他尝试使用电子邮件,但发现电子邮件不能发送二进制文件。Tim Berners-Lee意识到,他需要一种新的协议来共享二进制文件。
2024-01-04 17:38:53
1151
原创 一个简单的Client Base框架
开源代码Chromium可以给我们客户端的架构提供很多参考与借鉴,本文即是一个基于Chromium的mssage_loop事件机制与task投递流程,改造的一个更加简单易用的基本框架。
2024-01-01 16:35:07
493
原创 智能指针循环引用——你真的懂了吗?
起初,没有人在意这场灾难,这不过是一个指针的丢失、一个bug,一个服务器的宕机,直到这场灾难和每个人息息相关......
2022-12-17 14:50:39
2754
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人