测试平台 :NXP LS1043A  ARM64

内核版本:

两台设备通过网口eth2 对接。设备1发包,设备2收包,观察两设备 TX  RX 包数、字节数。

1、准备数据包

流量仪设置包长1024, 抓取从流量仪发包,wireshark显示length = 1020字节。

1020 bytes on wire,并不是1024,可能流量仪的问题?  先用1020包长吧!

2、设备1 发包:

包数 22964 * 包长1020 = 23423280 bytes

抓包同时 使用 tcpdump 观察:

1020 – 14 = 1006 ,这14字节应该是就是 源地址,目的MAC地址,应该是tcpdump 显示的长度未包括这14字节。

3、设备2 收包:

收到:包数 22964 * (1020 – 14) = 23101784

少的14字节应该是就是源地址,目的MAC地址没有计算进RX bytes

使用tcpdump 查看收包情况

驱动里实际计数情况:

4、结论

关于 TX RX Packets  不管收发,只要没有发生丢包,发端,收端都是一致的。

关于 TX RX Bytes 设备发包时,会将 源、目的MAC地址等14字节的信息计算上,而收包时,不会在 RxBytes上体现。

这也就能解释了 ,使用内核转发时,eth8收包,eth7发包,使用 sar -n DEV 1 1 命令查看网速,

txpck/s  rxpck/s 收发速率是对得上的,但是rxKB/s 比 txKB/s  少很多,是什么原因呢?来计算一下

rxKB/s 相比于 txKB/s ,每个包会少计算 14Bytes的MAC地址信息,

(收包速度 267926 )* 14 / 1024 = 3663KB

3663KB    + rxKB/s 12035  =  15698 txKB/s

5、X86 CPU 在该情况下 收包情况

X86收包 RxBytes = 包数 22964* (1020 + 4 )= 23515136

看来 X86下 收包的是会将 14字节的 MAC地址信息,还有4字节的其它信息 记录到 RxBytes.

linux TxBytes RxBytes 探究相关推荐

  1. linux cma机制探究

    Linux cma机制探究 cma的作用    cma,全称(contiguous memory allocation),在内存初始化时预留一块连续内存,可以在内存碎片化严重时通过调用dma_allo ...

  2. Java内存溢出故障案例及Linux内存机制探究

    文章目录 Java内存溢出故障案例及Linux内存机制探究 OOM Killer触发机制分析 如何避免系统触发OOM Killer 这部分内容属于demo案例分享,解决线上运维问题,思路是最重要的 J ...

  3. Linux进程地址空间探究

    我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间.其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间. 那虚拟内存空间 ...

  4. 纯干货!Linux网络内核探究

    Linux内核参数调优 目录 Linux内核参数调优 Linux虚拟文件系统 /proc文件系统目录分类: 内核参数配置方式 临时配置内核参数有两种方式: 永久配置内核参数方式: 网络内核参数优化 常 ...

  5. Linux Cache 机制探究

    http://www.cnblogs.com/talking/archive/2011/04/18/2020274.html 转载于:https://www.cnblogs.com/li-hao/ar ...

  6. 万字长文带你探究 Docker 容器化技术背后的黑科技

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 容器的优势 传统模式的部署,直接将多个应用运行在物理服务器上,如果其中一个应用占用了大部分资源,可能会导致其他应用 ...

  7. linux服务器运维实战记录,linux运维好书推荐《高性能Linux服务器运维实战》

    本书整体分为4个篇幅,以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维(命令.shell编程).系统性能调优.智能运维监控平台构建.运维实战案例四个方面展开 ...

  8. C语言 之建立静态链接库

    下面说一下建立静态链接库的方法 各个C语言编程软件都有它的方法,比如建立一个工程来共享文件,这就比较容易和简单了,现在我们选择使用难一点的linux系统,探究在linux系统下的建立静态链接库的方法. ...

  9. C语言编译构建系统,C语言 之建立静态链接库

    下面说一下建立静态链接库的方法 各个C语言编程软件都有它的方法,比如建立一个工程来共享文件,这就比较容易和简单了,现在我们选择使用难一点的linux系统,探究在linux系统下的建立静态链接库的方法. ...

最新文章

  1. 76 道 Oracle Goldengate 面试问题
  2. 深度学习搞CV?图像数据不足咋办?看这里!
  3. c++并发编程实战_Java 并发编程实战:JAVA中断线程几种基本方法
  4. xilinx sdk在Debug模式下根据地址在内存里观察值
  5. PPT设计的数据图表化表现
  6. Codeforces 263E Rhombus (看题解)
  7. Directx游戏中嵌入IE浏览器实现过程
  8. Android计算器横屏,如何将华为手机的计算器横屏转换成竖屏
  9. Icpc 焦作站现场赛 E 题解
  10. UIWebView、UITextView 和UILable 设置行间距
  11. 射频和无线技术入门--传统技术--7
  12. python读写文件的语句_用Python读写文件指南
  13. 360与腾讯骂战升级
  14. 物联网与大数据技术-1
  15. python如何查看函数参数_如何找到Python函数的参数数?
  16. JAVA基础之二维数组三维数组及应用
  17. 我的公众号 - 豆芽儿 软件研发人才生长社区
  18. 三维设计过程的规范性 丨技术文章
  19. Blender图解教程:借用雕刻工具来建Lowpoly模型
  20. 一款强大的浏览器翻译插件 - 沉浸式的翻译

热门文章

  1. 基于SSM的学籍证明打印系统设计与实现。
  2. Mesos-DNS小解
  3. 查找重复值并对结果自动添加叠加后缀
  4. 一个小白安装Win10、CentOS 7双系统的经历,win10centos(亲测无误)
  5. element 去掉表格底部白线
  6. Java基础常见转义字符(完整归纳)
  7. PS学习-曝光与色彩处理(一)--校正曝光不足
  8. 苹果手机删除的照片和视频能恢复吗?
  9. 如何有效阅读一本技术书
  10. [书目20160623]编程匠艺——编写卓越的代码