4.2 数据发送流程图
各层主要函数以及位置功能说明:
         1)sock_write:初始化msghdr{}结构 net/socket.c
         2)sock_sendmsg:net/socket.c
         3)inet_sendmsg:net/ipv4/af_net.c
         4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数据填入sk_buff空间。net/ipv4/tcp.c
         5)tcp_send_skb:net/ipv4/tcp_output.c
         6)tcp_transmit_skb:net/ipv4/tcp_output.c
         7)ip_queue_xmit:net/ipv4/ip_output.c
         8)ip_queue_xmit2:net/ipv4/ip_output.c
         9)ip_output:net/ipv4/ip_output.c
         10)ip_finish_output:net/ipv4/ip_output.c
         11)ip_finish_output2:net/ipv4/ip_output.c
         12)neigh_resolve_output:net/core/neighbour.c
         13)dev_queue_xmit:net/core/dev

转载于:https://www.cnblogs.com/wangfengju/archive/2013/02/20/6173248.html

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐