文章浏览阅读1.1k次。1.启动分析图2.数据发送流程图各层主要函数以及位置功能说明:1)sock_write:初始化msghdr{}结构 net/socket.c2)sock_sendmsg:net/socket.c3)inet_sendmsg:net/ipv4/af_net.c4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数......
2023-11-13 21:04 阅读 阅读全文文章浏览阅读1.1k次。1.启动分析图2.数据发送流程图各层主要函数以及位置功能说明:1)sock_write:初始化msghdr{}结构 net/socket.c2)sock_sendmsg:net/socket.c3)inet_sendmsg:net/ipv4/af_net.c4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数......
2023-11-20 14:06 阅读 阅读全文1.启动分析图2.数据发送流程图各层主要函数以及位置功能说明:1)sock_write:初始化msghdr{}结构 net/socket.c2)sock_sendmsg:net/socket.c3)inet_sendmsg:net/ipv4/af_net.c4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数据填入s..._linux tcp实现...
2023-10-10 02:35 阅读 阅读全文1邻居几个核心状态邻居项的状态机机制是通用邻居层最重要的内容,主要是处理邻居项中状态的改变,其中包括几个邻居状态的定时器机制,以及邻居项的更新,solicit请求的发送等对于通用邻居项的状态机,主要有如下几个状......
2023-10-14 05:49 阅读 阅读全文文章浏览阅读4.8k次,点赞2次,收藏14次。TCP客户用 connect 函数来建立与 TCP 服务器的连接,其实是客户利用 connect 函数向服务器端发出连接请求。1、应用层——connect 函数#include int connect(int sockfd, const struct sockaddr *servaddr, socklen_t......
2023-11-12 18:36 阅读 阅读全文一.linux内核网络栈代码的准备知识1.linux内核ipv4网络部分分层结构:BSD socket层:这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.cINET socket层:BSD socket是个......
2023-10-10 02:35 阅读 阅读全文一、自旋锁的实现linux上的自旋锁有三种实现:1. 在单cpu,不可抢占内核中,自旋锁为空操作。2. 在单cpu,可抢占内核中,自旋锁实现为“禁止内核抢占”,并不实现“自旋”。3. 在多cpu,可抢占内核中,自旋锁实现为“禁止内......
2023-10-14 05:24 阅读 阅读全文文章浏览阅读409次。本文主要是讲解TCP/IP协议栈在Linux内核中的运行时序,文章较长,里面有配套的视频讲解,建议收藏观看。1 Linux概述 1.1 Linux操作系统架构简介Linux操作系统总体上由Linux内核和GNU系统构成,具体来讲由4个......
2023-11-13 21:03 阅读 阅读全文文章浏览阅读412次。本文主要是讲解TCP/IP协议栈在Linux内核中的运行时序,文章较长,里面有配套的视频讲解,建议收藏观看。1 Linux概述 1.1 Linux操作系统架构简介Linux操作系统总体上由Linux内核和GNU系统构成,具体来讲由4个......
2023-11-20 14:04 阅读 阅读全文1 钩子函数1.1 nf_nat_ipv4_in()NF_INET_PRE_ROUTING1.2 nf_nat_ipv4_out()NF_INET_POST_ROUTING1.3 nf_nat_ipv4_local_fn()NF_INET_LOCAL_OUT1.4 nf_nat_ipv4_fn()NF_INET_LOCAL_IN2 target 函数3 iptables 案例_nf_nat_ipv4_fn...
2023-10-14 05:49 阅读 阅读全文