专注网络研发

32 篇文章
38 人订阅

全部文章

glinuxer

腾讯 · 资深工程师 (已认证)

揭开服务程序“被杀”之谜

对于第一种情况,一般可以通过coredump看出。第二个种情况,也可以通过dmesg找到线索(一般是被oom killer杀掉)。但是当后两种情况出现时,往往是...

12730
glinuxer

腾讯 · 资深工程师 (已认证)

Linux网络性能优化相关策略

1. rx-checksumming:校验接收报文的checksum。

86450
glinuxer

腾讯 · 资深工程师 (已认证)

系统编程语言Rust特点介绍(2)—— 所有权系统

很抱歉,第2篇距离第1篇长达3个月。。。工作繁忙加上家里事多。。。不找客观原因了,咱们开始聊聊Rust的所有权系统。

15930
glinuxer

腾讯 · 资深工程师 (已认证)

系统编程语言Rust特点介绍(1)

最近在学习Rust语言,感觉这门语言有点意思,因此写一篇文章分享。我不会去介绍Rust的基本语法,什么变量声明,if..else..,循环等等。这些东西,文档介...

22010
glinuxer

腾讯 · 资深工程师 (已认证)

系统编程语言Rust特点介绍(1)

最近在学习Rust语言,感觉这门语言有点意思,因此写一篇文章分享。我不会去介绍Rust的基本语法,什么变量声明,if..else..,循环等等。这些东西,文档介...

31340
glinuxer

腾讯 · 资深工程师 (已认证)

DPDK之KNI原理

DPDK是一个优秀的收发包kit,但它本身并不提供用户态协议栈,因此由将数据报文注入内核协议栈的需求,也就是KNI(Kernel NIC Interface)。...

3.4K133
glinuxer

腾讯 · 资深工程师 (已认证)

多线程下的fwrite和write

Linux下的文件操作,有人喜欢用C库的文件流操作,有人喜欢用Linux的原生的系统调用。一般来说,C库的文件操作会更高效一些,因为C库自己做了...

1.5K41
glinuxer

腾讯 · 资深工程师 (已认证)

内核net_device设备框架的一个缺陷

前几天在看Linux内核源码时,发现一个net_device设备框架的一个问题,以至于upstream的内核源码中,至少有12个设备驱动和虚拟设...

46320
glinuxer

腾讯 · 资深工程师 (已认证)

避免遗忘UNLOCK的小技巧

C++程序可以通过封装来实现RAII,从而避免一切资源泄漏,包括忘记unlock。当时就为了这点,我就特别想推动用C++写C代码,C++只做封装...

18210
glinuxer

腾讯 · 资深工程师 (已认证)

以讹传讹的“tcp_tw_reuse”

因为Linux是一个通用的操作系统,所以其运行环境也是为了通用环境设计的,不会太好,也不会太坏,因为其要默认兼容大部分环境。因此在做服务端部署的...

2.5K30
glinuxer

腾讯 · 资深工程师 (已认证)

Linux内核数据包skb的流程图(1)

最近要给团队做一个长期的内部分享,主题就是Linux内核中数据包的处理流程。

1K50
glinuxer

腾讯 · 资深工程师 (已认证)

nfconntrack全局锁的优化

nfconntrack是netfilter中的重要模块,很多netfilter的功能都依赖于这个模块,如NAT等。而利用linux来构建的网络设...

38220
glinuxer

腾讯 · 资深工程师 (已认证)

register_netdevice引发的panic“陷阱”

上次在内核net_device设备框架的一个缺陷文章中,描述了当前内核net_device框架的一个缺陷。后来内核的net模块的负责人David...

47630
glinuxer

腾讯 · 资深工程师 (已认证)

应用层如何强制发送RST即相关内核实现

前几天群里有个同学问,“如何让应用层强制发送RST中止连接”,而不是通过FIN包的四次交互来关闭连接。当时,我只是凭借以往的经验,猜测使用lin...

43230
glinuxer

腾讯 · 资深工程师 (已认证)

一道腾讯面试题目:没有listen,能否建立TCP连接

这个题目是之前在我的QQ群里一个同学在腾讯面试过程中被问到的。当时在群里做了简单的讨论,今天系统的把这个问题分析一遍。

71930
glinuxer

腾讯 · 资深工程师 (已认证)

Python与Golang的网络IO性能对比

近期,在做未来服务端新业务的技术语言选型。之前我们的服务端都是使用C++开发,充分榨干了服务器的系统资源 —— 创业公司嘛,服务器也是不小的开销...

1.2K20
glinuxer

腾讯 · 资深工程师 (已认证)

Linux数据报文的来龙去脉

作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。以前针对这个主题写过一些文章(主要是从源码角度),...

47030
glinuxer

腾讯 · 资深工程师 (已认证)

RPS与RFS实现分析

RPS和RFS是google贡献的两个补丁,在2.6.35版本中,正式被合并入了内核。这两个补丁总体来说,并不算复杂,实际上很多网络设备厂商早已...

62540
glinuxer

腾讯 · 资深工程师 (已认证)

DPDK之PMD原理

PMD是Poll Mode Driver的缩写,即基于用户态的轮询机制的驱动。本文将介绍PMD的基本原理。

2.8K52
glinuxer

腾讯 · 资深工程师 (已认证)

TCP的定时器实现(1)——重传定时器

TCP协议是一个相当复杂的协议,其实现依赖于多个定时器的实现。在TCP套接字的初始化函数tcp_v4_init_sock中,会调用tcp_init_xmit_t...

42220

扫码关注云+社区

领取腾讯云代金券