Linux内核网络数据发送(六)——网络设备驱动
本文主要介绍设备通过 DMA 从 RAM 中读取数据并将其发送到网络,主要分析dev_hard_start_xmit
通过调用 ndo_start_xmit
来发送数据的过程。
本文主要介绍设备通过 DMA 从 RAM 中读取数据并将其发送到网络,主要分析dev_hard_start_xmit
通过调用 ndo_start_xmit
来发送数据的过程。
本文将分析通用的数据包调度程序(generic packet scheduler)的工作过程,通过分析 qdisc_run_begin()
、qdisc_run_end()
、__ qdisc_run()
和 sch_direct_xmit()
函数,了解内核如何一层层将数据传递给驱动程序,最后进行了监控和调优。
Linux内核网络 UDP 协议层通过调用 ip_send_skb 将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的处理,并分享了监控IP层的方法。
本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了 udp_sendmsg 和 udp_send_skb 函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调优。
本文首先从宏观上概述了数据包发送的流程,接着分析了协议层注册进内核以及被socket的过程,最后介绍了通过 socket 发送网络数据的过程。
本文主要分析数据报从 IP 协议层进入协议栈,通过udp协议层,到达 socket,最终被用户程序读取的过程。在此过程中,介绍了 IP 协议层和 UDP 协议层中监测数据和网络调优的方法。
本文主要介绍内核网络中GRO、RFS、RPS等技术,并针对其对应的规则进行网络调优。重点对RPS的工作过程和内核代码进行了分析,分析了数据如何从网卡进入到协议层。
本文主要介绍Linux网络设备子系统的数据处理,从网络设备子系统的初始化开始,从硬中断到软中断,分别介绍了NAPI 和 napi_schedule、数据在网络设备子系统的监测和调优以及网络数据的处理。
在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。本文从socket基础入手,然后走进内核,对socket建立过程的部分函数进行分析
Copyright (c), linuxkerneltravel, all rights reserved.
模板来自 Bootstrapious. 移植到 Hugo 来自 DevCows.