图书介绍
TCP/IP详解2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)加里·R.赖特(Gary R. Wright),(美)W.理查德·史蒂文斯(W. Richard Stevens)著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111617938
- 出版时间:2019
- 标注页数:904页
- 文件大小:319MB
- 文件页数:925页
- 主题词:计算机网络-通信协议
PDF下载
下载说明
TCP/IP详解PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1引言1
1.2源代码表示1
1.2.1将拥塞窗口设置为11
1.2.2印刷约定2
1.3历史2
1.4应用编程接口3
1.5程序示例4
1.6系统调用和库函数6
1.7网络实现概述6
1.8描述符7
1.9mbuf与输出处理11
1.9.1包含插口地址结构的mbuf11
1.9.2包含数据的mbuf12
1.9.3添加IP和UDP首部13
1.9.4IP输出14
1.9.5以太网输出14
1.9.6UDP输出小结14
1.10输入处理15
1.10.1以太网输入15
1.10.2IP输入15
1.10.3UDP输入16
1.10.4进程输入17
1.11网络实现概述(续)17
1.12中断级别与并发18
1.13源代码组织20
1.14测试网络21
1.15小结22
第2章 mbuf:存储器缓存24
2.1引言24
2.2代码介绍27
2.2.1全局变量27
2.2.2统计28
2.2.3内核统计28
2.3mbuf的定义29
2.4mbuf结构29
2.5简单的mbuf宏和函数31
2.5.1m_get函数32
2.5.2MGET宏32
2.5.3m_retry函数33
2.5.4mbuf锁34
2.6m_devget和m_pullup函数34
2.6.1m_devget函数34
2.6.2mtod和dtom宏36
2.6.3m_ullup函数和连续的协议首部36
2.6.4m_pullup和IP的分片与重组37
2.6.5TCP重组避免调用m_pullup39
2.6.6m_ullup使用总结40
2.7mbuf宏和函数的小结40
2.8Net/3联网数据结构小结42
2.9m_copy和簇引用计数43
2.10其他选择47
2.11小结47
第3章 接口层49
3.1引言49
3.2代码介绍49
3.2.1全局变量49
3.2.2SNMP变量50
3.3ifnet结构51
3.4ifaddr结构57
3.5sockaddr结构58
3.6ifnet与ifaddr的专用化59
3.7网络初始化概述60
3.8以太网初始化61
3.9SLIP初始化64
3.10环回初始化65
3.11if_attach函数66
3.12ifinit函数72
3.13小结73
第4章 接口:以太网74
4.1引言74
4.2代码介绍75
4.2.1全局变量75
4.2.2统计量75
4.2.3SNMP变量76
4.3以太网接口77
4.3.1leintr函数79
4.3.2leread函数79
4.3.3ether_input函数81
4.3.4ether_output函数84
4.3.5lestart函数87
4.4ioctl系统调用89
4.4.1ifioctl函数90
4.4.2ifconf函数91
4.4.3举例94
4.4.4通用接口ioctl命令95
4.4.5if_down和if_up函数96
4.4.6以太网、SLIP和环回97
4.5小结98
第5章 接口:SLIP和环回100
5.1引言100
5.2代码介绍100
5.2.1全局变量100
5.2.2统计量101
5.3SLIP接口101
5.3.1SLIP线路规程:SLIPDISC101
5.3.2SLIP初始化:slopen和slinit103
5.3.3SLIP输入处理:slinput105
5.3.4SLIP输出处理:sloutput109
5.3.5slstart函数111
5.3.6SLIP分组丢失116
5.3.7SLIP性能考虑117
5.3.8slclose函数117
5.3.9sltioctl函数118
5.4环回接口119
5.5小结121
第6章 IP编址123
6.1引言123
6.1.1IP地址123
6.1.2IP地址的印刷规定123
6.1.3主机和路由器124
6.2代码介绍125
6.3接口和地址小结125
6.4sockaddr_in结构126
6.5in_ifaddr结构127
6.6地址指派128
6.6.1ifioctl函数130
6.6.2in_control函数130
6.6.3前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSTADDR132
6.6.4地址指派:SIOCSIFADDR133
6.6.5in_ifinit函数133
6.6.6网络掩码指派:SIOCSIFNETMASK136
6.6.7目的地址指派:SIOCSIFDSTADDR137
6.6.8获取接口信息137
6.6.9每个接口多个IP地址138
6.6.10附加IP地址:SIOCAIFADDR139
6.6.11删除IP地址:SIOCDIFADDR140
6.7接口ioctl处理141
6.7.1leioctl函数141
6.7.2slioctl函数142
6.7.3loioctl函数143
6.8Internet实用函数144
6.9ifnet实用函数144
6.10小结145
第7章 域和协议146
7.1引言146
7.2代码介绍146
7.2.1全局变量147
7.2.2统计量147
7.3domain结构147
7.4protosw结构148
7.5IP的domain和protosw结构150
7.6pffindproto和pffindtype函数155
7.7pfctlinput函数157
7.8IP初始化157
7.8.1Internet传输分用157
7.8.2ip_init函数158
7.9sysctl系统调用159
7.10小结161
第8章 IP:网际协议162
8.1引言162
8.2代码介绍163
8.2.1全局变量163
8.2.2统计量163
8.2.3SNMP变量164
8.3IP分组165
8.4输入处理:ipintr函数167
8.4.1ipintr概观167
8.4.2验证168
8.4.3转发或不转发171
8.4.4重装和分用173
8.5转发:ip_forward函数174
8.6输出处理:ip_output函数180
8.6.1首部初始化181
8.6.2路由选择182
8.6.3源地址选择和分片184
8.7Internet检验和:in_cksum函数186
8.8setsockopt和getsockopt系统调用190
8.8.1PRCO SETOPT的处理192
8.8.2PRCO GETOPT的处理193
8.9ip_sysctl函数193
8.10小结194
第9章 IP选项处理196
9.1引言196
9.2代码介绍196
9.2.1全局变量196
9.2.2统计量197
9.3选项格式197
9.4ip_dooptions函数198
9.5记录路由选项200
9.6源站和记录路由选项202
9.6.1save_rte函数205
9.6.2ip_srcroute函数206
9.7时间戳选项207
9.8ip_insertoptions函数210
9.9ip_pcbopts函数214
9.10一些限制217
9.11小结217
第10章 IP的分片与重装218
10.1引言218
10.2代码介绍219
10.2.1全局变量220
10.2.2统计量220
10.3分片220
10.4ip_optcopy函数223
10.5重装224
10.6ip_reass函数227
10.7ip_slowtimo函数237
10.8小结238
第11章 ICMP:Internet控制报文协议239
11.1引言239
11.2代码介绍242
11.2.1全局变量242
11.2.2统计量242
11.2.3SNMP变量243
11.3icmp结构244
11.4ICMP的protosw结构245
11.5输入处理:icmp_input函数246
11.6差错处理249
11.7请求处理251
11.7.1回显询问:ICMP_ECHO和ICMP_ECHOREPLY252
11.7.2时间戳询问:ICMP_TSTAMP和ICMP_TSTAMPREPLY253
11.7.3地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY253
11.7.4信息询问:ICMPIREQ和ICMP_IREQREPLY255
11.7.5路由器发现:ICMP_ROUTERADVERT和ICMP和ICMP_ROUTERSOLICIT255
11.8重定向处理255
11.9回答处理257
11.10输出处理257
11.11icmp_error函数258
11.12icmp_reflect函数261
11.13icmp_send函数265
11.14icmp_sysctl函数266
11.15小结266
第12章 IP多播268
12.1引言268
12.2代码介绍269
12.2.1全局变量270
12.2.2统计量270
12.3以太网多播地址270
12.4ether_multi结构271
12.5以太网多播接收273
12.6in_multi结构273
12.7ip_moptions结构275
12.8多播的插口选项276
12.9多播的TTL值277
12.9.1MBONE278
12.9.2扩展环搜索278
12.10ip_setmoptions函数278
12.10.1选择一个明确的多播接口:IP_MULTICASTIF280
12.10.2选择明确的多播TTL:IP_MULTICAST_LOOP281
12.10.3选择多播环回:IP_MULTICAST_LOOP281
12.11加入一个IP多播组282
12.11.1in_addmulti函数285
12.11.2slioctl和loioctl函数:SIOCADDMLTI和SIOCDELMULTI287
12.11.3leioctI函数:SIOCADDMULTI和SIOCDELMULTI288
12.11.4ether_addmulti函数288
12.12离开一个IP多播组291
12.12.1in_delmulti函数292
12.12.2ether_delmulti函数293
12.13ip_getmoptions函数295
12.14多播输入处理:ipintr函数296
12.15多播输出处理:ip_output函数298
12.16性能的考虑301
12.17小结301
第13章 IGMP:Internet组管理协议303
13.1引言303
13.2代码介绍304
13.2.1全局变量304
13.2.2统计量304
13.2.3SNMP变量305
13.3igmp结构305
13.4IGMP的protosw的结构306
13.5加入一个组:igmp_joingroup函数306
13.6igmp_fasttimo函数308
13.7输入处理:igmp_input函数311
13.7.1成员关系查询:IGMP_HOST_MEMBERSHIP_QUERY312
13.7.2成员关系报告:IGMP_HOST_MEMBERSHIP_REPORT313
13.8离开一个组:igmp_leavegroup函数314
13.9小结315
第14章 IP多播选路316
14.1引言316
14.2代码介绍316
14.2.1全局变量316
14.2.2统计量317
14.2.3SNMP变量317
14.3多播输出处理(续)317
14.4mrouted守护程序318
14.5虚拟接口321
14.5.1虚拟接口表322
14.5.2add_vif函数324
14.5.3del_vif函数326
14.6IGMP(续)327
14.6.1add_lgrp函数328
14.6.2del_lgrp函数329
14.6.3grplst_member函数330
14.7多播选路331
14.7.1多播选路表334
14.7.2del_mrt函数335
14.7.3add_mrt函数336
14.7.4mrtfind函数337
14.8多播转发:ip_mforward函数338
14.8.1phyint_send函数343
14.8.2tunnel_send函数344
14.9清理:ip_mrouter_done函数345
14.10小结346
第15章 插口层348
15.1引言348
15.2代码介绍349
15.3socket结构349
15.4系统调用354
15.4.1举例355
15.4.2系统调用小结355
15.5进程、描述符和插口357
15.6socket系统调用358
15.6.1socreate函数359
15.6.2超级用户特权361
15.7getsock和sockargs函数361
15.8bind系统调用363
15.9listen系统调用364
15.10tsleep和wakeup函数365
15.11accept系统调用366
15.12sonewconn和soisconnected函数369
15.13connect系统调用372
15.13.1soconnect函数374
15.13.2切断无连接插口和外部地址的关联375
15.14shutdown系统调用375
15.15close系统调用377
15.15.1soo_close函数377
15.15.2soclose函数378
15.16小结380
第16章 插口I/O381
16.1引言381
16.2代码介绍381
16.3插口缓存381
16.4write、writev、sendto和sendmsg系统调用384
16.5sendmsg系统调用387
16.6sendit函数388
16.6.1uiomove函数389
16.6.2举例390
16.6.3sendit代码391
16.7sosend函数392
16.7.1可靠的协议缓存393
16.7.2不可靠的协议缓存393
16.7.3sosend函数小结401
16.7.4性能问题401
16.8read、readv、recvfrom和recvmsg系统调用401
16.9recvmsg系统调用402
16.10recvit函数403
16.11soreceive函数405
16.11.1带外数据406
16.11.2举例406
16.11.3其他的接收操作选项407
16.11.4接收缓存的组织:报文边界407
16.11.5接收缓存的组织:没有报文边界408
16.11.6控制信息和带外数据409
16.12soreceive代码410
16.13select系统调用421
16.13.1selscan函数425
16.13.2soo_select函数425
16.13.3selrecord函数427
16.13.4selwakeup函数428
16.14小结429
第17章 插口选项431
17.1引言431
17.2代码介绍431
17.3setsockopt系统调用432
17.4getsockopt系统调用437
17.5fcntl和ioctl系统调用440
17.5.1fcntl代码441
17.5.2ioctl代码443
17.6getsockname系统调用444
17.7getpeername系统调用445
17.8小结447
第18章 Radix树路由表448
18.1引言448
18.2路由表结构448
18.3选路插口456
18.4代码介绍456
18.4.1全局变量458
18.4.2统计量458
18.4.3SNMP变量459
18.5Radix结点数据结构460
18.6选路结构463
18.7初始化:route_init和rtable_init函数465
18.8初始化:rn_init和rn_inithead函数468
18.9重复键和掩码列表471
18.10rn_match函数473
18.11rn_search函数480
18.12小结481
第19章 选路请求和选路消息482
19.1引言482
19.2rtalloc和rtallocl函数482
19.3宏RTFREE和rtfree函数484
19.4rtrequest函数486
19.5rt_setgate函数491
19.6rtinit函数493
19.7rtredirect函数495
19.8选路消息的结构498
19.9rt_missmsg函数501
19.10rt_ifmsg函数503
19.11rt_newaddrmsg函数504
19.12rt_msg1函数505
19.13rt_msg2函数507
19.14sysctl_rtable函数510
19.15sysctl_dumpentry函数514
19.16sysctl_iflist函数515
19.17小结517
第20章 选路插口518
20.1引言518
20.2routedomain和protosw结构518
20.3选路控制块519
20.4raw_init函数520
20.5route_output函数520
20.6rt_xaddrs函数530
20.7rt_setmetrics函数531
20.8raw_input函数532
20.9route_usrreq函数534
20.10raw_usrreq函数535
20.11raw_attach、raw_detach和raw_disconnect函数539
20.12小结540
第21章 ARP:地址解析协议542
21.1介绍542
21.2ARP和路由表542
21.3代码介绍544
21.3.1全局变量544
21.3.2统计量544
21.3.3SNMP变量546
21.4ARP结构546
21.5arpwhohas函数548
21.6arprequest函数548
21.7arpintr函数551
21.8in_arpinput函数552
21.9ARP定时器函数557
21.9.1arptimer函数557
21.9.2arptfree函数557
21.10arpresolve函数558
21.11arplookup函数562
21.12代理ARP563
21.13arp_rtrequest函数564
21.14ARP和多播569
21.15小结570
第22章 协议控制块572
22.1引言572
22.2代码介绍573
22.2.1全局变量574
22.2.2统计量574
22.3inpcb的结构574
22.4in_pcballoc和in_pcbdetach函数575
22.5绑定、连接和分用577
22.6in_pcblookup函数581
22.7in_pcbbind函数584
22.8in_pcbconnect函数589
22.9in_pcbdisconnect函数594
22.10in_setsockaddr和in_setpeeraddr函数595
22.11in_pcbnotify、in_rtchange和in_losing函数595
22.11.1in_rtchange函数598
22.11.2重定向和原始插口599
22.11.3ICMP差错和UDP插口600
22.11.4in_losing函数601
22.12实现求精602
22.13小结602
第23章 UDP:用户数据报协议605
23.1引言605
23.2代码介绍605
23.2.1全局变量606
23.2.2统计量606
23.2.3SNMP变量607
23.3UDP的protosw结构607
23.4UDP的首部608
23.5udp_init函数609
23.6udp_output函数609
23.6.1在前面加上IP/UDP首部和mbuf簇612
23.6.2UDP检验和计算和伪首部612
23.7udp_input函数616
23.7.1对收到的UDP数据报的一般确认616
23.7.2分用单播数据报619
23.7.3分用多播和广播数据报622
23.7.4连接上的UDP插口和多接口主机625
23.8udp_saveopt函数625
23.9udp_ctlinput函数627
23.10udp_usrreq函数628
23.11udp_sysctl函数633
23.12实现求精633
23.12.1UDP PCB高速缓存633
23.12.2UDP检验和634
23.13小结635
第24章 TCP:传输控制协议636
24.1引言636
24.2代码介绍636
24.2.1全局变量636
24.2.2统计量637
24.2.3SNMP变量640
24.3TCP的protosw结构641
24.4TCP的首部641
24.5TCP的控制块643
24.6TCP的状态变迁图645
24.7TCP的序号646
24.8tcp_init函数650
24.9小结652
第25章 TCP的定时器654
25.1引言654
25.2代码介绍655
25.3tcp_canceltimers函数657
25.4tcp_fasttimo函数657
25.5tcp_slowtimo函数658
25.6tcp_timers函数659
25.6.1FIN_WAIT_2和2MSL定时器660
25.6.2持续定时器662
25.6.3连接建立定时器和保活定时器662
25.7重传定时器的计算665
25.8tcp_newtcpcb算法666
25.9tcp_setpersist函数668
25.10tcp_xmit_timer函数669
25.11重传超时:tcp_timers函数673
25.11.1慢起动和避免拥塞675
25.11.2精确性677
25.12一个RTT的例子677
25.13小结679
第26章 TCP输出680
26.1引言680
26.2tcp_output概述680
26.3决定是否应发送一个报文段682
26.4TCP选项691
26.5窗口大小选项692
26.6时间戳选项692
26.6.1哪个时间戳需要回显,RFC1323算法694
26.6.2哪个时间戳需要回显,正确的算法695
26.6.3时间戳与延迟ACK695
26.7发送一个报文段696
26.8tcp_template函数707
26.9tcp_respond函数708
26.10小结710
第27章 TCP的函数712
27.1引言712
27.2tcp_drain函数712
27.3tcp_drop函数712
27.4tcp_close函数713
27.4.1路由特性713
27.4.2资源释放716
27.5tcp_mss函数717
27.6tcp_ctlinput函数722
27.7tcp_notify函数723
27.8tcp_quench函数724
27.9TCP_REASS宏和tcp_reass函数724
27.9.1TCP_REASS宏725
27.9.2TCP_REASS函数727
27.10tcp_trace函数732
27.11小结736
第28章 TCP的输入737
28.1引言737
28.2预处理739
28.3tcp_dooptions函数745
28.4首部预测747
28.5TCP输入:缓慢的执行路径752
28.6完成被动打开或主动打开752
28.6.1完成被动打开753
28.6.2完成主动打开756
28.7PAWS:防止序号回绕760
28.8裁剪报文段使数据在窗口内762
28.9自连接和同时打开768
28.10记录时间戳770
28.11RST处理770
28.12小结772
第29章 TCP的输入(续)773
29.1引言773
29.2ACK处理概述773
29.3完成被动打开和同时打开774
29.4快速重传和快速恢复的算法775
29.5ACK处理778
29.6更新窗口信息784
29.7紧急方式处理786
29.8tcp_pulloutofband函数788
29.9处理已接收的数据789
29.10FIN处理791
29.11最后的处理793
29.12实现求精795
29.13首部压缩795
29.13.1引言796
29.13.2首部字段的压缩799
29.13.3特殊情况801
29.13.4实例802
29.13.5配置803
29.14小结803
第30章 TCP的用户需求805
30.1引言805
30.2tcp_usrreq函数805
30.3tcp_attach函数814
30.4tcp_disconnect函数815
30.5tcp_usrclosed函数816
30.6tcp_ctloutput函数817
30.7小结820
第31章 BPF:BSD分组过滤程序821
31.1引言821
31.2代码介绍821
31.2.1全局变量821
31.2.2统计量822
31.3bpf_if结构822
31.4bpf_d结构825
31.4.1bpf_open函数826
31.4.2bpfioctl函数827
31.4.3bpf_setif函数830
31.4.4bpf_attachd函数831
31.5BPF的输入832
31.5.1bpf_tap函数832
31.5.2catchpacket函数833
31.5.3bpf_read函数835
31.6BPF的输出837
31.7小结838
第32章 原始IP839
32.1引言839
32.2代码介绍839
32.2.1全局变量839
32.2.2统计量840
32.3原始IP的protosw结构840
32.4rip_init函数842
32.5rip_input函数842
32.6rip_output函数844
32.7rip_usrreq函数846
32.8rip_ctloutput函数850
32.9小结852
结束语853
附录A 部分习题的解答854
附录B 源代码的获取872
附录C RFC1122的有关内容874
参考文献895
热门推荐
- 1998445.html
- 114281.html
- 170726.html
- 2694686.html
- 2551101.html
- 1876254.html
- 316078.html
- 1398112.html
- 3325661.html
- 3822947.html
- http://www.ickdjs.cc/book_1129682.html
- http://www.ickdjs.cc/book_1462460.html
- http://www.ickdjs.cc/book_1621005.html
- http://www.ickdjs.cc/book_2411693.html
- http://www.ickdjs.cc/book_3747368.html
- http://www.ickdjs.cc/book_2407154.html
- http://www.ickdjs.cc/book_2893758.html
- http://www.ickdjs.cc/book_3581305.html
- http://www.ickdjs.cc/book_2782662.html
- http://www.ickdjs.cc/book_1667518.html