也就是说啊,内核中的收发包的路径,很可能是经理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中来的吗的更多相关文章

  1. 【转】为什么我们都理解错了HTTP中GET与POST的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  2. 面试官:Java中对象都存放在堆中吗?你知道逃逸分析?

    面试官:Java虚拟机的内存分为哪几个区域? 我(微笑着):程序计数器.虚拟机栈.本地方法栈.堆.方法区 面试官:对象一般存放在哪个区域? 我:堆. 面试官:对象都存放在堆中吗? 我:是的. 面试官: ...

  3. 为什么模板函数的声明和实现都放在.h文件中

    当你不使用这个模板函数或模板类,编译器并不实例化它,当你使用时,编译器需要实例化它,因为编译器是一次只能处理一个编译单元,也就是一次处理一个cpp文件,所以实例化时需要看到该模板的完整定义.所以都放在 ...

  4. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中

     本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法的区别 为什么wait( ...

  5. 我们知道写入过程比ZooKeeper集合中的读取过程要贵,因为所有节点都需要在数据库中写入相同的数据。因此,对于平衡的环境拥有较少数量(例如3,5,7)的节点比拥有大量的节点要好。

    我们知道写入过程比ZooKeeper集合中的读取过程要贵,因为所有节点都需要在数据库中写入相同的数据.因此,对于平衡的环境拥有较少数量(例如3,5,7)的节点比拥有大量的节点要好. 组件 描述 写入( ...

  6. ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas

    ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...

  7. 99%的人都理解错了HTTP中GET与POST的区别(转载

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  8. 99%的人都理解错了HTTP中GET与POST的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  9. 99%的人都理解错了HTTP中GET与POST的区别(转自知乎)

    作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. GET和POST是HTT ...

随机推荐

  1. VXLAN简介(摘抄)

    VXLAN简介 VXLAN:Virtual eXtensible Local Area Network的缩写,虚拟扩展局域网,现代数据中心的的一种网络虚拟化技术,即在传统的三层IP网络上虚拟出一张二层 ...

  2. Artistic Style 3.1

    Artistic Style 3.1 Tab 选项 下面的示例显示空白字符.一个空格(space)用一个 . 表示,一个制表符(tab)用 > (大于号) 表示. ** 默认缩进 ** 如果没有 ...

  3. python--re模块(正则表达式)

    RE是什么 正则 表达 式子 就是一些带有特殊含义的符号或者符号的组合 它的作用是对字符串进行过滤 在一堆字符串中找到你所关心的内容 你就需要告诉计算机你的过滤规则是什么样 通过什么方式来告诉计算机 ...

  4. 堪称最好的A*算法(转)

    如此好贴,不能不转!原文地址:http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht 中文译文转自:http://blog.c ...

  5. BZOJ1432_Function_KEY

    题目传送门 找规律. 画一个像这样的图: 不同颜色为不同层,因为函数图像可对称,所以只考虑K<=N/2的情况. 最小为min(K,N-K+1)*2. N=1时特殊考虑,答案为1. code: # ...

  6. 如何理解 UL94HB , UL94-V0 , UL94-V1 , UL94-V2

    塑料阻燃等级由HB,V-2,V-1向V-0逐级递增: UL94V0,V1,V2是不同的阻燃等级,其等级不同,耐燃的测试方法亦不同,测试判定的标准也不同. V0的测试方法是将测试物倾斜45度,用酒精灯点 ...

  7. selenium(Java)WebDriverWait等待机制

    //标题是不是“百度一下,你就知道” 18 new WebDriverWait(driver,5).until(ExpectedConditions.titleIs("百度一下,你就知道&q ...

  8. Java 递归 反射 正则表达式

    一 递归 1. 就是函数自身调用自身 (就是在栈内存中不断的加载同一个函数) 2. 什么时候用递归呢? 当一个功能被重复使用 而每一次使用该功能时的参数不确定 都由上次的功能元素结果来确定 简单说: ...

  9. vue-router爬坑记

    简介 因为我们用Vue开发的页面是单页面应用,就相当于只有一个主的index.html,这时候我们就不能使用a标签来进行页面的切换了,所以这时候我们今天的主角Vue-Router就闪亮的登场了 Vue ...

  10. lintcode12 带最小值操作的栈

    实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值. 你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成. 建一个栈helpStack,用来存放从 ...