图书介绍
Linux内核源码剖析 TCP/IP实现 上2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 樊东东,莫澜编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111323730
- 出版时间:2011
- 标注页数:550页
- 文件大小:65MB
- 文件页数:562页
- 主题词:Linux操作系统-机器代码程序-程序分析;计算机网络-通信协议
PDF下载
下载说明
Linux内核源码剖析 TCP/IP实现 上PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 预备知识1
1.1 应用层配置诊断工具2
1.1.1 iputils2
1.1.2 net-tools2
1.1.3 iproute22
1.2 内核空间与用户空间的接口2
1.2.1 procfs2
1.2.2 sysctl(/proc/sys目录)4
1.2.3 sysfs(/sys文件系统)5
1.2.4 ioctl系统调用6
1.2.5 netlink套接口6
1.3 网络I/O加速6
1.3.1 TSO/GSO7
1.3.2 I/O AT8
1.4 其他8
1.4.1 slab分配器9
1.4.2 RCU9
第2章 网络体系结构概述10
2.1 引言10
2.2 协议简介10
2.3 网络架构11
2.4 系统调用接口11
2.5 协议无关接口12
2.6 传输层协议12
2.7 套接口缓存13
2.8 设备无关接口14
2.9 设备驱动程序14
2.10 网络模块源代码组织14
第3章 套接口缓存15
3.1 引言15
3.2 sk_buff结构15
3.2.1 网络参数和内核数据结构16
3.2.2 SKB组织相关的变量19
3.2.3 数据存储相关的变量20
3.2.4 通用的成员变量21
3.2.5 标志性变量24
3.2.6 特性相关的成员变量25
3.3 skb_shared_info结构25
3.3.1 “零拷贝”技术25
3.3.2 对聚合分散I/O数据的支持27
3.3.3 对GSO的支持30
3.3.4 访问skb_shared_info结构31
3.4 管理函数31
3.4.1 SKB的缓存池31
3.4.2 分配SKB32
3.4.3 释放SKB34
3.4.4 数据预留和对齐36
3.4.5 克隆和复制SKB38
3.4.6 链表管理函数42
3.4.7 添加或删除尾部数据42
3.4.8 拆分数据:skb_split()44
3.4.9 重新分配SKB的线性数据区:pskb_expand_head()46
3.4.10 其他函数46
第4章 网络模块初始化48
4.1 引言48
4.2 网络模块初始化顺序48
4.3 优化基于宏的标记49
4.4 网络设备处理层初始化52
第5章 网络设备55
5.1 PCI设备55
5.1.1 PCI驱动程序相关结构55
5.1.2 注册PCI驱动程序57
5.2 与网络设备有关的数据结构59
5.2.1 net_device结构59
5.2.2 网络设备有关结构的组织71
5.2.3 相关函数72
5.3 网络设备的注册73
5.3.1 设备注册的时机73
5.3.2 分配net_device结构空间73
5.3.3 网络设备注册过程75
5.3.4 注册设备的状态迁移79
5.3.5 设备注册状态通知79
5.3.6 引用计数80
5.4 网络设备的注销80
5.4.1 设备注销的时机80
5.4.2 网络设备注销过程81
5.5 网络设备的启用86
5.6 网络设备的禁用88
5.7 与电源管理交互89
5.7.1 挂起设备90
5.7.2 唤醒设备90
5.8 侦测连接状态改变91
5.8.1 调度处理连接状态改变事件91
5.8.2 linkwatch标志95
5.9 从用户空间配置设备相关信息95
5.9.1 ethtool95
5.9.2 媒体独立接口97
5.10 虚拟网络设备97
第6章 IP编址99
6.1 接口和IP地址99
6.1.1 主IP地址、从属IP地址和IP别名99
6.1.2 IP地址的组织99
6.1.3 in_device结构100
6.1.4 in_ifaddr结构101
6.2 函数102
6.2.1 inetdev_init()102
6.2.2 inetdev_destroy()104
6.2.3 inet_select_addr()104
6.2.4 inet_confirm_addr()106
6.2.5 inet_addr_onlink()107
6.2.6 inetdev_by_index()107
6.2.7 inet_ifa_byprefix()108
6.2.8 inet_abc_len()108
6.3 IP地址的设置109
6.3.1 netlink接口109
6.3.2 inet_insert_ifa()111
6.3.3 inet_del_ifa()112
6.4 ioctl115
6.5 inetaddr_chain通知链121
第7章 接口层的输入122
7.1 系统参数122
7.2 接口层的ioctl123
7.2.1 SIOCxIFxxx类命令123
7.2.2 SIOCETHTOOL126
7.2.3 私有命令127
7.3 初始化127
7.4 softnet_data结构128
7.5 NAPI方式130
7.5.1 网络设备中断例程131
7.5.2 网络输入软中断131
7.5.3 轮询处理133
7.6 非NAPI方式134
7.7 接口层输入报文的处理137
7.7.1 报文接收例程137
7.7.2 netif_receive_skb()138
7.7.3 dev_queue_xmit_nit()141
7.8 响应CPU状态的变化142
7.9 netpoll143
7.9.1 netpoll相关结构143
7.9.2 注册netpoll实例145
7.9.3 netpoll的输入148
7.9.4 netpoll的输出156
7.9.5 tx_work工作队列159
7.9.6 netpoll实例:netconsole160
第8章 接口层的输出163
8.1 输出接口163
8.1.1 dev_queue_xmit()163
8.1.2 dev_hard_start_xmit()167
8.1.3 e100的输出接口:e100_xmi_frame()168
8.2 网络输出软中断168
8.2.1 netif_schedule()168
8.2.2 net_tx_action()169
8.3 网络设备不支持GSO时的处理170
8.3.1 dev_gso_cb私有控制块171
8.3.2 dev_gso_segment()171
8.3.3 skb_gso_segmem()172
第9章 流量控制174
9.1 通过流量控制后输出174
9.1.1 dev_queue_xmit()175
9.1.2 qdisc_restart()176
9.2 构成流量控制的三种元素178
9.2.1 排队规则179
9.2.2 类186
9.2.3 过滤器189
9.3 默认的FIFO排队规则192
9.3.1 pfifo_fast_init()194
9.3.2 pfifo_fast_reset()194
9.3.3 pfifo_fast_enqueue()194
9.3.4 pfifo_fast_dequeue()195
9.3.5 pfifo_fast_requeue()195
9.4 netlink的tc接口195
9.5 排队规则的创建接口197
9.5.1 类的创建接口201
9.5.2 过滤器的创建接口204
第10章 Internet协议族209
10.1 net_proto_family结构209
10.2 inet_protosw结构210
10.3 net_protocol结构212
10.4 Internet协议族的初始化214
第11章 IP:网际协议217
11.1 引言217
11.1.1 IP首部218
11.1.2 IP数据报的输入与输出219
11.2 IP的私有信息控制块220
11.3 系统参数220
11.4 初始化223
11.5 IP层套接口选项223
11.6 ipv4_devconf结构227
11.7 套接口的错误队列229
11.7.1 添加ICMP差错信息231
11.7.2 添加由本地产生的差错信息232
11.7.3 读取错误信息233
11.8 报文控制信息235
11.8.1 IP控制信息块235
11.8.2 报文控制信息的输出235
11.8.3 报文控制信息的输入236
11.9 对端信息块237
11.9.1 系统参数239
11.9.2 对端信息块的创建和查找239
11.9.3 对端信息块的删除241
11.9.4 垃圾回收242
11.10 IP数据报的输入处理244
11.10.1 IP数据报输入到本地247
11.10.2 IP数据报的转发249
11.11 IP数据报的输出处理253
11.11.1 IP数据报输出到设备253
11.11.2 TCP输出的接口255
11.11.3 UDP输出的接口261
11.12 IP层对GSO的支持275
11.12.1 inet_gso_segment()275
11.12.2 inet_gso_send_check()277
第12章 IP选项处理278
12.1 IP选项278
12.1.1 选项列表的结束符279
12.1.2 空操作279
12.1.3 安全选项279
12.1.4 严格源路由选项280
12.1.5 宽松源路由选项281
12.1.6 记录路由选项282
12.1.7 流标识选项282
12.1.8 时间戳选项283
12.1.9 路由器警告选项283
12.2 ip_options结构284
12.3 在IP数据报中构建IP选项285
12.4 复制IP数据报中选项到指定的ip_options结构286
12.5 处理待发送IP分片中的选项290
12.6 解析IP选项291
12.7 还原在校验IP选项时修改的IP选项297
12.8 处理转发IP数据报中的IP选项298
12.9 处理IP数据报的源路由选项299
12.10 解析并处理IP首部中的IP选项300
12.11 路由警告选项的处理301
12.12 由控制信息生成IP选项信息块302
第13章 IP的分片与组装303
13.1 系统参数303
13.2 分片303
13.2.1 快速分片306
13.2.2 慢速分片309
13.3 组装312
13.3.1 ipq结构312
13.3.2 ipq散列表和链表的维护315
13.3.3 ipq散列表的重组316
13.3.4 超时IP分片的清除317
13.3.5 垃圾收集318
13.3.6 相关分片组装函数319
13.3.7 分片组装327
第14章 ICMP:Internet控制报文协议330
14.1 ICMP报文结构330
14.2 注册ICMP报文类型330
14.3 系统参数330
14.4 ICMP的初始化332
14.5 输入处理333
14.5.1 差错处理337
14.5.2 重定向处理342
14.5.3 请求回显343
14.5.4 时间戳请求345
14.5.5 地址掩码请求和应答346
14.6 输出处理346
14.6.1 发送ICMP报文346
14.6.2 发送回显应答和时间戳应答报文350
第15章 IP组播353
15.1 初始化353
15.2 虚拟接口354
15.2.1 虚拟接口的添加355
15.2.2 虚拟接口的删除:vif_delete()358
15.2.3 查找虚拟接口:ipmr_find_vif()358
15.3 组播转发缓存358
15.3.1 组播转发缓存的创建361
15.3.2 组播转发缓存的删除361
15.3.3 组播转发缓存的查找361
15.3.4 向组播路由守护进程发送报告362
15.4 临时组播转发缓存364
15.4.1 临时组播转发缓存队列365
15.4.2 创建临时组播转发缓存365
15.4.3 用于超时而删除临时组播转发缓存的定时器367
15.4.4 释放临时组播缓存项中保存的临时组播报文368
15.5 外部事件369
15.6 组播套接口选项369
15.6.1 IP_MULTICAST_TTL369
15.6.2 IP_MULTICAST_LOOP370
15.6.3 IP_MULTICAST_IF370
15.6.4 IP_ADD_MEMBERSHIP372
15.6.5 IP_DROP_MEMBERSHIP372
15.6.6 IP_MSFILTER373
15.6.7 IP_BLOCK_SOURCE和IP_UNBLOCK_SOURCE375
15.6.8 IP_ADD_SOURCE_MEMBERSHIP和IP_DROP_SOURCE_MEMBERSHIP375
15.6.9 MCAST_JOIN_GROUP376
15.6.10 MCAST_LEAVE_GROUP377
15.6.11 MCAST_BLOCK_SOURCE和MCAST_UNBLOCK_SOURCE377
15.6.12 MCAST_JOIN_SOURCE_GROUP和MCAST_LEAVE_SOURCE_GROUP377
15.6.13 MCAST_MSFILTER378
15.7 组播选路套接口选项378
15.7.1 MRT_INIT379
15.7.2 MRT_DONE379
15.7.3 MRT_ADD_VIF和MRT_DEL_VIF380
15.7.4 MRT_ADD_MFC和MRT_DEL_MFC380
15.7.5 MRT_ASSERT380
15.8 组播的ioctl380
15.8.1 SIOCGETVIFCNT380
15.8.2 SIOCGETSGCNT380
15.9 组播报文的输入381
15.10 组播报文的转发383
15.10.1 ip_mr_forward()383
15.10.2 ipmr_queue_xmit()385
15.11 组播报文的输出388
第16章 IGMP:Internet组管理协议390
16.1 in_device结构中的组播参数390
16.2 ip_mc_list结构391
16.3 系统参数393
16.4 IGMP的版本与协议结构393
16.4.1 IGMP的版本393
16.4.2 第一版和第二版的IGMP报文结构395
16.4.3 第三版的IGMP查询报文结构395
16.4.4 第三版的IGMP报告结构396
16.5 IGMP报文的输入398
16.6 函数399
16.6.1 ip_mc_find_dev()399
16.6.2 ip_check_mc()400
16.7 成员关系查询400
16.8 成员关系报告404
16.8.1 最近离开组播组列表的维护404
16.8.2 is_in()404
16.8.3 add_grec()406
16.8.4 普通查询的报告409
16.8.5 V1和V2的报告以及V3的当前状态记录报告410
16.8.6 主动发送组关系报告413
16.9 维护套接口组播状态416
16.9.1 套接口加入组播组417
16.9.2 套接口离开组播组418
16.10 维护网络设备组播状态419
16.10.1 被阻止的组播源列表的维护421
16.10.2 网络设备加入组播组421
16.10.3 网络设备离开组播组425
16.11 ip_mc_source()430
16.12 ip_mc_msfilter()434
16.13 网络设备组播硬件地址的管理436
第17章 邻居子系统437
17.1 什么是邻居子系统437
17.2 系统参数437
17.3 邻居子系统的结构438
17.3.1 neigh_table结构438
17.3.2 neighbour结构441
17.3.3 neigh_ops结构444
17.3.4 neigh_parms结构445
17.3 5 pneigh_entry结构447
17.3 6 neigh_statistics结构447
17.3.7 hh_cache结构448
17.4 邻居表的初始化449
17.5 邻居项的状态机450
17.6 邻居项的添加与删除452
17.6.1 netlink接口452
17.6.2 ioctl456
17.6.3 路由表项与邻居项的绑定456
17.6.4 接收到的并非请求的应答456
17.7 邻居项的创建与初始化456
17.7.1 neigh_alloc()456
17.7.2 neigh_create()457
17.8 邻居项散列表的扩容459
17.9 邻居项的查找460
17.9.1 neigh_lookup()460
17.9.2 neigh_lookup_nodev()461
17.9.3 _neigh_lookup()和neigh_lookup_errno()461
17.10 邻居项的更新461
17.11 垃圾回收465
17.11.1 同步回收465
17.11.2 异步回收466
17.12 外部事件468
17.13 邻居项状态处理定时器469
17.14 代理项472
17.14.1 代理项的查找、添加和删除472
17.14.2 延时处理代理的请求报文472
17.15 输出函数474
17.15.1 丢弃474
17.15.2 慢速发送474
17.15.3 快速发送477
第18章 ARP:地址解析协议480
18.1 ARP报文格式480
18.2 系统参数481
18.3 注册ARP报文类型483
18.4 ARP初始化483
18.5 ARP的邻居项函数指针表483
18.6 ARP表484
18.7 函数485
18.7.1 arp_error_report()485
18.7.2 arp_solicit()485
18.7.3 arp_ignore()486
18.7.4 arp_filter()488
18.8 IPv4中邻居项的初始化488
18.9 ARP报文的创建490
18.10 ARP的输出490
18.11 ARP的输入491
18.11.1 arp_rcv()491
18.11.2 arp_process()492
18.12 ARP代理497
18.12.1 arp_process()498
18.12.2 arp_fwd_proxy()499
18.12.3 parp_redo()500
18.13 ARP的ioctl500
18.14 外部事件501
18.15 路由表项与邻居项的绑定502
第19章 路由表503
19.1 什么是路由表503
19.1.1 路由的要素503
19.1.2 特殊路由505
19.1.3 路由缓存505
19.2 系统参数506
19.3 路由表组成结构506
19.3.1 fib_table结构508
19.3.2 fn_zone结构510
19.3.3 fib_node结构511
19.3.4 fib_alias结构511
19.3.5 fib_info结构512
19.3.6 fib_nh结构515
19.4 路由表的初始化516
19.5 netlink接口517
19.5.1 netlink路由表项消息结构517
19.5.2 inet_rtm_newroute()519
19.5.3 inet_rtm_delroute()520
19.6 获取指定的路由表520
19.7 路由表项的添加520
19.8 路由表项的删除526
19.9 外部事件528
19.9.1 网络设备状态变化事件528
19.9.2 IP地址变化事件529
19.9.3 fib_add_ifaddr()529
19.9.4 fib_del_ifaddr()531
19.9.5 fib_disable_ip()534
19.9.6 fib_magic()534
19.10 选路535
19.10.1 输入选路:ip_route_input_slow()535
19.10.2 组播输入选路:ip_route_input_mc()539
19.10.3 输出选路:ip_route_output_slow()541
19.10.4 fib_lookup()546
19.10.5 fn_hash_lookup()548
19.11 ICMP重定向消息的发送548
热门推荐
- 3163870.html
- 3223905.html
- 1221897.html
- 214123.html
- 2162173.html
- 3785080.html
- 454966.html
- 332388.html
- 3230665.html
- 353074.html
- http://www.ickdjs.cc/book_2795932.html
- http://www.ickdjs.cc/book_3893023.html
- http://www.ickdjs.cc/book_55553.html
- http://www.ickdjs.cc/book_1145761.html
- http://www.ickdjs.cc/book_2487056.html
- http://www.ickdjs.cc/book_50920.html
- http://www.ickdjs.cc/book_3371059.html
- http://www.ickdjs.cc/book_167798.html
- http://www.ickdjs.cc/book_660066.html
- http://www.ickdjs.cc/book_2708090.html