作家
登录

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

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

  • ip_route_output_flow: 该函数会根据路由表和目标IP,找到这个数据包应当大年夜哪个设备发送出去,如不雅该socket没有绑定源IP,该函数还会根据路由表找到一个最合适的源IP给它。 如不雅该socket已经绑定了源IP,但根据路由表,大年夜这个源IP对应的网卡没法达到目标地址,则该包会被丢弃,于是数据发送掉败,sendto函数将返回缺点。该函数最后会将找到的设备和源IP塞进flowi4构造体并返回给udp_sendmsg
  • ip_make_skb: 该函数的功能是构造skb包,构造好的skb包琅绫擎已经分派了IP包头,并且初始化了部分信息(IP包头的源IP就在这里被设置进去),同时该函数会调用__ip_append_dat,如不雅须要分片的话,会在__ip_append_data函数中进行分片,同时还会在该函数中检查socket的send buffer是否已经用光,如不雅被用光的话,返回ENOBUFS
  • udp_send_skb(skb, fl4) 主如果往skb琅绫擎填充UDP的包头,同时处理checksum,然后调用IP层的响应函数。
    1.         | 
    2.          | 
    3.          ↓ 
    4.   +-------------+ 
    5.   | ip_send_skb | 
    6.   +-------------+ 
    7.          | 
    8.          | 
    9.          ↓ 
    10.  +-------------------+       +-------------------+       +---------------+ 
    11.  | __ip_local_out_sk |------>| NF_INET_LOCAL_OUT |------>| dst_output_sk | 
    12.  +-------------------+       +-------------------+       +---------------+ 
    13.                                                                  | 
    14.                                                                  | 
    15.                                                                  ↓ 
    16. +------------------+        +----------------------+       +-----------+ 
    17. | ip_finish_output |<-------| NF_INET_POST_ROUTING |<------| ip_output | 
    18. +------------------+        +----------------------+       +-----------+ 
    19.          | 
    20.          | 
    21.          ↓ 
    22.  +-------------------+      +------------------+       +----------------------+ 
    23.  | ip_finish_output2 |----->| dst_neigh_output |------>| neigh_resolve_output | 
    24.  +-------------------+      +------------------+       +----------------------+

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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