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

- 樊东东,莫澜编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111323734
- 出版时间:2011
- 标注页数:1063页
- 文件大小:47MB
- 文件页数:522页
- 主题词:
PDF下载
下载说明
LINUX内核源码剖析 TCP/IP实现 下PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第20章 路由缓存551
20.1 系统参数551
20.2 路由缓存的组织结构552
20.2.1 rtable结构552
20.2.2 flowi结构555
20.2.3 dst_entry结构556
20.2.4 dst_ops结构559
20.3 初始化561
20.4 创建路由缓存项563
20.4.1 创建输入路由缓存项563
20.4.2 创建输出路由缓存项565
20.5 添加路由表项到缓存中:rt_intern_hash()568
20.6 输入路由缓存查询:ip_route_input()571
20.7 输出路由缓存查询573
20.7.1 ip_route_output_key()573
20.7.2 _ip_route_output_key()573
20.8 垃圾回收575
20.8.1 路由缓存项的过期575
20.8.2 判断缓存路由表项是否可被删除575
20.8.3 同步清理576
20.8.4 异步清理580
20.8.5 路由缓存项的释放582
20.9 刷新缓存582
20.9.1 通过定时器定时刷新584
20.9.2 网络设备的硬件地址发生改变584
20.9.3 网络设备状态发生变化584
20.9.4 给设备添加或删除一个IP地址584
20.9.5 全局转发状态或设备的转发状态发生变化584
20.9.6 一条路由被删除585
20.9.7 通过写/proc的flush文件585
20.10 ICMP重定向消息的处理585
20.11 ICMP目的不可达,需要分片消息的处理588
第21章 路由策略590
21.1 路由策略组织结构590
21.1.1 fib_rules_ops结构590
21.1.2 fib_rule结构592
21.1.3 fib4_rule结构594
21.2 三个默认路由策略595
21.3 IPv4协议族的fib_rules_ops结构实例595
21.3.1 fib4_rule_action()595
21.3.2 fib4_rule_match()596
21.3.3 fib4_rule_configure()596
21.3.4 fib4_rule_compare()598
21.3.5 fib4_rule_fill()598
21.3.6 fib4_rule_default_pref()599
21.4 netlink接口599
21.4.1 netlink路由策略消息结构599
21.4.2 fib_nl_newrule()600
21.4.3 fib_nl_delrule()602
21.5 受网络设备状态改变的影响604
21.6 策略路由的查找604
第22章 套接口层606
22.1 socket结构607
22.2 proto_ops结构608
22.3 套接口文件系统610
22.3.1 套接口文件系统类型610
22.3.2 套接口文件系统超级块操作接口610
22.3.3 套接口文件的inode611
22.3.4 sock_alloc_inode()611
22.3.5 sock_destroy_inode()612
22.4 套接口文件612
22.4.1 套接口文件与套接口的绑定612
22.4.2 根据文件描述符获取套接口614
22.5 进程、文件描述符和套接口615
22.6 套接口层的系统初始化616
22.7 套接口系统调用617
22.7.1 套接口系统调用入口617
22.7.2 socket系统调用621
22.7.3 bind系统调用629
22.7.4 listen系统调用632
22.7.5 accept系统调用633
22.7.6 connect系统调用635
22.7.7 shutdown系统调用636
22.7.8 close系统调用638
22.7.9 select系统调用的实现640
第23章 套接口I/O641
23.1 输出/输入数据的组织641
23.1.1 msghdr结构641
23.1.2 verify_iovec()643
23.1.3 memcpy_toiovec()644
23.1.4 memcpy_fromiovec()644
23.1.5 memcpy_fromiovecend()644
23.1.6 csum_partial_copy_fromiovecend()644
23.2 输出系统调用644
23.2.1 sock_sendmsg()644
23.2.2 sendto系统调用645
23.2.3 send系统调用646
23.2.4 sendmsg系统调用646
23.3 输入系统调用649
第24章 套接口选项650
24.1 setsockopt系统调用650
24.2 ioctl系统调用655
24.2.1 ioctl在文件系统内的调用过程655
24.2.2 套接口文件ioctl调用接口的实现655
24.2.3 套接口层的实现658
24.3 getsockname系统调用659
24.4 getpeemame系统调用660
第25章 传输控制块661
25.1 系统参数662
25.2 传输描述块结构662
25.2.1 sock_common结构662
25.2.2 sock结构663
25.2.3 inet_sock结构670
25.3 proto结构674
25.3.1 proto实例组织结构677
25.3.2 proto_register()677
25.3.3 proto_unregister()679
25.4 传输控制块的内存管理680
25.4.1 传输控制块的分配和释放680
25.4.2 普通的发送缓存区的分配682
25.4.3 发送缓存的分配与释放685
25.4.4 接收缓存的分配与释放686
25.4.5 辅助缓存的分配与释放688
25.5 异步IO机制688
25.5.1 sk_wake_async()689
25.5.2 sock_def_wakeup()690
25.5.3 sock_def_error_report()690
25.5.4 sock_def_readable()691
25.5.5 sock_def_write_space()和sk_stream_write_space()691
25.5.6 sk_send_sigurg()692
25.5.7 接收到FIN段后通知进程692
25.5.8 sock_fasync()693
25.6 传输控制块的同步锁694
25.6.1 socket_lock_t结构694
25.6.2 控制用户进程和下半部间同步锁695
25.6.3 控制下半部间同步锁698
第26章 TCP:传输控制协议699
26.1 系统参数699
26.2 TCP的inet_protosw实例705
26.3 TCP的net_protocol结构705
26.4 TCP传输控制块706
26.4.1 inet_connection_sock结构706
26.4.2 inet_connection_sock_af_ops结构710
26.4.3 tcp_sock结构711
26.4.4 tcp_options_received结构721
26.4.5 tcp_skb_cb结构723
26.5 TCP的proto结构和proto_ops结构的实例725
26.6 TCP状态迁移图725
26.7 TCP首部726
26.8 TCP校验和727
26.8.1 输入TCP段的校验和检测728
26.8.2 输出TCP段校验和的计算729
26.9 TCP的初始化729
26.10 TCP传输控制块的管理731
26.10.1 inet_hashinfo结构732
26.10.2 管理除LISTEN状态之外的TCP传输控制块733
26.10.3 管理LISTEN状态的TCP传输控制块734
26.11 TCP层的套接口选项735
26.12 TCP的ioctl736
26.13 TCP传输控制块的初始化737
26.14 TCP的差错处理737
26.15 TCP传输控制块层的缓存管理741
26.15.1 缓存管理的算法741
26.15.2 发送缓存的管理744
26.15.3 接收缓存的管理745
第27章 TCP的定时器746
27.1 初始化746
27.2 连接建立定时器747
27.2.1 连接建立定时器处理函数747
27.2.2 连接建立定时器的激活751
27.3 重传定时器751
27.3.1 重传定时器处理函数751
27.3.2 重传定时器的激活756
27.4 延迟确认定时器756
27.4.1 延时确认定时器的处理函数756
27.4.2 延时确认定时器的激活758
27.5 持续定时器758
27.5.1 持续定时器处理函数758
27.5.2 激活持续定时器762
27.6 保活定时器763
27.6.1 保活定时器处理函数763
27.6.2 激活保活定时器764
27.7 FIN_WAIT_2定时器764
27.7.1 FIN_WAIT_2定时器处理函数765
27.7.2 激活FIN_WAIT_2定时器765
27.8 TIME_WAIT定时器766
第28章 TCP连接的建立767
28.1 服务端建立连接过程767
28.2 连接相关的数据结构770
28.2.1 request_sock_queue结构770
28.2.2 listen_sock结构771
28.2.3 tcp_request_sock结构771
28.2.4 request_sock_ops结构774
28.3 bind系统调用的实现775
28.3.1 bind端口散列表775
28.3.2 传输接口层的实现775
28.4 listen系统调用的实现779
28.4.1 inet_listen()779
28.4.2 实现侦听:inet_csk_listen_start()780
28.4.3 分配连接请求块散列表:reqsk_queue_alloc()781
28.5 accept系统调用的实现782
28.5.1 套接口层的实现:inet_accept()782
28.5.2 传输接口层的实现:inet_csk_accept()783
28.6 被动打开785
28.6.1 SYN cookies785
28.6.2 第一次握手:接收SYN段786
28.6.3 第二次握手:发送SYN+ACK段793
28.6.4 第三次握手:接收ACK段798
28.7 connect系统调用的实现813
28.7.1 套接口层的实现:inet_stream_connect()813
28.7.2 传输接口层的实现815
28.8 主动打开816
28.8.1 第一次握手:发送SYN段816
28.8.2 第二次握手:接收SYN+ACK段823
28.8.3 第三次握手:发送ACK段828
28.9 同时打开828
28.9.1 SYN_SENT状态接收SYN段828
28.9.2 SYN_RECV状态接收SYN+ACK段830
第29章 TCP拥塞控制的实现831
29.1 拥塞控制引擎831
29.2 拥塞控制状态机832
29.2.1 Open状态833
29.2.2 Disorder状态833
29.2.3 CWR状态833
29.2.4 Recovery状态834
29.2.5 Loss状态834
29.3 拥塞窗口调整撤销836
29.3.1 撤销拥塞窗口的检测837
29.3.2 tcp_undo_cwr()837
29.3.3 从Disorder拥塞状态撤销838
29.3.4 从Recovery状态撤销838
29.3.5 从Recovery拥塞状态撤销839
29.3.6 从Loss拥塞状态撤销839
29.4 显式拥塞通知840
29.4.1 IP对ECN的支持841
29.4.2 TCP对ECN的支持841
29.5 拥塞控制状态的处理及转换843
29.5.1 拥塞控制状态的处理:tcp_fastretrans_alert()843
29.5.2 拥塞避免852
29.6 拥塞窗口的检测:tcp_cwnd_test()852
29.7 F-RTO算法853
29.7.1 进入F-RTO算法处理阶段853
29.7.2 进行F-RTO算法处理855
29.8 拥塞窗口的检验857
29.8.1 tcp_event_data_sent()857
29.8.2 tcp_cwnd_validate()858
29.9 支持多拥塞控制算法的机制859
29.9.1 接口859
29.9.2 注册拥塞控制算法:tcp_register_congestion_control()861
29.9.3 注销拥塞控制算法:tcp_unregister_congestion_control()861
29.9.4 选取某种拥塞控制算法:tcp_set_congestion_control()861
29.9.5 Linux支持的拥塞控制算法862
第30章 TCP的输出864
30.1 引言864
30.2 最大段长度(MSS)867
30.3 sendmsg系统调用在TCP中的实现870
30.3.1 分割TCP段871
30.3.2 套接口层的实现871
30.3.3 传输接口层的实现871
30.4 对TCP选项的处理889
30.4.1 构建SYN段的选项889
30.4.2 构建非SYN段的选项892
30.5 Nagle算法893
30.6 ACK的接收894
30.6.1 tep_ack()894
30.6.2 发送窗口的更新899
30.6.3 根据SACK选项标记重传队列中段的记分牌900
30.6.4 重传队列中已经确认段的删除910
30.7 往返时间测量和RTO的计算913
30.8 路径MTU发现915
30.8.1 路径MTU发现原理915
30.8.2 路径MTU发现时的黑洞916
30.8.3 有关数据结构的初始化916
30.8.4 创建路径MTU发现TCP段并发送916
30.8.5 路径MTU发现失败后处理920
30.8.6 处理需要分片ICMP目的不可达报文920
30.8.7 更新当前有效的MSS921
30.8.8 路径MTU发现成功后处理922
30.9 TCP重传接口922
第31章 TCP的输入926
31.1 引言926
31.2 TCP接收的总入口927
31.2.1 接收到prequeue队列930
31.2.2 有效TCP段的处理931
31.3 报文的过滤932
31.3.1 过滤器的数据结构933
31.3.2 安装过滤器935
31.3.3 卸载过滤器937
31.3.4 过滤执行938
31.4 ESTABLISHED状态的接收938
31.4.1 首部预测939
31.4.2 接收处理无负荷的ACK段941
31.4.3 执行快速路径942
31.4.4 执行慢速路径945
31.4.5 数据从内核空间复制到用户空间948
31.4.6 通过调节接收窗口进行流量控制952
31.4.7 确定是否需要发送ACK段(用于接收的数据从内核空间复制到用户空间时)956
31.5 TCP选项的处理957
31.5.1 慢速路径中快速解析TCP选项957
31.5.2 全面解析TCP选项958
31.6 慢速路径的数据处理961
31.6.1 接收处理预期的段963
31.6.2 接收处理在接收窗口之外的段965
31.6.3 接收处理乱序的段966
31.6.4 tcp_ofo_queue()969
31.7 带外数据处理970
31.7.1 检测紧急指针970
31.7.2 读取带外数据972
31.8 SACK信息973
31.8.1 SACK允许选项973
31.8.2 SACK选项974
31.8.3 SACK的产生974
31.8.4 发送方对SACK的响应975
31.8.5 实现975
31.9 确认的发送975
31.9.1 快速确认模式976
31.9.2 处理数据接收事件977
31.9.3 发送确认紧急程度和状态978
31.9.4 延迟或快速确认979
31.10 recvmsg系统调用在TCP中的实现980
31.10.1 套接口层的实现980
31.10.2 传输接口层的实现980
31.11 sk_backlog_rcv接口991
第32章 TCP连接的终止992
32.1 连接终止过程993
32.1.1 正常关闭993
32.1.2 同时关闭994
32.2 shutdown传输接口层的实现994
32.2.1 tcp_shutdown()994
32.2.2 tcp_send_fin()995
32.3 close传输接口层的实现:tcp_close()995
32.4 被动关闭:FIN段的接收处理999
32.5 主动关闭1002
32.5.1 timewait控制块的数据结构1002
32.5.2 timewait控制块取代TCP传输控制块1006
32.5.3 启动FIN_WAIT_2或TIME_WAIT定时器1008
32.5.4 CLOSE_WAIT、LAST_ACK、FIN_WAIT1、FIN_WAIT2与CLOSING状态处理1010
32.5.5 FIN_WAIT2和TIME_WAIT状态处理1013
32.5.6 timewait控制块的2MSL超时处理1020
第33章 UDP:用户数据报1023
33.1 引言1023
33.1.1 UDP首部1023
33.1.2 UDP的输入与输出1024
33.2 UDP的inet_protosw结构1024
33.3 UDP的传输控制块1025
33.4 UDP的proto结构和proto_ops结构的实例1027
33.5 UDP的状态1027
33.6 UDP传输控制块的管理1027
33.7 bind系统调用的实现1028
33.8 UDP套接口的关闭1031
33.9 connect系统调用的实现1032
33.9.1 udp_disconnect()1033
33.9.2 ip4_datagram_connect()1033
33.10 select系统调用的实现1034
33.11 UDP的ioctl1037
33.12 UDP的套接口选项1037
33.13 UDP校验和1038
33.13.1 输入UDP数据报校验和的计算1038
33.13.2 输出UDP数据报校验和的计算1039
33.14 UDP的输出:sendmsg系统调用1040
33.14.1 udp_sendmsg()1040
33.14.2 udp_push_pending_frames()1047
33.15 UDP的输入1048
33.15.1 UDP接收的入口:udp_rcv()1048
33.15.2 UDP组播数据报输入:_udp4_lib_mcast_deliver()1052
33.15.3 udp_queue_rcv_skb()1053
33.16 recvmsg系统调用的实现1055
33.17 UDP的差错处理:udp_err()1059
33.18 轻量级UDP1061
参考文献1063
热门推荐
- 3119664.html
- 243236.html
- 278095.html
- 145806.html
- 2255025.html
- 3380503.html
- 3595420.html
- 236052.html
- 2957753.html
- 3564610.html
- http://www.ickdjs.cc/book_58469.html
- http://www.ickdjs.cc/book_3646771.html
- http://www.ickdjs.cc/book_2125447.html
- http://www.ickdjs.cc/book_3041046.html
- http://www.ickdjs.cc/book_2489457.html
- http://www.ickdjs.cc/book_2740090.html
- http://www.ickdjs.cc/book_2812843.html
- http://www.ickdjs.cc/book_3457887.html
- http://www.ickdjs.cc/book_1177464.html
- http://www.ickdjs.cc/book_2733427.html