ifconfig命令结果详解

Wolai 目录

巨人肩膀

(一)总览

(二)Linux 收发网络数据的流程

2.1 硬件接收数据流程
顺序涉及部件解释
1外部网络如家庭里的路由器
2NICNetwork Interface Controller 网卡硬件本身
3DMADirect Memory Access 直接内存访问,从硬件的内存复制到主机的内存
4RMA,CPU主机的内存和计算资源
2.2 软件接收数据流程
顺序涉及部件解释
1网卡接收读取外面的数据
2Ring Buffer队列Linux内存 、 FIFO队列,不存包数据,指向存数据的位置
3Socket Buffer 区域Linux内存、实际存储包数据的地方(数据链路层→传输层)
4上层协议栈用户层
5用户空间软件实际处理的地方

2.3 接收数据包的大致流程

  1. CPU主内存接收环RX Ring中分配 packet buffers 并建立 描述符

  2. CPU 告诉 NIC 有一个新的描述符(写入到寄存器中)

  3. DMA从主内存中取描述符

  4. 网络包到达NIC

  5. DMA将接收到的网络包写到主内存中的RX Ring

  6. NIC发起硬件中断到CPU中

  7. CPU上半部分中断处理硬件中断(例如复制数据包)

  8. CPU 下半部分软中断

  9. CPU 经过调度,SoftIRQPollProtocool

2.4 软件发送数据流程
顺序涉及部件解释
1User Space生成数据的地方
2Queueing Discipline队列规则,为了网络流量控制
3Ring BufferLinux内存,FIFO队列,指向存数据的位置
4Socket BufferLinux内存,实际存储数据的地方

2.5 sk_buff解析

  • 全称:socket Buffer

  • 定义:include/linux/skbuff.h

  • 特点:逐层解析

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值