美文网首页
网卡收发包流程

网卡收发包流程

作者: VChao | 来源:发表于2019-07-21 21:46 被阅读0次

2019/07/21
今天在进行发包部分调优的时候,发现对于从最开始调用系统函数,到最终的网卡发包过程不是很理解,就去特意学习了一下。
先是看了那本网络模块的书,但是因为他的内容属于比较细节的,基本上算是看不懂把。
这样的话,就来看一看网络上的文章,看看大致的思路。

  1. 发包流程
    文章[1]属于简单明了的,不给你弄很多细节,就是直接给你发包的流程,如图1所示。
发包流程

这部分他的阐述非常简单,并没有进行多少细节的描述,比如说中断怎么安排等内容,但是最为一个简单的脉络信息,已经非常完整了。

  1. 文献[2]算是非常详细的一个介绍,但同时也造成了非常晦涩的感觉,因为内容太多,很容易看着后面的望着后面的。这个系列的文章发包和收包都包含。
    文章[3]算是文章[2]的汉化版把,同时利用一些简略图添上了自己的理解;同时它也包含发包和收包。

  2. tc部分的内容


    tc命令

    但这个依然不是网卡队列的中的信息,而是中间的一个。

  3. 文献[4]中也算是一个稍详细的解释,但仍然是有些晦涩。


这里记录一些在阅读这些材料中的一些问题

  1. 网卡的多队列到底是什么形式,是硬件队列,还是软件队列。
  2. 如果利用协议栈进行发包,到底有多少地方需要进行所有权的抢占,其实也就是锁的数量
  3. 如果设置的多队列,底层发包的时候,是不是同样需要进行抢占某一个函数的使用权
  4. 到底中断是什么,感觉看的越多,就觉得越模糊

2019/07/23 目前总结的话,主要瓶颈还是在于多队列部分的内容不是非常理解。

文章[5]是一个介绍队列的文章,我看过中文版的,但没怎么看懂;这个英文版的也没怎么看懂。

参考文献

[1]kernel笔记——网络收发包流程
[2]Monitoring and Tuning the Linux Networking Stack: Sending Data
[3]Linux网络 - 数据包的发送过程
[4]网卡驱动收发包过程
[5]Queueing in the Linux Network Stack

相关文章

  • Linux网卡丢包排查

    首先来看看网卡收发包的处理流程: 收包: 网线上的packet首先被网卡获取,网卡会检查packet的CRC校验,...

  • 网卡收发包流程

    2019/07/21今天在进行发包部分调优的时候,发现对于从最开始调用系统函数,到最终的网卡发包过程不是很理解,就...

  • Linux和Windows网卡MTU的修改

    实验结果 MTU参数只作用于发包,不作用于收包。 收包规格取决于网卡 发包规格取决于MTU参数 实验拓扑 Wind...

  • 获取网卡实时流量(Linux)

    cat /proc/net/dev 第一列是网卡接口名称,Receive为收包,Transmit为发包; byte...

  • Linux 收发包流程

    Linux 收包流程 数据包到达网卡 NIC(Network Interface Card); NIC 校验 MA...

  • linux.network 收包和发包

    对一张网卡来说:收包就是通过网线传过来的包,发包就是把包通过网线发出去,所以一台主机上的几张网卡之间的数据包转发不...

  • 监控网络

    Linux 网络收发流程 网络包的接收 当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列...

  • 问题:多个线程同时往一个网卡发包,如何提高性能

    2019/07/21问题:项目中对发包过程没有使用DPDK,而且此时的多个队列要同时往一个网卡上进行发包。大致问题...

  • npm发包流程

    注册npm账号(已有可忽略) 新建文件夹,进入该文件夹,运行npm init,生成package.json文件 将...

  • DPDK发包流程

    2019/08/13今天在看libnet的发包过程的时候,才发现他的内容是多么复杂,我的理解是,这种通用库,他们的...

网友评论

      本文标题:网卡收发包流程

      本文链接:https://www.haomeiwen.com/subject/hpwvlctx.html