发生dev_queue_xmit的时候,全部都是从ip_finish_output中来的吗
也就是说啊,内核中的收发包的路径,很可能是经理driver_recv --> tcp -->driver_send这样一个过程,是个很长的路径呢......
从dev_queue_xmit中来的数据包全部都是从ip_finish_output中来的吗?
所以,应该经常能抓到ip_local_out才对,因为tcp是需要发确认帧的,
不过就下面这些内容来看,内核里的tcp/ip的协议栈真够长的!
[ 8.355168] [<ffffffff816e3350>] ? ip_fragment.constprop.5+0x80/0x80
[ 8.355168] [<ffffffff816e36b5>] ip_local_out+0x35/0x40
[ 8.355168] [<ffffffff816e3808>] ip_build_and_send_pkt+0x148/0x1c0
[ 8.355168] [<ffffffff817036ea>] tcp_v4_send_synack+0x5a/0xa0
[ 8.355168] [<ffffffff816e99e8>] ? inet_csk_reqsk_queue_hash_add+0x78/0xa0
[ 8.355168] [<ffffffff816f4210>] tcp_conn_request+0x8b0/0x9a0
[ 8.355168] [<ffffffff816ccc85>] ? tcp_packet+0xac5/0x11c0
[ 8.355168] [<ffffffff81702bf3>] tcp_v4_conn_request+0x53/0x60
[ 8.355168] [<ffffffff816f8af4>] tcp_rcv_state_process+0x194/0xd60
[ 8.355168] [<ffffffff81318d7b>] ? security_sock_rcv_skb+0x3b/0x50
[ 8.355168] [<ffffffff81701254>] tcp_v4_do_rcv+0x64/0x210
[ 8.355168] [<ffffffff81704485>] tcp_v4_rcv+0xc15/0xcd0
[ 8.355168] [<ffffffff816de11f>] ip_local_deliver_finish+0x6f/0x1a0
[ 8.355168] [<ffffffff816de7b5>] ip_local_deliver+0xc5/0xd0
[ 8.355168] [<ffffffff816de0b0>] ? inet_del_offload+0x40/0x40
[ 8.355168] [<ffffffff816de3eb>] ip_rcv_finish+0x19b/0x350
[ 8.355168] [<ffffffff816dea8e>] ip_rcv+0x2ce/0x370
[ 8.355168] [<ffffffff816de250>] ? ip_local_deliver_finish+0x1a0/0x1a0
[ 8.355168] [<ffffffff816851ea>] __netif_receive_skb_core+0x34a/0xa20
[ 8.355168] [<ffffffff817095b8>] ? tcp4_gro_receive+0x118/0x1c0
[ 8.355168] [<ffffffff81718dc7>] ? inet_gro_receive+0x1f7/0x250
[ 8.355168] [<ffffffff81687bcd>] __netif_receive_skb+0x1d/0x60
[ 8.355168] [<ffffffff81687c3d>] netif_receive_skb_internal+0x2d/0x90
[ 8.355168] [<ffffffff81688882>] napi_gro_receive+0xd2/0x120
[ 8.355168] [<ffffffff81533081>] e1000_clean_rx_irq+0x191/0x510
[ 8.355168] [<ffffffff81531e80>] e1000_clean+0x250/0x890
[ 8.355168] [<ffffffff8168998a>] net_rx_action+0x1fa/0x340
发生dev_queue_xmit的时候,全部都是从ip_finish_output中来的吗的更多相关文章
- 【转】为什么我们都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 面试官:Java中对象都存放在堆中吗?你知道逃逸分析?
面试官:Java虚拟机的内存分为哪几个区域? 我(微笑着):程序计数器.虚拟机栈.本地方法栈.堆.方法区 面试官:对象一般存放在哪个区域? 我:堆. 面试官:对象都存放在堆中吗? 我:是的. 面试官: ...
- 为什么模板函数的声明和实现都放在.h文件中
当你不使用这个模板函数或模板类,编译器并不实例化它,当你使用时,编译器需要实例化它,因为编译器是一次只能处理一个编译单元,也就是一次处理一个cpp文件,所以实例化时需要看到该模板的完整定义.所以都放在 ...
- -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait( ...
- 我们知道写入过程比ZooKeeper集合中的读取过程要贵,因为所有节点都需要在数据库中写入相同的数据。因此,对于平衡的环境拥有较少数量(例如3,5,7)的节点比拥有大量的节点要好。
我们知道写入过程比ZooKeeper集合中的读取过程要贵,因为所有节点都需要在数据库中写入相同的数据.因此,对于平衡的环境拥有较少数量(例如3,5,7)的节点比拥有大量的节点要好. 组件 描述 写入( ...
- ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas
? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...
- 99%的人都理解错了HTTP中GET与POST的区别(转载
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 99%的人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 99%的人都理解错了HTTP中GET与POST的区别(转自知乎)
作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. GET和POST是HTT ...
随机推荐
- 指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?
这两天敲代码碰到了一个这样的问题 代码如下: #include <stdio.h> #include <stdlib.h> int main() { ; int* p=& ...
- 钓鱼 洛谷p1717
题目描述 话说发源于小朋友精心设计的游戏被电脑组的童鞋们藐杀之后非常不爽,为了表示安慰和鼓励,VIP999决定请他吃一次“年年大丰收”,为了表示诚意,他还决定亲自去钓鱼,但是,因为还要准备2013NO ...
- js polyfill , to developing the cross browser js
https://github.com/paulmillr/console-polyfill https://github.com/Modernizr/Modernizr/wiki/HTML5-Cros ...
- 对于微信小程序登录的理解图
有两种获取用户信息的方案. 1.不包含敏感信息openId 的json对象(包含:nickname.avatarUrl等基本信息) 2.包含敏感信息openId的基本信息. 第一种获取方案 1.首先调 ...
- day 2 飞机大战原理
1. 程序的图片的坐标 (左上角为顶点) 2.图片变成动态的 3.集成显卡 和独立显卡
- 【LG1527】[国家集训队]矩阵乘法
[LG1527][国家集训队]矩阵乘法 题面 洛谷 题解 我也不知道为什么取个这样的名字... 其实就是区间\(kth\)扩展到二维 还是用整体二分搞啦,把树状数组换成二维的 其他的基本没有什么差别 ...
- PHP用url传递数组
数组传递这么写: echo "<a href=2.php?info=".base64_encode(serialize($information))." > ...
- AT+CGDCONT=0,"IP","ctnb"设置问题
发现有的时候,设置不成功,经过验证正确的方法是,模组刚上电,或者刚复位的时候,先发送AT+CFUN=1,然后再去设置APN AT+CFUN= OK AT+CGDCONT=,"IP" ...
- ubuntu16安装过程中的硬盘分区
硬盘分区主要是三个区,如下图,分别是/,swap交换空间,/home,其中第一个分区/是主分区,建议至少8GB,要不ubuntu安装的时候放不下.
- DSP28335的上手试用LED灯闪烁-第一篇
1. 本次以三兄弟的DSP28335开发板为例,看下JTAG接口,EMU0,EMU1的用途,不是很懂,不深入研究,用到再说 EMU0/1是TI芯片的JTAG才有的信号,本身不属于JTAG标准里的信号, ...