⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 内容简介.txt

📁 本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例
💻 TXT
📖 第 1 页 / 共 2 页
字号:
14.8.2   tunnel_send函数	344
14.9   清理:ip_mrouter_done函数	345
14.10   小结	346
第15章   插口层	348
15.1   引言	348
15.2   代码介绍	349
15.3   socket结构	349
15.4   系统调用	354
15.4.1   举例	355
15.4.2   系统调用小结	355
15.5   进程、描述符和插口	357
15.6    socket系统调用	358
15.6.1   socreate函数	359
15.6.2   超级用户特权	361
15.7    getsock和sockargs函数	361
15.8    bind系统调用	363
15.9    listen系统调用	364
15.10   tsleep和wakeup函数	365
15.11   accept系统调用	366
15.12   sonewconn和soisconnected
函数	369
15.13   connect系统调用	372
15.13.1   soconnect函数	374
15.13.2   切断无连接插口和外部地址的
关联	375
15.14   shutdown系统调用	375
15.15   close系统调用	377
15.15.1   soo_close函数	377
15.15.2   soclose函数	378
15.16   小结	380
第16章   插口I/O	381
16.1   引言	381
16.2   代码介绍	381
16.3   插口缓存	381
16.4   write、writev、sendto和sendmsg
系统调用	384
16.5   sendmsg系统调用	387
16.6   sendit函数	388
16.6.1   uiomove函数	389
16.6.2   举例	390
16.6.3   sendit代码	391
16.7   sosend函数	392
16.7.1   可靠的协议缓存	393
16.7.2   不可靠的协议缓存	393
16.7.3   sosend函数小结	401
16.7.4   性能问题	401
16.8   read、readv、recvfrom和recvmsg
         系统调用	401
16.9   recvmsg系统调用	402
16.10   recvit函数	403
16.11   soreceive函数	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.12   soreceive代码	410
16.13   select系统调用	421
16.13.1   selscan函数	425
16.13.2   soo_select函数	425
16.13.3   selrecord函数	427
16.13.4   selwakeup函数	428
16.14   小结	429
第17章   插口选项	431
17.1   引言	431
17.2   代码介绍	431
17.3   setsockopt系统调用	432
17.4   getsockopt系统调用	437
17.5   fcntl和ioctl系统调用	440
17.5.1   fcntl代码	441
17.5.2   ioctl代码	443
17.6   getsockname系统调用	444
17.7   getpeername系统调用	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.3   SNMP变量	459
18.5   Radix结点数据结构	460
18.6   选路结构	463
18.7   初始化:route_init和rtable_init
函数	465
18.8   初始化:rn_init和rn_inithead
函数	468
18.9   重复键和掩码列表	471
18.10   rn_match函数	473
18.11   rn_search函数	480
18.12   小结	481
第19章   选路请求和选路消息	482
19.1   引言	482
19.2   rtalloc和rtalloc1函数	482
19.3   宏RTFREE和rtfree函数	484
19.4   rtrequest函数	486
19.5   rt_setgate函数	491
19.6   rtinit函数	493
19.7   rtredirect函数	495
19.8   选路消息的结构	498
19.9   rt_missmsg函数	501
19.10   rt_ifmsg函数	503
19.11   rt_newaddrmsg函数	504
19.12   rt_msg1函数	505
19.13   rt_msg2函数	507
19.14   sysctl_rtable函数	510
19.15   sysctl_dumpentry函数	514
19.16   sysctl_iflist函数	515
19.17   小结	517
第20章   选路插口	518
20.1   引言	518
20.2   routedomain和protosw结构	518
20.3   选路控制块	519
20.4   raw_init函数	520
20.5   route_output函数	520
20.6   rt_xaddrs函数	530
20.7   rt_setmetrics函数	531
20.8   raw_input函数	532
20.9   route_usrreq函数	534
20.10   raw_usrreq函数	535
20.11   raw_attach、raw_detach和raw_disconnect函数	539
20.12   小结	540
第21章   ARP:地址解析协议	542
21.1   介绍	542
21.2   ARP和路由表	542
21.3   代码介绍	544
21.3.1   全局变量	544
21.3.2   统计量	544
21.3.3   SNMP变量	546
21.4   ARP结构	546
21.5   arpwhohas函数	548
21.6   arprequest函数	548
21.7   arpintr函数	551
21.8   in_arpinput函数	552
21.9   ARP定时器函数	557
21.9.1   arptimer函数	557
21.9.2   arptfree函数	557
21.10   arpresolve函数	558
21.11   arplookup函数	562
21.12   代理ARP	563
21.13   arp_rtrequest函数	564
21.14   ARP和多播	569
21.15   小结	570
第22章   协议控制块	572
22.1   引言	572
22.2   代码介绍	573
22.2.1   全局变量	574
22.2.2   统计量	574
22.3   inpcb的结构	574
22.4   in_pcballoc和in_pcbdetach函数	575
22.5   绑定、连接和分用	577
22.6   in_pcblookup函数	581
22.7   in_pcbbind函数	584
22.8   in_pcbconnect函数	589
22.9   in_pcbdisconnect函数	594
22.10   in_setsockaddr和in_setpeeraddr
函数	595
22.11   in_pcbnotify、in_rtchange和in_losing函数	595
22.11.1   in_rtchange函数	598
22.11.2   重定向和原始插口	599
22.11.3   ICMP差错和UDP插口	600
22.11.4   in_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.3   SNMP变量	607
23.3   UDP 的protosw结构	607
23.4   UDP的首部	608
23.5   udp_init函数	609
23.6   udp_output函数	609
23.6.1   在前面加上IP/UDP首部和mbuf簇	612
23.6.2   UDP检验和计算和伪首部	612
23.7   udp_input函数	616
23.7.1   对收到的UDP数据报的一般确认	616
23.7.2   分用单播数据报	619
23.7.3   分用多播和广播数据报	622
23.7.4   连接上的UDP插口和多接口主机	625
23.8   udp_saveopt函数	625
23.9   udp_ctlinput函数	627
23.10   udp_usrreq函数	628
23.11   udp_sysctl函数	633
23.12   实现求精	633
23.12.1   UDP PCB高速缓存	633
23.12.2   UDP检验和	634
23.13 小结	635
第24章   TCP:传输控制协议	636
24.1   引言	636
24.2   代码介绍	636
24.2.1   全局变量	636
24.2.2   统计量	637
24.2.3   SNMP变量	640
24.3   TCP 的protosw结构	641
24.4   TCP的首部	641
24.5   TCP的控制块	643
24.6   TCP的状态变迁图	645
24.7   TCP的序号	646
24.8   tcp_init函数	650
24.9   小结	652
第25章   TCP的定时器	654
25.1   引言	654
25.2   代码介绍	655
25.3   tcp_canceltimers函数	657
25.4   tcp_fasttimo函数	657
25.5   tcp_slowtimo函数	658
25.6   tcp_timers函数	659
25.6.1   FIN_WAIT_2和2MSL定时器	660
25.6.2   持续定时器	662
25.6.3   连接建立定时器和保活定时器	662
25.7   重传定时器的计算	665
25.8   tcp_newtcpcb算法	666
25.9   tcp_setpersist函数	668
25.10   tcp_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.2   tcp_output概述	680
26.3   决定是否应发送一个报文段	682
26.4   TCP选项	691
26.5   窗口大小选项	 692
26.6   时间戳选项	692
26.6.1   哪个时间戳需要回显,RFC1323
算法	694
26.6.2   哪个时间戳需要回显,正确的
算法	695
26.6.3   时间戳与延迟ACK	695
26.7   发送一个报文段	696
26.8   tcp_template函数	707
26.9   tcp_respond函数	708
26.10   小结	710
第27章   TCP的函数	712
27.1   引言	712
27.2   tcp_drain函数	712
27.3   tcp_drop函数	712
27.4   tcp_close函数	713
27.4.1   路由特性	713
27.4.2   资源释放	716
27.5   tcp_mss函数	717
27.6   tcp_ctlinput函数	722
27.7   tcp_notify函数	723
27.8   tcp_quench函数	724
27.9   TCP_REASS宏和tcp_reass函数	724
27.9.1   TCP_REASS宏	725
27.9.2   tcp_reass函数	727
27.10   tcp_trace函数	732
27.11   小结	736
第28章   TCP的输入	737
28.1   引言	737
28.2   预处理	739
28.3   tcp_dooptions函数	745
28.4   首部预测	747
28.5   TCP输入:缓慢的执行路径	752
28.6   完成被动打开或主动打开	752
28.6.1   完成被动打开	753
28.6.2   完成主动打开	756
28.7   PAWS:防止序号回绕	760
28.8   裁剪报文段使数据在窗口内	762
28.9   自连接和同时打开	768
28.10   记录时间戳	770
28.11   RST处理	770
28.12   小结	772
第29章   TCP的输入(续)	773
29.1   引言	773
29.2   ACK处理概述	773
29.3   完成被动打开和同时打开	774
29.4   快速重传和快速恢复的算法	775
29.5   ACK处理	778
29.6   更新窗口信息	784
29.7   紧急方式处理	786
29.8   tcp_pulloutofband函数	788
29.9   处理已接收的数据	789
29.10   FIN处理	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.2   tcp_usrreq函数	805
30.3   tcp_attach函数	814
30.4   tcp_disconnect函数	815
30.5   tcp_usrclosed函数	816
30.6   tcp_ctloutput函数	817
30.7   小结	820
第31章   BPF:BSD 分组过滤程序	821
31.1   引言	821
31.2   代码介绍	821
31.2.1   全局变量	821
31.2.2   统计量	822
31.3   bpf_if结构	822
31.4   bpf_d结构	825
31.4.1   bpfopen函数	826
31.4.2   bpfioctl函数	827
31.4.3   bpf_setif函数	830
31.4.4   bpf_attachd函数	831
31.5   BPF的输入	832
31.5.1   bpf_tap函数	832
31.5.2   catchpacket函数	833
31.5.3   bpfread函数	835
31.6   BPF的输出	837
31.7   小结	838
第32章   原始IP	839
32.1   引言	839
32.2   代码介绍	839
32.2.1   全局变量	839
32.2.2   统计量	840
32.3   原始 IP的protosw结构	840
32.4   rip_init函数	842
32.5   rip_input函数	842
32.6   rip_output函数	844
32.7   rip_usrreq函数	846
32.8   rip_ctloutput函数	850
32.9   小结	852
结束语	853
附录A   部分习题的解答	854
附录B   源代码的获取	872
附录C   RFC 1122 的有关内容	874
参考文献	895

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -