也就是说啊,内核中的收发包的路径,很可能是经理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. 第3天 Java基础语法

    第3天 Java基础语法 今日内容介绍 引用数据数据类型(Scanner.Random) 流程控制语句(if.for.while.dowhile.break.continue) 引用数据类型 Scan ...

  2. ubuntu16.04 64位安装tftp服务器

    1.安装tftpd-hpa和xinetd sudo apt-get install tftpd-hpa xined2.针对64位操作系统安装openbsd-inetd apt-get install ...

  3. go基础语法-循环语句

    1.基础定义 for语句的条件不需要括号(同if语句) ,golang里的循环只有for,没有while sum := 0 for i=0;i<100;i++ { sum += i } 2.条件 ...

  4. mysql自动提交

    MySQL的autocommit(自动提交)默认是开启,其对mysql的性能有一定影响,举个例子来说,如果你插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关 ...

  5. 使用ChipScope Pro调试硬件

    chipscope_icon提供与其他ChipScope内核的通信 chipscope_opb_iba促进传统片上外设总线(OPB)事务的监控 chipscope_plb_iba便于监控处理器本地总线 ...

  6. 成都Uber优步司机奖励政策(2月29日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. Java:xxx is not an enclosing class

    1. 错误原因 该错误一般出现在对内部类进行实例化时,例如 public class A{ public class B{ } } 此时B是A的内部类,如果我们要使用如下语句实例化一个B类的对象: A ...

  8. CC2541工程优化等级的问题

    1. 调试工程的时候发现,优化等级稍微调高一级,就容易出问题,只能用None,其他等级会出现数据丢失的现象.

  9. C++ 基础面试题-1

    请说出下面代码在32位系统下的输出内容 /* ** 2018/03/21 21:43:00 ** Brief: ** Author:ZhangJianWei ** Email:Dream_Dog@16 ...

  10. Qt-网络与通信-UDP网络通讯

    用户数据报协议是一种简单的轻量级.不可靠.面向数据.无连接的传出层协议,可以应用于在可靠性不是十分重要的场合,如短消息,广播信息等. 例如一下场合 网络数据大多为短消息 拥有大量客户端 对数据安全性无 ...