随笔分类 -  linux tcp/ip

上一页 1 ··· 5 6 7 8 9 10 下一页
摘要:网络协议栈流程图以及数据结构 linux内核网络模块加载 socket 创建流程 UDP 收发包流程以及 软中断收发包流程 UDP 收-发包流程 -> igb_msix_ring 中断服务函数(分队列处理) -> napi_schedule -> napi_schedule_prep 检测napi- 阅读全文
posted @ 2019-09-09 21:25 codestacklinuxer 阅读(727) 评论(0) 推荐(0)
摘要:orphan sockets 介绍一下什么是 orphan sockets,简单来说就是该 socket 不与任何一个文件描述符相关联。例如,当应用调用 close() 关闭一个链接时,此时该 socket 就成为了 orphan,但是该 sock 仍然会保留一段时间,直到最后根据 TCP 协议结束 阅读全文
posted @ 2019-07-08 16:53 codestacklinuxer 阅读(815) 评论(0) 推荐(0)
摘要:后面整理相关信息/* * TCP option lengths */#define TCPOLEN_MSS 4 //只能出现在SYN段中#define TCPOLEN_WINDOW 3#define TCPOLEN_SACK_PERM 2#define TCPOLEN_TIMESTAMP 10#de 阅读全文
posted @ 2019-07-08 16:19 codestacklinuxer 阅读(1252) 评论(0) 推荐(1)
摘要:接收入口 tcp_v4_rcv |--> tcp_v4_do_rcv |-> tcp_rcv_state_process |-> tcp_rcv_synsent_state_process1. 状态为ESTABLISHED时,用tcp_rcv_established()接收处理。2. 状态为LIST 阅读全文
posted @ 2019-07-07 22:41 codestacklinuxer 阅读(1072) 评论(0) 推荐(0)
摘要:TCP 服务端 接收到ack tcp_v4_rcv() -> tcp_v4_do_rcv() -> tcp_v4_hnd_req() + tcp_child_process()tcp_v4_hnd_req() -> tcp_check_req() -> tcp_v4_syn_recv_sock()t 阅读全文
posted @ 2019-07-07 20:39 codestacklinuxer 阅读(1054) 评论(0) 推荐(0)
摘要:tcp_v4_send_synack()用于发送SYNACK段,在tcp_v4_conn_request()中被调用。 首先调用tcp_make_synack()构造SYNACK段,主要是构造TCP报头和初始化skb中的一些字段 /* * 该结构主要描述双方的地址、所支持的TCP选项等 tcp_re 阅读全文
posted @ 2019-07-07 19:56 codestacklinuxer 阅读(913) 评论(0) 推荐(0)
摘要:rcv 分析: /* The socket must have it's spinlock held when we get * here, unless it is a TCP_LISTEN socket. * * We have a potential double-lock case here 阅读全文
posted @ 2019-07-05 00:47 codestacklinuxer 阅读(1524) 评论(0) 推荐(0)
摘要:proto socket 关联结构: { .type = SOCK_STREAM, .protocol = IPPROTO_TCP, .prot = &tcp_prot, .ops = &inet_stream_ops, .flags = INET_PROTOSW_PERMANENT | INET_ 阅读全文
posted @ 2019-07-05 00:05 codestacklinuxer 阅读(1160) 评论(0) 推荐(0)
摘要:/*ipv4_specific是TCP传输层到网络层数据发送以及TCP建立过程的真正OPS, 在tcp_prot->init中被赋值给inet_connection_sock->icsk_af_ops 这里面有每种协议传输层的接收函数,后面的inetsw_array那几行是套接口层的相关函数 在函数 阅读全文
posted @ 2019-07-04 17:22 codestacklinuxer 阅读(1008) 评论(0) 推荐(0)
摘要:简介 sys_connect->inet_stream_connect->inet_stream_connect->tcp_v4_connect->tcp_connect对于tcp,inet_stream_connect()调用tcp_v4_connect发送三次握手的第一次syn请求, 并根据so 阅读全文
posted @ 2019-07-01 23:17 codestacklinuxer 阅读(1050) 评论(0) 推荐(0)
摘要:static int __must_check tcp_queue_rcv(struct sock *sk, struct sk_buff *skb, int hdrlen, bool *fragstolen) { int eaten; /* 取队尾 */ struct sk_buff *tail 阅读全文
posted @ 2019-07-01 23:14 codestacklinuxer 阅读(361) 评论(0) 推荐(0)
摘要:直接看代码 //后面整理相关信息 /* * This function implements the receiving procedure of RFC 793 for * all states except ESTABLISHED and TIME_WAIT. * It's called fro 阅读全文
posted @ 2019-07-01 23:13 codestacklinuxer 阅读(897) 评论(2) 推荐(0)
摘要:void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, unsigned int len) 主要是处理已经连理连接的输入的tcp数据包。tcp_rcv_established实际上 阅读全文
posted @ 2019-07-01 23:11 codestacklinuxer 阅读(792) 评论(0) 推荐(0)
摘要:后面详细分析 先上传 之前总结查看源码后的总结 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。所谓“小段”,指的是小于MSS尺寸的数据块,所谓“未被确认”,是指一个数据块发送出去后,没有收到对方发送的ACK确认该数据已收到。也就是没有收到ack 的时候不会再次发送数据出去。该算法 阅读全文
posted @ 2019-07-01 20:50 codestacklinuxer 阅读(798) 评论(0) 推荐(0)
摘要:各种网络协议的数据结构 阅读全文
posted @ 2019-05-11 17:09 codestacklinuxer 阅读(2308) 评论(0) 推荐(0)
摘要:qdisc __dev_xmit_skb net_tx_action 阅读全文
posted @ 2019-05-11 17:09 codestacklinuxer 阅读(4730) 评论(0) 推荐(0)
摘要:dev_queue_xmit 链路层 阅读全文
posted @ 2019-05-11 17:08 codestacklinuxer 阅读(1224) 评论(0) 推荐(0)
摘要:ip_push_pending_frames 阅读全文
posted @ 2019-05-11 17:08 codestacklinuxer 阅读(656) 评论(0) 推荐(0)
摘要:ip_mc_output ip_output 阅读全文
posted @ 2019-05-11 17:08 codestacklinuxer 阅读(2118) 评论(0) 推荐(0)
摘要:ip_append_data 接口的使用 ip报文的输出 阅读全文
posted @ 2019-05-11 17:08 codestacklinuxer 阅读(815) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 下一页