Linux kernel tcp reference
记录一些linux kernel中tcp的一些资料。 Reference https://oldvger.kernel.org/~davem/tcp_output.html “http” https://oldvger.kernel.org/~davem/tcp_skbcb.html “http”
记录一些linux kernel中tcp的一些资料。 Reference https://oldvger.kernel.org/~davem/tcp_output.html “http” https://oldvger.kernel.org/~davem/tcp_skbcb.html “http”
skbuff是Linux kernel中网络子系统中重要的数据结构,下面是一些资料。 Reference https://www.skbuff.net/skbuff.html “http” https://www.skbuff.net/skblist.html “http” https://oldvger.kernel.org/~davem/skb.html “http” ...
ping在网络领域是一个十分常用的工具,经常用来检测网络可达或者网络延迟,几乎所有具有网络功能的操作系统都支持。 ping在实现上主要使用了RFC792中定义的ICMP协议,具体说是使用了其中的echo requst和echo reply两种报文。 在GNU/Linux环境中,ping实现在iputils工具包中,相对于Windows下的ping功能更加强大,提供了丰富的配置参数。 R...
在linux下编译ko模块,以便在内核中增加自定义的驱动或者协议,是内核开发中很重要的一部分。WSL目前在Windows上基本可以代替各种虚拟机方案了,使用起来简单而又强大。 但是WSL本身没有提供Linux Kernel对应的头文件,所以无法直接编译ko模块,需要做一些工作才能完成ko模块的编译和验证。 使用uname -r查看WSL对应的内核版本,然后在https:/...
ioctl在linux上一种很传统的用户态与内核态的通信方式,它不像netlink方式那样支持双向通信,也不如proc那样,可以让用户在shell下通过cat或者echo直接和内核通信,但是它有很好的兼容性,所以还具有很广泛的使用,比如一些轻量级的用户态和内核通信。 tcp/ip网络协议栈的arp功能就支持通过ioctl添加静态/删除静态arp,内核中的实现在arp.c文件中的arp_io...
本网站基于 jekyll-theme-chirpy, 之前的文章介绍过如何更新avatar图标,这里来说说如何支持comments,也就是增加评论功能。 https://chirpy.cotes.page/的comments使用的是giscus,看起来也不错,需要github登录才可以评论,可以在一定程度上屏蔽垃圾评论。 步骤1: 在项目的_config.yml中选择支持的评论系统,c...
因为需要计算 Linux 下的内存使用率,搜索了一下发现目前主要的计算方法是: Usage = (MemTotal - Available) / MemTotal * 100% 其中 MemTotal 和 Available 通过 free 或者 cat /proc/meminfo 可以获取到。 free 的输出: total used ...
本网站基于 jekyll-theme-chirpy, 在 GitHub 上发布 post 的体验也不错,和写代码一样,git add, git commit, git push 三部曲。使用 github desktop + vscode 也很丝滑流畅。 但是本网站的用户体验还有一个痛点,就是所有页面左侧的图标一直是空白,因为不影响功能使用,所以也没有在意。今天在更新博客的时候,想起来研究...
断断续续也阅读了 Linux kernel 中网络子系统的一部分代码,主要集中在目录 net 下。主要的工具有 https://elixir.bootlin.com/linux, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/ 和 https://github.com/torvalds/linu...
Quagga开源路由协议的核心功能,就是维护内核中的路由表,这是通过用户态的路由协议和内核交互实现的。那么用户态程序如何与内核进行交互,本文就来探究一下。 在 Quagga 1.2.4的 configure.ac 文件中有下面这一段代码: dnl ------------------------------------ dnl Determine routing get and set ...