?? 目錄.txt
字號:
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 + -