Linux 4.4.0 内核源码分析TCP实现.pdf

Linux,pdf,tcp,源码,计算机及AI
文档页数:239
文档大小:2.97MB
文档格式:pdf
文档分类:计算机及AI
上传会员:
上传日期:
最后更新:

UNDERSTANDING LINUX KERNEL VERSION4.4.0 TCPPROTOCOLPART LINUX4.4.0内核源码分析 TCP实现 2016年7月6日
目录 1准备部分 1.1用户层TCP. 1.2探寻 tcp_prot,地图 get- 1 1.3 RFC. 2 1.3.1 RFC793 : Transmission Control Protocol 2 1.3.2 RFC1323 : TCP Extensions for High Performance 5 1.3.3 RFC1337 : TIME-WAIT Assassination Hazards in TCP 6 1.3.4 RFC2018 : TCP Selective Acknowledgement Options . 8 1.3.5 RFC2525 : Known TCP Implementation Problems . 9 1.3.6 RFC3168 : The Addition of Explicit Congestion Notification (ECN) to IP.. 9 1.3.7 RFC6937 : Proportional Rate Reduction for TCP 10 1.3.8 RFC7413 : TCP Fast Open(Draft) 10 2网络子系统相关核心数据结构 12 2.1网络子系统数据结构架构 12 2.2sock底层数据结构 12 2.2.1sock_mon 12 2.2.2 sock 14 2.2.3 request_sock 18 2.2.4sk_buff 19 2.2.5 msghdr 23 2.3inet层相关数据结构 23 2.3.1 ip_options 23 2.3.2 inet_request_sock 24 2.3.3 inet_connection_sock_af_ops 24 2.3.4inet_connect_sock 25
2.3.5 inet_timevait_sock 26 2.3.6 sockaddr & sockaddr_in. 27 2.3.7 sdod 2.4路由相关数据结构 29 2.4.1 dst_entry 29 2.4.2 rtable 30 2.4.3 flowi 31 2.5TCP层相关数据结构 31 2.5.1 tcphdr . 31 2.5.2 tcp_options_received 32 2.5.3 tcp_sacktag_state 33 2.5.4 tcp_sock 33 2.5.5 tcp_fastopen_cookie 88 2.5.6 tcp_fastopen_request 88 2.5.7 tcp_request_sock 88 2.5.8 tcp_skb_cb 39 3 TCP输出 41 3.1数据发送接口 41 3.1.1 tcp_sendmsg 41 3.1.2 tcp_sendmsg_fastopen 46 3.1.3TCP Push 操作 46 3.2输出到IP层 48 3.2.1 tcp_urite_xmit 48 3.2.2 tcp_transmit_skb 51 3.2.3 tcp_select_window(struct sk_buff *skb) 54 4TCP输入 89 4.1Linux内核网络数据接收流程概览. 58 4.2自底向上调用与自顶向下调用 59 4.2.1 自底向上处理 59 4.2.2 自顶向下处理 65 5TCP建立连接 77 5.1TCP主动打开-客户 77 5.1.1 基本流程 77 5.1.2 第一次握手:构造并发送SYN包 77 5.1.3 第二次握手:接收SYNACK包 82 5.1.4 第三次握手:发送ACK包 93 5.2TCP被动打开-服务器 94 5.2.1基本流程 94 ii
5.2.2 第一次握手:接受SYN段 95 5.2.3 第二次握手:发送SYNACK段 103 5.2.4第三次握手:接收ACK段 107 6TCP拥塞控制 113 6.1拥塞控制实现 113 6.1.1拥塞控制状态机 113 6.1.2显式拥塞通知(ECN). 118 6.1.3拥塞控制状态的处理及转换 120 6.2拥塞控制引擎 123 6.2.1接口 124 6.2.2CUBIC拥塞控制算法 127 7TCP释放连接 138 7.1 tcp_shutdown 138 7.2主动关闭 139 7.2.1 第一次握手:发送FIN 139 7.2.2 第二次握手:接收ACK 145 7.2.3 第三次握手:接受FIN 149 7.2.4 第四次握手:发送ACK 152 7.2.5 同时关闭 154 7.2.6 TIME_WAIT. 155 7.3被动关闭 157 7.3.1 基本流程 157 7.3.2 第一次握手:接收FIN 157 7.3.3 第二次握手:发送FIN的ACK 159 7.3.4 第三次握手:发送FIN 159 7.3.5 第四次握手:接收FIN的ACK 160 8非核心代码分析 161 8.1BSD Socket层 161 8.1.1 msg_flag 161 8.1.2 数据报类型 162 8.1.3 Sock CheckSum . 163 8.1.4 SK Stream 165 8.1.5 sk_stream_wait_connect. 165 8.1.6 pskb_may_pul1 166 8.2Inet 167 8.2.1 __inet_stream_connect 167 8.2.2 inet_hash_connect && __inet_hash_connect 169 8.2.3 inet_csk_reqsk_queue_add 171 ii
8.2.4 inet_twsk_put 172 8.3TCP相关参数 172 8.3.1 TCP标志宏 177 8.3.2 函数宏, 178 8.4TCP CheckSum. 178 8.4.1 tcp_checksum_plete 178 8.4.2 tcp_v4_checksum_init 179 8.5 TCP Initialize . 179 8.5.1 TCP Initialize Handle 179 8.6 TCP Options 181 8.6.1 TCP Options Handle . 182 8.7TCP PAWS 188 8.7.1 TCP PAWS Flags 188 8.7.2 tcp_paws_check 189 8.7.3 tcp_paws_reject 189 8.8TCP TimeStamp 190 8.8.1 tcp_atore_ts_recent 190 8.8.2 tcp_replace_ts_recent 190 8.9 TCP ACK 191 8.9.1 ACK Check 191 8.9.2 ACK Update 195 8.10 TCP Window 196 8.10.1 Window Compute 196 8.10.2 Window Update 197 8.11 TCP Urgent Data 199 8.11.1相应标识 199 8.11.2 TCP Urgent Check 199 8.11.3 TCP Urgent Deal 201 8.12 Congestion Control . 202 8.12.1 COngestion Control Flag 202 8.12.2 Congestion Control Window 202 8.12.3 Congestion Control Window Undo 204 8.12.4 About Restransmit 212 8.13 TCP Finish 212 8.13.1 Time Compute 212 8.14 TCP Close 213 8.14.1 TCP Close Flags 213 8.14.2 TCP State Machine 213 8.14.3 tcp_done 214 iv

资源链接请先登录(扫码可直接登录、免注册)
①本文档内容版权归属内容提供方。如果您对本资料有版权申诉,请及时联系我方进行处理(联系方式详见页脚)。
②由于网络或浏览器兼容性等问题导致下载失败,请加客服微信处理(详见下载弹窗提示),感谢理解。
③本资料由其他用户上传,本站不保证质量、数量等令人满意,若存在资料虚假不完整,请及时联系客服投诉处理。

投稿会员:匿名用户
我的头像

您必须才能评论!

手机扫码、免注册、直接登录

 注意:QQ登录支持手机端浏览器一键登录及扫码登录
微信仅支持手机扫码一键登录

账号密码登录(仅适用于原老用户)