Linux数据报文接收发送总结3
1.3 协议分层
大概了解了网卡驱动、硬中断、软中断和ksoftirqd线程之后,我们在这几个概念的基础上给出一个内核收包的路径示意:
当网卡上收到数据以后,Linux中第一个工作的模块是网络驱动。网络驱动会以DMA的方式把网卡上收到的帧写到内存里。再向CPU发起一个中断,以通知CPU有数据到达。
当CPU收到中断请求后,会去调用网络驱动注册的中断处理函数。网卡的中断处理函数并不做过多工作,发出软中断请求,然后尽快释放CPU。
ksoftirqd检测到有软中断请求到达,调用poll开始轮询收包,收到后交由各级协议栈处理。对于UDP包来说,会被放到用户socket的接收队列中。
我们从上面这张图中已经从整体上把握到了Linux对数据包的处理过程。但是要想了解更多网络模块工作的细节,我们还得往下看。
Linux数据报文接收发送总结3相关推荐
- Linux数据报文接收发送总结1
0. 引 如下简单的一段在代码,我们在Linux上运行:同时再运行一服务端的回显: #include <stdio.h> #include <sys/types.h> #inc ...
- Linux数据报文接收发送总结6
2.3 协议栈注册 内核实现了网络层的ip协议,也实现了传输层的tcp协议和udp协议.这些协议对应的实现函数分别是ip_rcv(),tcp_v4_rcv()和udp_rcv().和我们平时写代码的方 ...
- Linux数据报文接收发送总结5
2.2 网络子系统初始化 linux内核通过调用subsys_initcall来初始化各个子系统,在源代码目录里你可以grep出许多对这个函数的调用.这里我们要说的是网络子系统的初始化,会执行到net ...
- Linux数据报文接收发送总结4
二.系统初始化 Linux驱动,内核协议栈等等模块在具备接收网卡数据包之前,要做很多的准备工作才行.比如要提前创建好ksoftirqd内核线程,要注册好各个协议对应的处理函数,网络设备子系统要提前初始 ...
- Linux数据报文接收发送总结2
1. 准备工作 此处重点介绍基础概念,为后面介绍数据包收发打下基础.本次代码层面基于Linux 4.4 Kernel. 1.1 系统调用 Linux的系统运行分为用户态和内核态,内核态控制着系统资源. ...
- Linux数据报文接收发送总结7
2.4 网卡驱动初始化 每一个驱动程序(不仅仅只是网卡驱动)会使用 module_init 向内核注册一个初始化函数,当驱动被加载时,内核会调用这个函数.比如igb网卡驱动的代码位于drivers/n ...
- linux网络报文接收发送浅析_Docker容器网络-基础篇
Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/Netfilter.网桥.路由等.接下来, ...
- Linux SYN报文接收及发送SYNACK报文
注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4 在分析connect()系统调用时,我们已经发送SYN报文,所以服务端就需要作出回应了.我们依然只分析TCP层的操作.SY ...
- linux IPv4报文处理浅析
在<linux网络报文接收发送浅析>一文中介绍了数据链路层关于网络报文的处理. 对于接收到的报文,如果不被丢弃.不被网桥转发,会调用netif_receive_skb()提交给IP层: 而 ...
最新文章
- vs快捷键及常用设置(vs2012版)
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
- JSP与servlet之间的传值方式
- 前端框架MVC/MVVM分析系列
- 输入法画面_搜狗输入法去广告版,流畅再无弹窗打扰
- 【Python基础】如何编写简洁美观的Python代码
- SharePoint 数据库管理-PowerShell
- Linux网络编程 | Socket编程(一):Socket的介绍、UDPSocket的封装、UDP服务器/客户端的实现
- 1亿以内素数的个数_神奇的素数
- jq之slidedown()
- Android性能优化:手把手带你全面实现内存优化
- 【大数据编程笔记】大数据背景,案例,概念
- JSJquery中的循环/遍历
- Qt配置OpenCV教程,亲测已试过(详细版)
- 跟着实例学eclipse插件开发--第一篇:翻译插件
- 亲测有效sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: una
- java 表格 列删除_Java 删除Excel表格中的空白行或列
- 2020年书法落款_2020鼠年书法落款怎么写?
- 超声波风速风向传感器的测量原理
- 2023年还在问前端怎么学?一份前端学习指南