当前位置:Linux教程 - Linux - TCP-IP详解卷2:实现

TCP-IP详解卷2:实现



        
    由于本文是PDF格式(用中文版Acrobat4.0才能阅读),所以只能提供下载, 按这里下载(34M),下面是简介和目录,大家看过后再决定是否下载!

    本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点,如多播、长肥管道支持、窗口缩放、时间戳选项以及其他主题等等。读者阅读本书时,应当具备卷1中阐述的关于TCP/IP的基本知识。本书适用于希望理解TCP/TP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。

    目 录
    译者序
    前言
    第1章 概述 1
    1.1 引言 1
    1.2 源代码表示 1
    1.2.1 将拥塞窗口设置为1 1
    1.2.2 印刷约定 2
    1.3 历史 2
    1.4 应用编程接口 3
    1.5 程序示例 4
    1.6 系统调用和库函数 6
    1.7 网络实现概述 6
    1.8 描述符 7
    1.9 mbuf与输出处理 11
    1.9.1 包含插口地址结构的mbuf 11
    1.9.2 包含数据的mbuf 12
    1.9.3 添加IP和UDP首部 13
    1.9.4 IP输出 14
    1.9.5 以太网输出 14
    1.9.6 UDP输出小结 14
    1.10 输入处理 15
    1.10.1 以太网输入 15
    1.10.2 IP输入 15
    1.10.3 UDP输入 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.3 mbuf的定义 29
    2.4 mbuf结构 29
    2.5 简单的mbuf宏和函数 31
    2.5.1 m_get函数 32
    2.5.2 MGET宏 32
    2.5.3 m_retry函数 33
    2.5.4 mbuf锁 34
    2.6 m_devget和m_pullup函数 34
    2.6.1 m_devget函数 34
    2.6.2 mtod和dtom宏 36
    2.6.3 m_pullup函数和连续的协议首部 36
    2.6.4 m_pullup和IP的分片与重组 37
    2.6.5 TCP重组避免调用m_pullup 39
    2.6.6 m_pullup使用总结 40
    2.7 mbuf宏和函数的小结 40
    2.8 Net/3联网数据结构小结 42
    2.9 m_copy和簇引用计数 43
    2.10 其他选择 47
    2.11 小结 47
    第3章 接口层 49
    3.1 引言 49
    3.2 代码介绍 49
    3.2.1 全局变量 49
    3.2.2 SNMP变量 50
    3.3 ifnet结构 51
    3.4 ifaddr结构 57
    3.5 sockaddr结构 58
    3.6 ifnet与ifaddr的专用化 59
    3.7 网络初始化概述 60
    3.8 以太网初始化 61
    3.9 SLIP初始化 64
    3.10 环回初始化 65
    3.11 if_attach函数 66
    3.12 ifinit函数 72
    3.13 小结 73
    第4章 接口:以太网 74
    4.1 引言 74
    4.2 代码介绍 75
    4.2.1 全局变量 75
    4.2.2 统计量 75
    4.2.3 SNMP变量 76
    4.3 以太网接口 77
    4.3.1 leintr函数 79
    4.3.2 leread函数 79
    4.3.3 ether_input函数 81
    4.3.4 ether_output函数 84
    4.3.5 lestart函数 87
    4.4 ioctl系统调用 89
    4.4.1 ifioctl函数 90
    4.4.2 ifconf函数 91
    4.4.3 举例 94
    4.4.4 通用接口ioctl命令 95
    4.4.5 if_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.3 SLIP接口 101
    5.3.1 SLIP线路规程:SLIPDISC 101
    5.3.2 SLIP初始化:slopen和slinit 103
    5.3.3 SLIP输入处理:slinput 105
    5.3.4 SLIP输出处理:sloutput 109
    5.3.5 slstart函数 111
    5.3.6 SLIP分组丢失 116
    5.3.7 SLIP性能考虑 117
    5.3.8 slclose函数 117
    5.3.9 sltioctl函数 118
    5.4 环回接口 119
    5.5 小结 121
    第6章 IP编址 123
    6.1 引言 123
    6.1.1 IP地址 123
    6.1.2 IP地址的印刷规定 123
    6.1.3 主机和路由器 124
    6.2 代码介绍 125
    6.3 接口和地址小结 125
    6.4 sockaddr_in结构 126
    6.5 in_ifaddr结构 127
    6.6 地址指派 128
    6.6.1 ifioctl函数 130
    6.6.2 in_control函数 130
    6.6.3 前提条件:SIOCSIFADDR、
    SIOCSIFNETMASK和
    SIOCSIFDSTADDR 132
    6.6.4 地址指派:SIOCSIFADDR 133
    6.6.5 in_ifinit函数 133
    6.6.6 网络掩码指派:SIOCSIFNETMASK 136
    6.6.7 目的地址指派:SIOCSIFDSTADDR 137
    6.6.8 获取接口信息 137
    6.6.9 每个接口多个IP地址 138
    6.6.10 附加IP地址:SIOCAIFADDR 139
    6.6.11 删除IP地址:SIOCDIFADDR 140
    6.7 接口ioctl处理 141
    6.7.1 leioctl函数 141
    6.7.2 slioctl函数 142
    6.7.3 loioctl函数 143
    6.8 Internet实用函数 144
    6.9 ifnet实用函数 144
    6.10 小结 145
    第7章 域和协议 146
    7.1 引言 146
    7.2 代码介绍 146
    7.2.1 全局变量 147
    7.2.2 统计量 147
    7.3 domain结构 147
    7.4 protosw结构 148
    7.5 IP 的domain和protosw结构 150
    7.6 pffindproto和pffindtype函数 155
    7.7 pfctlinput函数 157
    7.8 IP初始化 157
    7.8.1 Internet传输分用 157
    7.8.2 ip_init函数 158
    7.9 sysctl系统调用 159
    7.10 小结 161
    第8章 IP:网际协议 162
    8.1 引言 162
    8.2 代码介绍 163
    8.2.1 全局变量 163
    8.2.2 统计量 163
    8.2.3 SNMP变量 164
    8.3 IP分组 165
    8.4 输入处理:ipintr函数 167
    8.4.1 ipintr概观 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.7 Internet检验和:in_cksum函数 186
    8.8 setsockopt和getsockopt系统调用 190
    8.8.1 PRCO_SETOPT的处理 192
    8.8.2 PRCO_GETOPT的处理 193
    8.9 ip_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.4 ip_dooptions函数 198
    9.5 记录路由选项 200
    9.6 源站和记录路由选项 202
    9.6.1 save_rte函数 205
    9.6.2 ip_srcroute函数 206
    9.7 时间戳选项 207
    9.8 ip_insertoptions函数 210
    9.9 ip_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.4 ip_optcopy函数 223
    10.5 重装 224
    10.6 ip_reass函数 227
    10.7 ip_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.3 SNMP变量 243
    11.3 icmp结构 244
    11.4 ICMP 的protosw结构 245
    11.5 输入处理:icmp_input函数 246
    11.6 差错处理 249
    11.7 请求处理 251
    11.7.1 回显询问:ICMP_ECHO和
    ICMP_ECHOREPLY 252
    11.7.2 时间戳询问:ICMP_TSTAMP和
    ICMP_TSTAMPREPLY 253
    11.7.3 地址掩码询问:ICMP_MASKREQ和
    ICMP_MASKREPLY 253
    11.7.4 信息询问:ICMP_IREQ和ICMP_
    IREQREPLY 255
    11.7.5 路由器发现:ICMP_ROUTERADVERT
    和ICMP_ROUTERSOLICIT 255
    11.8 重定向处理 255
    11.9 回答处理 257
    11.10 输出处理 257
    11.11 icmp_error函数 258
    11.12 icmp_reflect函数 261
    11.13 icmp_send函数 265
    11.14 icmp_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.4 ether_multi结构 271
    12.5 以太网多播接收 273
    12.6 in_multi结构 273
    12.7 ip_moptions结构 275
    12.8 多播的插口选项 276
    12.9 多播的TTL值 277
    12.9.1 MBONE 278
    12.9.2 扩展环搜索 278
    12.10 ip_setmoptions函数 278
    12.10.1 选择一个明确的多播接口:IP_
    MULTICAST_IF 280
    12.10.2 选择明确的多播TTL: IP_
    MULTICAST_TTL 281
    12.10.3 选择多播环回:IP_MULTICAST_
    LOOP 281
    12.11 加入一个IP多播组 282
    12.11.1 in_addmulti函数 285
    12.11.2 slioctl和loioctl函数:SIOCADDMULTI和SIOCDELMULTI 287
    12.11.3 leioctl函数:SIOCADDMULTI和
    SIOCDELMULTI 288
    12.11.4 ether_addmulti函数 288
    12.12 离开一个IP多播组 291
    12.12.1 in_delmulti函数 292
    12.12.2 ether_delmulti函数 293
    12.13 ip_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.3 SNMP变量 305
    13.3 igmp结构 305
    13.4 IGMP的protosw的结构 306
    13.5 加入一个组:igmp_joingroup函数 306
    13.6 igmp_fasttimo函数 308
    13.7 输入处理:igmp_input函数 311
    13.7.1 成员关系查询:IGMP_HOST_
    MEMBERSHIP_QUERY 312
    13.7.2 成员关系报告:IGMP_HOST_
    MEMBERSHIP_REPORT 313
    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.3 SNMP变量 317
    14.3 多播输出处理(续) 317
    14.4 mrouted守护程序 318
    14.5 虚拟接口 321
    14.5.1 虚拟接口表 322
    14.5.2 add_vif函数 324
    14.5.3 del_vif函数 326
    14.6 IGMP(续) 327
    14.6.1 add_lgrp函数 328
    14.6.2 del_lgrp函数 329
    14.6.3 grplst_member函数 330
    14.7 多播选路 331
    14.7.1 多播选路表 334
    14.7.2 del_mrt函数 335
    14.7.3 add_mrt函数 336
    14.7.4 mrtfind函数 337
    14.8 多播转发:ip_mforward函数 338
    14.8.1 phyint_send函数 343
    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


    发布人:netbull 来自:西安交通大学