在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++网络编程 → Linux TCP IP 协议栈分析.pdf

Linux TCP IP 协议栈分析.pdf

C/C++网络编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:5.18M
  • 下载次数:44
  • 浏览次数:246
  • 发布时间:2020-03-31
  • 实例类别:C/C++网络编程
  • 发 布 人:兴科abc
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: linux tcp 分析 协议 IP

实例介绍

【实例简介】
【实例截图】

【核心代码】

目 录
目 录 ....................................................................................................................................... ii
图目录.......................................................................................................................................... iv
表目录........................................................................................................................................ viii
前 言 .................................................................................................................................... xiii
感 谢 .................................................................................................................................... xiv
第1章 协议栈概述...................................................................................................................... 1
1.1 操作系统及网络协议介绍................................................................................................ 1
1.1.1 Linux操作系统架构简介.......................................................................................... 1
1.1.2 网络协议发展介绍 .................................................................................................. 2
1.2 本书的组织和安排 .......................................................................................................... 4
1.2.1 基本的数据结构和计算机术语 ................................................................................ 5
1.2.2 图片风格演示.......................................................................................................... 6
1.2.3 本书的组织 ............................................................................................................. 7
第2章 系统初始化...................................................................................................................... 9
2.1 系统初始化流程简介....................................................................................................... 9
2.2 内核文件解读................................................................................................................ 13
2.2.1 ELF文件格式 ........................................................................................................ 13
2.2.2 Link Scripts知识 ................................................................................................... 15
2.2.3 Linux内核镜像研究 ............................................................................................... 16
2.3 中断及任务调度管理..................................................................................................... 23
2.3.1 中断及软中断模型 ................................................................................................ 23
2.3.2 各种语境下的切换 ................................................................................................ 32
2.3.3 内核下的同步与互斥............................................................................................. 33
2.3.4 各种异步手段........................................................................................................ 35
2.4 虚拟文件系统................................................................................................................ 37
2.5 网络协议栈各部分初始化.............................................................................................. 39
2.5.1 网络基础系统初始化............................................................................................. 40
2.5.2 网络内存管理........................................................................................................ 40
2.5.3 网络文件系统初始化............................................................................................. 48
2.5.4 网络协议初始化 .................................................................................................... 50
2.5.5 初步了解路由系统 ................................................................................................ 58
2.6 Linux设备管理 .............................................................................................................. 58
2.6.1 底层PCI模块的初始化 .......................................................................................... 60
2.6.2 网络设备接口初始化例程...................................................................................... 63
第3章 配置系统 ....................................................................................................................... 73

Linux2.6 协议栈源代码分析
第 iii 页
3.1 配置过程分析................................................................................................................ 73
3.1.1 配置是如何下达到内核的?.................................................................................. 73
3.1.2 socket系统调用 .................................................................................................... 74
3.1.3 ioctl代码的实现..................................................................................................... 81
3.1.4 Loopback接口的配置过程 .................................................................................... 90
3.1.5 IP别名的实现........................................................................................................ 92
3.2 回顾FIB系统初始化 ...................................................................................................... 96
3.3 深入FIB系统 ................................................................................................................. 99
3.4 FIB系统发生了什么样的变化 ...................................................................................... 108
3.5 直接访问路由表 .......................................................................................................... 122
3.6 接口状态变化的处理过程............................................................................................ 124
第4章 网络层实现的初步研究................................................................................................ 127
4.1 从Ping 127.0.0.1 开始旅程 ......................................................................................... 127
4.2 再次相遇Socket系统调用 ........................................................................................... 129
4.3 IP数据报文格式 .......................................................................................................... 129
4.4 send系统调用 ............................................................................................................. 130
4.5 在路由系统中游历 ...................................................................................................... 135
4.5.1 查找出口............................................................................................................. 135
4.5.2 当目的地址是远端主机时.................................................................................... 146
4.5.3 创建对应路由cache表项..................................................................................... 147
4.5.4 创建对应邻居表项 .............................................................................................. 151
4.6 回到发送的路径 .......................................................................................................... 156
4.7 ARP的作用 ................................................................................................................. 165
4.7.1 ARP的机制 ......................................................................................................... 166
4.7.2 ARP报文格式...................................................................................................... 166
4.7.3 Linux ARP协议的实现 ........................................................................................ 167
4.8 到达设备驱动层 .......................................................................................................... 180
4.8.1 数据链路层帧格式 .............................................................................................. 180
4.8.2 Loopback设备的发送过程 .................................................................................. 183
4.9 从中断到路由系统 ...................................................................................................... 184
4.10 ICMP........................................................................................................................... 198
4.10.1 ICMP报文格式.................................................................................................... 199
4.10.2 ping本机地址及回环地址.................................................................................... 200
4.10.3 ping外部地址 ...................................................................................................... 202
4.11 从内核到用户.............................................................................................................. 207
第5章 传输层实现的研究....................................................................................................... 211
5.1 进一步到UDP ..............................................................................................................211
5.1.1 UDP用户代码 ......................................................................................................211
5.1.2 UDP数据报文格式 .............................................................................................. 212

Linux2.6 协议栈源代码分析
第 iv 页
5.1.3 服务器端bind的实现 ........................................................................................... 212
5.1.4 接收代码............................................................................................................. 217
5.1.5 释放UDP的socket .............................................................................................. 219
5.2 更高阶的TCP.............................................................................................................. 221
5.2.1 TCP用户代码...................................................................................................... 221
5.2.2 TCP数据报文格式 .............................................................................................. 222
5.2.3 TCP栈及socket的初始化.................................................................................... 223
5.2.4 服务器端bind和listen的实现 ............................................................................... 225
5.2.5 服务器端accept的实现 ....................................................................................... 230
5.2.6 客户端connect的实现——发起三次握手 ............................................................ 232
5.2.7 TCP报文的接收 .................................................................................................. 240
5.2.8 3 次握手的实现................................................................................................... 245
5.2.9 内核收到报文转到用户态.................................................................................... 247
5.2.10 释放TCP的socket............................................................................................... 252
5.3 TCP拥塞控制.............................................................................................................. 256
5.3.1 TCP拥塞控制机制介绍 ....................................................................................... 257
5.3.2 Linux内核拥塞控制功能的实现........................................................................... 259
第6章 Select的实现机制 ....................................................................................................... 261
6.1.1 用户如何使用select?......................................................................................... 262
6.1.2 Select的内核实现 ............................................................................................... 263
第7章 2层功能 ....................................................................................................................... 268
7.1 基本的 2 层知识.......................................................................................................... 268
7.2 Linux桥实现的基本框架.............................................................................................. 268
7.3 VLAN .......................................................................................................................... 269
7.3.1 VLAN概念........................................................................................................... 269
7.3.2 Linux下VLAN——存在巨大的缺陷 ..................................................................... 270
7.4 LACP协议................................................................................................................... 276
7.4.1 LACP简介........................................................................................................... 276
7.4.2 LACP在Linux中的实现 ....................................................................................... 278
后 记 ................................................................................................................................... 284
参考文献 ................................................................................................................................... 285
图目录
图表 1-1 操作系统架构图 ................................................................................................................ 2
图表 1-2 IP为什么重要 ..................................................................................................................... 3

Linux2.6 协议栈源代码分析
第 v 页
图表 1-3 真实操作系统协议栈实现 ................................................................................................ 4
图表 1-4 list和hlist的区别 ................................................................................................................. 6
图表 1-5 函数调用树的演示 ............................................................................................................ 7
图表 2-1Linux内核编译——网络选项部分..................................................................................... 9
图表 2-2 系统启动函数序列图 ....................................................................................................... 10
图表 2-3rest_init函数调用树............................................................................................................11
图表 2-4init函数调用关系树........................................................................................................... 12
图表 2-5ELF文件格式..................................................................................................................... 14
图表 2-6 普通的ELF段排列............................................................................................................ 14
图表 2-7 中断向量和中断请求号之间的关系 .............................................................................. 24
图表 2-8 do_IRQ函数调用树 .......................................................................................................... 27
图表 2-9 系统调用发生的情况 ...................................................................................................... 29
图表 2-10VFS与底层各模块关系................................................................................................... 38
图表 2-11 super_blocks和file_systems链表 .................................................................................... 38
图表 2-12 sock和sk_buff的关系...................................................................................................... 41
图表 2-13 skbuff_fclone_cache中的内存操作................................................................................ 46
图表 2-14 不同skb cache中的内存操作 ........................................................................................ 46
图表 2-15 各协议层函数对网络报文头的理解 ............................................................................ 48
图表 2-16 kern_mount函数调用树.................................................................................................. 49
图表 2-17 sockfs_get_sb函数调用树 .............................................................................................. 50
图表 2-18 inet_init调用树................................................................................................................ 51
图表 2-19 tcp_prot, udp_prot, raw_prot结构................................................................................... 52
图表 2-20 协议栈的具体形式 ........................................................................................................ 57
图表 2-21 pci_module_init函数调用树........................................................................................... 61
图表 2-22 bus_match函数调用树.................................................................................................... 62
图表 2-23 drv->probe的被调用关系树 ........................................................................................... 63
图表 2-24 系统装入各驱动程序的步骤 ........................................................................................ 63
图表 2-25 drvprobe实现的基本功能........................................................................................... 65
图表 2-26net_device和in_device、设备特定数据之间的关系 ..................................................... 71
图表 3-1FD的意义........................................................................................................................... 75
图表 3-2sys_socket的函数调用树................................................................................................... 76
图表 3-3sock_alloc函数调用树....................................................................................................... 76
图表 3-4 soket_alloc结构................................................................................................................. 77
图表 3-5file、socket、sock之间的关系 ......................................................................................... 80
图表 3-6 sock结构在不同协议的数据块........................................................................................ 81
图表 3-7ioctl的内核实现................................................................................................................. 82
图表 3-8 inet_set_ifa之后数据结构之间的关系 ............................................................................ 86
图表 3-9 devinet_ioctl函数调用树 .................................................................................................. 87
图表 3-10 inet_set_ifa发送NETDEV_UP事件 ............................................................................... 87

Linux2.6 协议栈源代码分析
第 vi 页
图表 3-11 rtentry被拆分成 3 个部分............................................................................................... 88
图表 3-12 rtnetlink_init函数调用树 ................................................................................................ 88
图表 3-13 probe发起NET_DEV_REGISTER事件 ......................................................................... 90
图表 3-14 dev_open发起NETDEV_UP事件................................................................................... 91
图表 3-15 IP别名的用途 ................................................................................................................. 93
图表 3-16 ifa_list的组织形式.......................................................................................................... 95
图表 3-17 FIB和RT cache的关系.................................................................................................... 96
图表 3-18 devinet_init函数调用树............................................................................................... 98
图表 3-19ip_fib_init函数调用树 ..................................................................................................... 98
图表 3-20 Linux内核路由模块结构.............................................................................................. 100
图表 3-21 FIB规则和FIB表的关系............................................................................................... 101
图表 3-22 不同算法的fib_table的结构不同................................................................................ 103
图表 3-23fib_table和fn_zone、fib_node结构的关系................................................................... 107
图表 3-24fib_inetaddr_event函数内部实现.................................................................................. 108
图表 3-25 fn_hash_insert之后fib_table和fn_zone及fib_node之间的关系 ...................................118
图表 3-26 fib_node与fib_alias、fib_info、fib_nh结构的关系.....................................................119
图表 3-27 fib_info_hash和fib_info_devhash的关系......................................................................119
图表 3-28 第一次完成FIB表插入................................................................................................ 120
图表 3-29 第二次完成FIB表插入................................................................................................. 120
图表 3-30 第三次完成FIB表插入................................................................................................. 121
图表 3-31 第四次完成FIB表插入................................................................................................. 121
图表 3-32 完成FIB表插入............................................................................................................ 122
图表 3-33 对main FIB表插入....................................................................................................... 122
图表 3-34 常见路由软件架构 ...................................................................................................... 123
图表 3-35linkwatch_run_queue内部主要逻辑 ............................................................................. 126
图表 3-36 NETDEV_CHANGE事件............................................................................................. 126
图表 4-1 IP层数据报文格式.......................................................................................................... 130
图表 4-2 sys_send函数调用树....................................................................................................... 131
图表 4-3 meghdr如何指向用户空间数据..................................................................................... 132
图表 4-4 rt_hash_table和rtable、dst_entry的关系 ....................................................................... 136
图表 4-5fib_result、fib_info、fib_nh的关系 ............................................................................... 142
图表 4-6 __ip_route_output_key内部逻辑和FIB、路由cache之间的关系................................. 151
图表 4-7__neigh_lookup_errno内部逻辑图.................................................................................. 152
图表 4-8ip_output函数调用树....................................................................................................... 159
图表 4-9 hh_cache的结构关系图.................................................................................................. 160
图表 4-10 邻居子系统初次发送过程的序列图 ........................................................................... 165
图表 4-11 ARP报文格式................................................................................................................ 166
图表 4-12 arp_init函数调用树.................................................................................................... 168
图表 4-13neigh_table各成员的关系图 ......................................................................................... 170

Linux2.6 协议栈源代码分析
第 vii 页
图表 4-14 arp_send函数调用树..................................................................................................... 173
图表 4-15 arp_rcv函数调用树....................................................................................................... 174
图表 4-16 ping操作的基本流程.................................................................................................... 180
图表 4-17 以太网层数据报文格式 ............................................................................................... 181
图表 4-18 不同类型的驱动程序造成不同的报文接收方式 ...................................................... 184
图表 4-19 __netif_rx_schedule函数调用树 .................................................................................. 187
图表 4-20 net_rx_actiion函数调用树............................................................................................ 188
图表 4-21 报文到达被不同层次协议处理的原理图 .................................................................. 189
图表 4-22 netif_receive_skb函数调用树....................................................................................... 190
图表 4-23ip_route_input函数调用树 ............................................................................................ 192
图表 4-24 dst_input函数调用树 .................................................................................................... 197
图表 4-25ICMP数据报文格式 ...................................................................................................... 199
图表 4-26 icmp_rcv处理接收到的消息 ........................................................................................ 200
图表 4-27 icmp_echo函数调用树.................................................................................................. 200
图表 4-28 协议栈的交互——目的地址是本机 ........................................................................... 201
图表 4-29 协议栈的交互——目的地址是直连主机 ................................................................... 202
图表 4-30 协议栈的交互——目的地址是远端主机 ................................................................... 204
图表 4-31 ICMP重定向示意图 ..................................................................................................... 204
图表 4-32 ipmp_redirect函数调用树............................................................................................. 205
图表 4-33 sys_rcv函数调用树....................................................................................................... 207
图表 4-34 从两个方向来理解报文是如何到达用户层的 .......................................................... 208
图表 5-1UDP数据报文格式 .......................................................................................................... 212
图表 5-2 udp_hash数据结构.......................................................................................................... 216
图表 5-3 udp_rcv函数调用树........................................................................................................ 217
图表 5-4 release函数...................................................................................................................... 220
图表 5-5 inet_release函数调用树.................................................................................................. 220
图表 5-6TCP数据报文格式........................................................................................................... 222
图表 5-7 sys_listen函数调用树 ..................................................................................................... 226
图表 5-8 bind和listen都要调用tcp_v4_get_port函数 ................................................................... 227
图表 5-9 tcp_hashinfo中的内部数据结构 .................................................................................... 228
图表 5-10 inet_csk_listen_start函数调用树 .................................................................................. 230
图表 5-11 sys_accept函数调用树.................................................................................................. 231
图表 5-12 sys_connct在不同的协议下的执行路径 ..................................................................... 234
图表 5-13ip_local_deliver_finish函数调用tcp的树...................................................................... 240
图表 5-14tcp_v4_conn_request函数调用树.................................................................................. 245
图表 5-15 3 次握手在内核中的实现序列图 ................................................................................ 246
图表 5-16tcp_transmit_skb调用树 ................................................................................................ 247
图表 5-17 tcp_close函数调用树.................................................................................................... 255
图表 5-18 网络负载与吞吐量及响应时间的关系 ....................................................................... 256

Linux2.6 协议栈源代码分析
第 viii 页
图表 5-19(a) 慢启动和拥塞避免.................................................................................................. 258
图表 5-20(b) 快速重传和快速恢复 ............................................................................................. 258
图表 5-21 TCP Reno的状态机....................................................................................................... 259
图表 6-1 典型的软件包实现形式 ................................................................................................ 262
图表 6-2 core_sys_select函数调用树............................................................................................ 265
图表 7-1 netif_receive_skb调用handle_bridge分支...................................................................... 268
图表 7-2 VLAN使用场景之一 ...................................................................................................... 270
图表 7-3 VLAN的格式 .................................................................................................................. 270
图表 7-4 vlan_proto_init函数调用树 ............................................................................................ 271
图表 7-5 sock_ioctl关于VLAN的分支.......................................................................................... 271
图表 7-6 VLAN“设备”组织图 .................................................................................................. 274
图表 7-7 LACP应用场景............................................................................................................... 276
图表 7-8 链路聚合场景中对上层协议的影响 ............................................................................ 277
图表 7-9 LACP报文格式............................................................................................................... 278
图表 7-10 协议原理图 .................................................................................................................. 279
图表 7-11 LACP状态机的运转图 ................................................................................................. 280
图表 7-12 bonding_init函数调用树............................................................................................... 281
图表 7-13 bond_3ad_lacpdu_recv函数调用树.............................................................................. 283
表目录
代码段 1-1 hlist_head的定义 6
代码段 2-1do_initcalls函数 13
代码段 2-2init.h 19
代码段 2-3Linux内核ld scripts 21
代码段 2-4 内核镜像输出init的打印 23
代码段 2-5 2.4 中断定义宏 25
代码段 2-6init_IRQ函数 26
代码段 2-7do_IRQ函数 28
代码段 2-8handle_IRQ_event函数 28
代码段 2-9 sys_socketcall函数 30
代码段 2-10softirq_init函数 30
代码段 2-11open_softirq函数 31
代码段 2-12__do_softirq函数 31
代码段 2-13request_irq函数 32
代码段 2-14 notifier_call_chain函数 37
代码段 2-15 sock_init函数 40
代码段 2-16 sk_buff_head 结构 41

Linux2.6 协议栈源代码分析
第 ix 页
代码段 2-17 sk_buff 结构 43
代码段 2-18 __alloc_skb函数 46
代码段 2-19 kfree_skbmem函数 47
代码段 2-20 tcp_alloc_pskb函数 47
代码段 2-21tcp_free_skb函数 48
代码段 2-22 init_inodecache 函数 48
代码段 2-23 do_kern_mount函数 49
代码段 2-24 inet_family_ops结构 52
代码段 2-25inet_add_protocol函数 53
代码段 2-26 inet_protosw 结构 54
代码段 2-27 inet_register_protosw函数 55
代码段 2-28 inet_stream_ops,inet_dgram_ops,inet_sockraw_ops结构 55
代码段 2-29 packet_type 结构定义 56
代码段 2-30 dev_add_pack函数 56
代码段 2-31 net_dev_init函数 60
代码段 2-32 driver_attach函数 62
代码段 2-33 __pci_device_probe函数 62
代码段 2-34 register_netdevice函数 67
代码段 2-35 net_device结构 70
代码段 2-36 loopback_dev 结构 70
代码段 2-37 in_device结构 71
代码段 3-1 配置ip地址的用户层代码 74
代码段 3-2 socket_file_ops结构定义 77
代码段 3-3 inet_create函数 79
代码段 3-4 ifreq 结构 83
代码段 3-5 devinet_ioctl函数 85
代码段 3-6 inet_set_ifa函数 85
代码段 3-7 inetdev_init函数 86
代码段 3-8 rtmsg_ifa函数 89
代码段 3-9 rtmsg机构 90
代码段 3-10 loopback设备对NETDEV_UP事件的处理 91
代码段 3-11 ifcfg-lo文件里的内容 92
代码段 3-12 inet_rtm_newaddr函数 94
代码段 3-13 inet_insert_ifa函数 95
代码段 3-14 ip_rt_init函数 97
代码段 3-15 fib_hash_init函数 99
代码段 3-16 fib_rule结构 102
代码段 3-17 fib_table结构 103
代码段 3-18 fn_zone结构 104

Linux2.6 协议栈源代码分析
第 x 页
代码段 3-19 fib_node结构 104
代码段 3-20 fib_alias结构 105
代码段 3-21 fib_props数组定义 106
代码段 3-22 fib_info结构 107
代码段 3-23 fib_nh结构 108
代码段 3-24 fib_add_ifaddr函数 109
代码段 3-25 fib_magic函数 110
代码段 3-26 fn_hash_insert函数 112
代码段 3-27 fn_new_zone函数 113
代码段 3-28 fib_create_info函数 116
代码段 3-29 fib_check_nh函数 118
代码段 3-30 ip_rt_ioctl函数 124
代码段 3-31 inet_rtm_newroute 124
代码段 3-32 netif_carrier_on函数 125
代码段 4-1 ping的伪代码 129
代码段 4-2 raw socket情况下的inet_create函数 129
代码段 4-3 msghdr 结构 131
代码段 4-4 iovec 结构 132
代码段 4-5inet_sendmsg函数 132
代码段 4-6 raw_sendmsg函数 134
代码段 4-7 rtabl数据结构 136
代码段 4-8 flowi结构 137
代码段 4-9 __ip_route_output_key函数 139
代码段 4-10 ip_route_output_slow函数 142
代码段 4-11 fib_lookup函数 143
代码段 4-12 fn_hash_lookup函数 144
代码段 4-13 fib_semantic_match函数 145
代码段 4-14 inet_select_addr 146
代码段 4-15 fib_select_default函数 146
代码段 4-16 fn_hash_select_default函数 147
代码段 4-17 ip_mkroute_output_def函数 148
代码段 4-18 __mkroute_output函数 149
代码段 4-19 rt_intern_hash函数 151
代码段 4-20arp_bind_neighbour函数 152
代码段 4-21 neigh_create函数 153
代码段 4-22 neigh_alloc函数 154
代码段 4-23 arp_constructor函数 155
代码段 4-24 ip_push_pending_frames函数 157
代码段 4-25 raw_send_hdrinc函数 158

Linux2.6 协议栈源代码分析
第 xi 页
代码段 4-26 ip_finish_output2 159
代码段 4-27neigh_resolve_output函数 161
代码段 4-28 neigh_event_send函数 161
代码段 4-29 __neigh_event_send函数 162
代码段 4-30 neigh_hh_init函数 163
代码段 4-31 neigh_timer_handler函数 165
代码段 4-32 neigh_table 结构 169
代码段 4-33 neigh_parms 结构 171
代码段 4-34 neigh_table 结构 171
代码段 4-35 neigh_table_init函数 172
代码段 4-36 arp_solicit函数 173
代码段 4-37 arp_process函数 176
代码段 4-38 neigh_update函数 179
代码段 4-39 neigh_suspect函数 179
代码段 4-40 dev_queue_xmit函数 183
代码段 4-41 loopback_xmit函数 184
代码段 4-42 netif_rx函数 186
代码段 4-43 报文接收队列的等价代码 186
代码段 4-44 不同的接收设备使用不同的接收队列 187
代码段 4-45 netif_receive_skb函数 189
代码段 4-46 ip_rcv_finish函数 191
代码段 4-47 ip_route_input_slow函数 194
代码段 4-48 __mkroute_input函数 196
代码段 4-49 ip_local_deliver函数 197
代码段 4-50 ip_local_deliver_finish函数 198
代码段 4-51 ip_forward 203
代码段 4-52 ip_rt_redirect函数 207
代码段 4-53 sock_init_data函数 209
代码段 4-54 sock_def_readable函数 209
代码段 4-55 raw_v4_input函数 210
代码段 5-1 sys_bind函数 213
代码段 5-2 inet_bind函数 215
代码段 5-3 udp_v4_get_port 216
代码段 5-4 udp_v4_lookup_longway函数 218
代码段 5-5 skb_recv_datagram函数 219
代码段 5-6 __sk_del_node_init函数 221
代码段 5-7 tcp_v4_init函数 224
代码段 5-8 tcp_init函数 224
代码段 5-9 tcp_v4_init_sock函数 225

Linux2.6 协议栈源代码分析
第 xii 页
代码段 5-10 inet_listen函数 226
代码段 5-11 inet_csk_listen_start函数 227
代码段 5-12 inet_csk_get_port函数 229
代码段 5-13 inet_csk_wait_for_connect函数 232
代码段 5-14 udp_sendmsg函数部分代码 234
代码段 5-15 inet_stream_connect函数 235
代码段 5-16 tcp_v4_connect函数 237
代码段 5-17 inet_hash_connect函数 239
代码段 5-18 ip_route_newports函数 240
代码段 5-19tcp_v4_do_rcv函数 241
代码段 5-20tcp_rcv_established函数 245
代码段 5-21 tcp_recvmsg 252
代码段 5-22 tcp_close函数 254
代码段 5-23 tcp_reno_cong_avoid函数 260
代码段 6-1select 用法 263
代码段 6-2sys_select函数 264
代码段 6-3 datagram_poll函数 266
代码段 6-4 __pollwait函数 266
代码段 7-1 register_vlan_device函数 274
代码段 7-2 vlan_dev_hard_start_xmit函数 275
代码段 7-3 bond_init函数 282
代码段 7-4 bond_open 282
代码段 7-5 bond_3ad_state_machine_handler函数 283

标签: linux tcp 分析 协议 IP

实例下载地址

Linux TCP IP 协议栈分析.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警