内核网络

Linux网络设备子系统

由 梁金荣 | 5500字 | 阅读大约需要11分钟 | 归档于内核网络

2020年9月1日

本文主要介绍Linux网络设备子系统的数据处理,从网络设备子系统的初始化开始,从硬中断到软中断,分别介绍了NAPI 和 napi_schedule、数据在网络设备子系统的监测和调优以及网络数据的处理。

继续阅读

socket基础与socket创建过程的相关函数分析

由 董旭 | 6100字 | 阅读大约需要13分钟 | 归档于内核网络

2020年8月24日

在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。本文从socket基础入手,然后走进内核,对socket建立过程的部分函数进行分析

继续阅读

Linux内核网络中的软中断ksoftirqd

由 梁金荣 | 2400字 | 阅读大约需要5分钟 | 归档于内核网络

2020年8月24日

硬中断处理程序执行的过程中不能被中断,如果它执行时间过长,会导致CPU没法响应其它硬件的中断,于是内核引入软中断,这样可以将硬中断处理函数中耗时的部分移到软中断处理函数里面来慢慢处理。内核中的ksoftirqd进程专门负责软中断的处理,当它收到软中断后,就会调用相应软中断所对应的处理函数。

继续阅读

Linux内核网络设备驱动

由 梁金荣 | 5800字 | 阅读大约需要12分钟 | 归档于内核网络

2020年8月17日

本文首先从宏观上介绍数据包的接收过程,然后详细介绍了Linux网络设备驱动的工作过程,最后介绍网卡监控与调优,包括网络数据包总数、丢包、错包数量的相关统计。

继续阅读

Linux内核网络丢包监控

由 梁金荣 | 800字 | 阅读大约需要2分钟 | 归档于内核网络

2020年8月11日

熟悉数据包的接收流程,有助于帮助我们明白在内核哪些地方可以监控和修改数据包,帮助我们明白什么情况下数据包可能会被丢弃等。本文先简单介绍数据包的收包流程,然后使用dropwatch工具收集并查看Linux内核网络中丢包的数量和位置,使用perf监控Linux内核网络丢弃的数据包。

继续阅读

TCP超时重传定时器

由 作者:张孝家 | 2500字 | 阅读大约需要5分钟 | 归档于内核网络

2020年8月11日

本篇文章主要介绍定时器的创建、删除、激活和超时处理回调函数等内容,不介绍关于RTO和RTT的计算(后期的文章在补充),使用的内核版本为4.15

继续阅读

tcp连接延时

由 作者:张孝家 | 1600字 | 阅读大约需要4分钟 | 归档于内核网络

2020年8月3日

本篇文章介绍tcp连接的三次握手和套接字状态转换,以及基于ebpf的tcp连接延时的提取。

继续阅读

sock、socket和tcp_sock之间的关系

由 作者:张孝家 | 2200字 | 阅读大约需要5分钟 | 归档于内核网络

2020年7月27日

这篇文章介绍sock、socket和tcp_sock结构体之间的关系。

继续阅读

Linux网络常用工具分类介绍

由 梁金荣 | 4600字 | 阅读大约需要10分钟 | 归档于内核网络

2020年7月12日

Linux网络命令较多,单纯的介绍网络命令的用法也没什么意思。本文将常见的网络命令进行分类,并画出思维导图,对每个分类的命令选择性的介绍其作用、常见选项和用法举例。BTW,不建议记住所有命令,了解一下有哪些分类,该分类下有哪些命令就好了,具体用到了再查。

继续阅读

Linux内核网络(四)——socket编程实例及数据包捕获工具wireshark的使用

由 梁金荣 | 2600字 | 阅读大约需要6分钟 | 归档于内核网络

2020年5月17日

本文将编写一个简单的基于TCP协议的客户端和服务器端的实例,并使用wireshark工具捕获数据包。Wireshark是一款图形界面的网络嗅探器,支持多种平台,是网络流量分析的利器。

继续阅读