作家
登录

Linux网络 - 数据包的发送过程

作者: 来源: 2017-04-07 11:02:06 阅读 我要评论

 
  •                                                                   | 
  •                                                                   | 
  •                                                                   ↓ 
  •                                                           +----------------+ 
  •                                                           | dev_queue_xmit | 
  •                                                           +----------------+  
    • ip_send_skb: IP模块发送数据包的人口,该函数只是简单的调用一下后面的函数
    • __ip_local_out_sk: 设置IP报文头的长度和checksum,然后调用下面netfilter的钩子
    • NF_INET_LOCAL_OUT: netfilter的钩子,可以经由过程iptables来设备怎么处理该数据包,如不雅该数据包没被丢弃,则持续往下走
    • dst_output_sk: 该函数根据skb琅绫擎的信息,调用响应的output函数,在我们UDP IPv4这种情况下,会调用ip_output
    • ip_output: 将膳绫擎udp_sendmsg获得的网卡信息写入skb,然后调用NF_INET_POST_ROUTING的钩子
    • NF_INET_POST_ROUTING: 在这里,用户有可能设备了SNAT,大年夜而导致该skb的路由信息产生变更
    • ip_finish_output: 这里会断定经由了上一步后,路由信息是否产生变更,如不雅产生变更的话,须要从新调用dst_output_sk(从新调用这个函数时,可能就不会再走到ip_output,而是走到被netfilter指定的output函数里,这里有可能是xfrm4_transport_output),不然往下走
    • ip_finish_output2: 根据目标IP到路由表琅绫擎找到下一跳(nexthop)的地址,然后调用__ipv4_neigh_lookup_noref去arp表琅绫擎找下一跳的neigh信息,没找到的话会调用__neigh_create结垢荷琐空的neigh构造体
    • dst_neigh_output: 在该函数中,如不雅上一步ip_finish_output2没获得neigh信息,那么将会走到函数neigh_resolve_output中,不然直接调用neigh_hh_output,在该函数中,会将neigh信息琅绫擎的mac地址填到skb中,然后调用dev_queue_xmit发送数据包
    • neigh_resolve_output: 该函数琅绫擎会发送arp请求,获得下一跳的mac地址,然后将mac地址填到skb中并调用dev_queue_xmit

    netdevice子体系

    1.                       | 
    2.                         | 
    3.                         ↓ 
    4.                  +----------------+ 
    5. +----------------| dev_queue_xmit |

        推荐阅读

        Ubuntu 16.04 下如何在Vim中进行文本选择操作和使用标志

      基于图形界面的文本或源代码编辑器,供给了一些诸如文本选择的功能。我是想说,可能大年夜多半人不认为这是一个功能。不过像 Vim 这种基于敕令行的编辑器就不是如许。当你仅应用键盘操作>>>详细阅读


      本文标题:Linux网络 - 数据包的发送过程

      地址:http://www.17bianji.com/lsqh/34631.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)