主页 详情

《TCP/IP详解 卷2 实现》_(美)G.R.赖特(Gary R.Wright),(美)W.R.史蒂文斯(W.Richard Stevens)著;陆雪莹等

【书名】:《TCP/IP详解 卷2 实现》
【作者】:(美)G.R.赖特(Gary R.Wright),(美)W.R.史蒂文斯(W.Richard Stevens)著;陆雪莹等译
【出版社】:北京:机械工业出版社
【时间】:2000
【页数】:901
【ISBN】:7111075676
【SS码】:10460103

最新查询

内容简介

第1章 概述

1.1 引言

1.2 源代码表示

1.2.1 将拥塞窗口设置为1

1.2.2 印刷约定

1.3 历史

1.4 应用编程接口

1.5 程序示例

1.7 网络实现概述

1.6 系统调用和库函数

1.8 描述符

1.9 mbuf与输出处理

1.9.1 包含插口地址结构的mbuf

1.9.2 包含数据的mbuf

1.9.3 添加IP和UDP首部

1.9.4 IP输出

1.9.5 以太网输出

1.9.6 UDP输出小

1.10.2 IP输入

1.10 输入处理

1.10.1 以太网输入

1.10.3 UDP输入

1.10.4 进程输入

1.11 网络实现概述(续)

1.12 中断级别与并发

1.13 源代码组织

1.14 测试网络

1.15 小结

2.1 引言

第2章 mbuf:存储器缓存

2.2 代码介绍

2.2.1 全局变量

2.2.2 统计

2.2.3 内核统计

2.3 mbuf的定义

2.4 mbuf结构

2.5 简单的mbuf宏和函数

2.5.2 MGET宏

2.5.1 m_get函数

2.5.3 m_retry函数

2.5.4 mbuf锁

2.6 m_devget和m_pullup函数

2.6.1 m_devget函数

2.6.2 mtod和dtom宏

2.6.3 m_pullup函数和连续的协议首部

2.6.4 m_pullup和IP的分片与重组

2.6.5 TCP重组避免调用m_pullup

2.6.6 m_pullup使用总结

2.7 mbuf宏和函数的小结

2.8 Net/3联网数据结构小结

2.9 m_copy和簇引用计数

2.10 其他选择

2.11 小结

3.2 代码介绍

3.2.1 全局变量

3.1 引言

第3章 接口层

3.2.2 SNMP变量

3.3 ifnet结构

3.4 ifaddr结构

3.5 sockaddr结构

3.6 ifnet与ifaddr的专用化

3.7 网络初始化概述

3.8 以太网初始化

3.9 SLIP初始化

3.10 环回初始化

3.11 if_attach函数

3.12 ifinit函数

3.13 小结

第4章 接口:以太网

4.1 引言

4.2 代码介绍

4.2.1 全局变量

4.2.2 统计量

4.2.3 SNMP变量

4.3 以太网接口

4.3.1 leintr函数

4.3.2 leread函数

4.3.3 ether_input函数

4.3.4 ether_output函数

4.3.5 lestart函数

4.4 ioctl系统调用

4.4.1 ifioctl函数

4.4.2 ifconf函数

4.4.3 举例

4.4.4 通用接口ioctl命令

4.4.5 if_down和if_up函数

4.4.6 以太网、SLIP和环回

4.5 小结

第5章 接口:SLIP和环回

5.1 引言

5.2 代码介绍

5.2.1 全局变量

5.3.1 SLIP线路规程:SLIPDISC

5.3 SLIP接口

5.2.2 统计量

5.3.2 SLIP初始化:slopen和slinit

5.3.3 SLIP输入处理:slinput

5.3.4 SLIP输出处理:sloutput

5.3.5 slstart函数

5.3.6 SLIP分组丢失

5.3.7 SLIP性能考虑

5.3.8 slclose函数

5.3.9 sltioctl函数

5.4 环回接口

5.5 小结

第6章 IP编址

6.1 引言

6.1.1 IP地址

6.1.2 IP地址的印刷规定

6.1.3 主机和路由器

6.2 代码介绍

6.3 接口和地址小结

6.4 sockaddr_in结构

6.5 in_ifaddr结构

6.6 地址指派

6.6.1 ifioctl函数

6.6.2 in_control函数

6.6.3 前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSTADDR

6.6.4 地址指派:SIOCSIFADDR

6.6.5 in_ifinit函数

6.6.6 网络掩码指派:SIOCSIFNETMASK

6.6.8 获取接口信息

6.6.7 目的地址指派:SIOCSIFDSTADDR

6.6.9 每个接口多个IP地址

6.6.10 附加IP地址:SIOCAIFADDR

6.6.11 删除IP地址:SIOCDIFADDR

6.7 接口ioctl处理

6.7.1 leioctl函数

6.7.2 slioctl函数

6.7.3 loioctl函数

6.9 ifnet实用函数

6.8 Internet实用函数

6.10 小结

第7章 域和协议

7.1 引言

7.2 代码介绍

7.2.1 全局变量

7.2.2 统计量

7.3 domain结构

7.4 protosw结构

7.5 IP的domain和protosw结构

7.6 pffindproto和pffindtype函数

7.7 pfctlinput函数

7.8 IP初始化

7.8.1 Internet传输分用

7.8.2 iP_init函数

7.9 sysctl系统调用

7.10 小结

第8章 IP:网际协议

8.1 引言

8.2.1 全局变量

8.2.2 统计量

8.2 代码介绍

8.2.3 SNMP变量

8.3 IP分组

8.4 输入处理:ipintr函数

8.4.1 ipintr概观

8.4.2 验证

8.4.3 转发或不转发

8.4.4 重装和分用

8.5 转发:ip_forward函数

8.6 输出处理:ip_output函数

8.6.1 首部初始化

8.6.2 路由选择

8.6.3 源地址选择和分片

8.7 Internet检验和:in_cksum函数

8.8 setsockopt和getsockopt系统调用

8.8.1 PRCO_SETOPT的处理

8.8.2 PRCO_GETOPT的处理

8.9 ip_sysctl函数

8.10 小结

第9章 IP选项处理

9.1 引言

9.2 代码介绍

9.2.1 全局变量

9.2.2 统计量

9.3 选项格式

9.4 ip_dooptions函数

9.5 记录路由选项

9.6 源站和记录路由选项

9.6.1 save_rte函数

9.6.2 ip_srcroute函数

9.7 时间戳选项

9.8 ip_insertoptions函数

9.9 ip_pcbopts函数

9.10 一些限制

9.11 小结

第10章 IP的分片与重装

10.1 引言

10.2 代码介绍

10.2.2 统计量

10.3 分片

10.2.1 全局变量

10.4 ip_optcopy函数

10.5 重装

10.6 ip_reass函数

10.7 ip_slowtimo函数

10.8 小结

11.1 引言

第11章 ICMP:Internet控制报文协议

11.2 代码介绍

11.2.1 全局变量

11.2.2 统计量

11.2.3 SNMP变量

11.3 icmp结构

11.4 ICMP的protosw结构

11.5 输入处理:icmp_input函数

11.6 差错处理

11.7 请求处理

11.7.1 回显询问:ICMP_ECHO和ICMP_ECHOREPLY

11.7.2 时间戳询问:ICMP_TSTAMP和ICMP_TSTAMPREPLY

11.7.3 地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY

11.7.4 信息询问:ICMP_IREQ和ICMP_IREQREPLY

11.7.5 路由器发现:ICMP_ROUTERADVERT和ICMP_ROUTERSOLICIT

11.8 重定向处理

11.9 回答处理

11.10 输出处理

11.11 icmp_error函数

11.12 icmp_reflect函数

11.13 icmp_send函数

11.14 icmp_sysctl函数

11.15 小结

第12章 IP多播

12.1 引言

12.2 代码介绍

12.2.1 全局变量

12.2.2 统计量

12.3 以太网多播地址

12.4 ether_multi结构

12.5 以太网多播接收

12.6 in_multi结构

12.7 ip_moptions结构

12.8 多播的插口选项

12.9 多播的TTL值

12.9.1 MBONE

12.9.2 扩展环搜索

12.10 ip_setmoptions函数

12.10.1 选择一个明确的多播接口:IP_MULTICAST_IF

12.10.2 选择明确的多播TTL:IP_MULTICAST_TTL

12.10.3 选择多播环回:IP_MULTICAST_LOOP

12.11 加入一个IP多播组

12.11.1 in_addmulti函数

12.11.2 slioctl和loioctl函数:SIOCADDMULTI和SIOCDELMULTI

12.11.3 leioctl函数:SIOCADDMULTI和SIOCDELMULTI

12.11.4 ether_addmulti函数

12.12 离开一个IP多播组

12.12.1 in_delmulti函数

12.12.2 ether_delmulti函数

12.13 ip_getmoptions函数

12.14 多播输入处理:ipintr函数

12.15 多播输出处理:ip_output函数

12.16 性能的考虑

12.17 小结

第13章 IGMP:Internet组管理协议

13.1 引言

13.2.1 全局变量

13.2.2 统计量

13.2 代码介绍

13.2.3 SNMP变量

13.3 igmp结构

13.4 IGMP的protosw的结构

13.5 加入一个组:igmp_joingroup函数

13.6 igmp_fasttimo函数

13.7 输入处理:igmp_input函数

13.7.1 成员关系查询:IGMP_HOST_MEMBERSHIP_QUERY

13.7.2 成员关系报告:IGMP_HOST_MRMBERSHIP_REPORT

13.8 离开一个组:igmp_leavegroup函数

13.9 小结

第14 IP多播选路

14.1 引言

14.2 代码介绍

14.2.1 全局变量

14.2.2 统计量

14.2.3 SNMP变量

14.3 多播输出处理(续)

14.4 mrouted守护程序

14.5 虚拟接口

14.5.1 虚拟接口表

14.5.2 add_vif函数

14.5.3 del_vif函数

14.6 IGMP(续)

14.6.1 add_lgrp函数

14.6.2 del_lgrp函数

14.6.3 grplst_member函数

14.7 多播选路

14.7.1 多播选路表

14.7.2 del_mrt函数

14.7.3 add_mrt函数

14.7.4 mrtfind函数

14.8 多播转发:ip_mforward函数

14.8.1 phyint_send函数

14.8.2 tunnel_send函数

14.9 清理:ip_mrouter_done函数

14.10 小结

第15章 插口层

15.1 引言

15.3 socket结构

15.2 代码介绍

15.4 系统调用

15.4.1 举例

15.4.2 系统调用小结

15.5 进程、描述符和插口

15.6 socket系统调用

15.6.1 socreate函数

15.6.2 超级用户特权

15.7 getsock和sockargs函数

15.8 bind系统调用

15.9 listen系统调用

15.10 tsleep和wakeup函数

15.11 accept系统调用

15.12 sonewconn和soisconnected函数

15.13 connect系统调用

15.13.1 soconnect函数

15.13.2 切断五连接插口和外部地址的关联

15.14 shutdown系统调用

15.15.1 soo_close函数

15.15 close系统调用

15.15.2 soclose函数

15.16 小结

第16章 插口I/O

16.1 引言

16.2 代码介绍

16.3 插口缓存

16.4 write、writev、sendto和sendmsg系统调用

16.5 sendmsg系统调用

16.6 sendit函数

16.6.1 uiomove函数

16.6.2 举例

16.6.3 sendit代码

16.7 sosend函数

16.7.1 可靠的协议缓存

16.7.2 不可靠的协议缓存

16.7.4 性能问题

16.8 read、readv、recvfrom和recvmsg系统调用

16.7.3 sosend函数小结

16.9 recvmsg系统调用

16.10 recvit函数

16.11 soreceive函数

16.11.1 带外数据

16.11.2 举例

16.11.3 其他的接收操作选项

16.11.4 接收缓存的组织:报文边界

16.11.5 接收缓存的组织:没有报文边界

16.11.6 控制信息和带外数据

16.12 soreceive代码

16.13 select系统调用

16.13.1 selscan函数

16.13.2 soo_select函数

16.13.3 selrecord函数

16.13.4 selwakeup函数

16.14 小结

17.1 引言

17.2 代码介绍

第17章 插口选项

17.3 setsockopt系统调用

17.4 getsockopt系统调用

17.5 fcntl和ioctl系统调用

17.5.1 fcntl代码

17.5.2 ioctl代码

17.6 getsockname系统调用

17.7 getpeername系统调用

17.8 小结

18.2 路由表结构

18.1 引言

第18章 Radix树路由表

18.3 选路插口

18.4 代码介绍

18.4.1 全局变量

18.4.2 统计量

18.4.3 SNMP变量

18.5 Radix结点数据结构

18.6 选路结构

18.7 初始化:route_init和rtable_init函数

18.8 初始化:rn_init和rn_inithead函数

18.9 重复键和掩码列表

18.10 rn_match函数

18.11 rn_search函数

18.12 小结

第19章 选路请求和选路消息

19.1 引言

19.2 rtalloc和rtallocl函数

19.3 宏RTFREE和rtfree函数

19.4 rtrequest函数

19.5 rt_setgate函数

19.6 rtinit函数

19.7 rtredirect函数

19.8 选路消息的结构

19.9 rt_missmsg函数

19.10 rt_ifmsg函数

19.11 rt_newaddrmsg函数

19.12 rt_msgl函数

19.13 rt_msg2函数

19.14 sysctl_rtable函数

19.15 sysctl_dumpentry函数

19.16 sysctl_iflist函数

19.17 小结

第20章 选路插口

20.1 引言

20.2 routedomain和protosw结构

20.3 选路控制块

20.4 raw_init函数

20.5 route_output函数

20.6 rt_xaddrs函数

20.7 rt_setmetrics函数

20.8 raw_input函数

20.9 route_usrreq函数

20.10 raw_usrreq函数

20.11 raw_attach、raw_detach和raw_disconnect函数

20.12 小结

第21章 ARP:地址解析协议

21.1 介绍

21.2 ARP和路由表

21.3.2 统计量

21.3 代码介绍

21.3.1 全局变量

21.3.3 SNMP变量

21.4 ARP结构

21.5 arpwhohas函数

21.6 arprequest函数

21.7 arpintr函数

21.8 in_arpinput函数

21.9.2 arptfree函数

21.9.1 arptimer函数

21.9 ARP定时器函数

21.10 arpresolve函数

21.11 arplookup函数

21.12 代理ARP

21.13 arp_rtrequest函数

21.14 ARP和多播

21.15 小结

22.1 引言

第22章 协议控制块

22.2 代码介绍

22.2.1 全局变量

22.2.2 统计量

22.3 inpcb的结构

22.4 in_pcballoc和in_pcbdetach函数

22.5 绑定、连接和分用

22.6 in_pcblookup函数

22.7 in_pcbbind函数

22.8 in_pcbconnect函数

22.9 in_pcbdisconnect函数

22.10 in_setsockaddr和in_setpeeraddr函数

22.11 in_pcbnotify、in_rtchange和in_losing函数

22.11.1 in_rtchange函数

22.11.2 重定向和原始插口

22.11.3 ICMP差错和UDP插口

22.11.4 in_losing函数

22.12 实现求精

22.13 小结

23.2 代码介绍

23.1 引言

第23章 UDP:用户数据报协议

23.2.1 全局变量

23.2.2 统计量

23.2.3 SNMP变量

23.3 UDP的protosw结构

23.4 UDP的首部

23.5 udp_init函数

23.6 udp_output函数

23.6.2 UDP检验和计算和伪首部

23.6.1 在前面加上IP/UDP首部和mbuf簇

23.7.1 对收到的UDP数据报的一般确认

23.7 udp_input函数

23.7.2 分用单播数据报

23.7.3 分用多播和广播数据报

23.7.4 连接上的UDP插口和多接口主机

23.8 udp_saveopt函数

23.9 udp_ctlinput函数

23.10 udp_usrreq函数

23.12.1 UDPPCB高速缓存

23.11 udp_sysctl函数

23.12 实现求精

23.12.2 UDP检验和

23.13 小结

第24章 TCP:传输控制协议

24.1 引言

24.2 代码介绍

24.2.1 全局变量

24.2.2 统计量

24.2.3 SNMP变量

24.3 TCP的protosw结构

24.4 TCP的首部

24.5 TCP的控制块

24.6 TCP的状态变迁图

24.7 TCP的序号

24.8 tcp_init函数

24.9 小结

25.1 引言

第25章 TCP的定时器

25.2 代码介绍

25.3 tcp_canceltimers函数

25.4 tcp_fasttimo函数

25.5 tcp_slowtimo函数

25.6 tcp_timers函数

25.6.1 FIN_WAIT_2和2MSL定时器

25.6.2 持续定时器

25.6.3 连接建立定时器和保活定时器

25.7 重传定时器的计算

25.8 tcp_newtcpcb算法

25.9 tcp_setpersist函数

25.10 tcp_xmit_timer函数

25.11 重传超时:tcp_timers函数

25.11.1 慢起动和避免拥塞

25.11.2 精确性

25.12 一个RTT的例子

25.13 小结

26.2 tcp_output概述

26.1 引言

第26章 TCP输出

26.3 决定是否应发送一个报文段

26.4 TCP选项

26.5 窗口大小选项

26.6 时间戳选项

26.6.1 哪个时间戳需要回显,RFC1323算法

26.6.2 哪个时间戳需要回显,正确的算法

26.6.3 时间戳与延迟ACK

26.7 发送一个报文段

26.8 tcp_template函数

26.9 tcp_respond函数

26.10 小结

第27章 TCP的函数

27.1 引言

27.2 tcp_drain函数

27.3 tcp_drop函数

27.4 tcp_close函数

27.4.1 路由特性

27.4.2 资源释放

27.5 tcp_mss函数

27.6 tcp_ctlinput函数

27.7 tcp_notify函数

27.8 tcp_quench函数

27.9 TCP_REASS宏和tcp_reass函数

27.9.1 TCP_REASS宏

27.9.2 TCP_REASS函数

27.10 tcp_trace函数

27.11 小结

28.1 引言

第28章 TCP的输入

28.2 预处理

28.3 tcp_dooptions函数

28.4 首部预测

28.5 TCP输入:缓慢的执行路径

28.6 完成被动打开或主动打开

28.6.1 完成被动打开

28.6.2 完成主动打开

28.7 PAWS:防止序号回绕

28.8 裁剪报文段使数据在窗口内

28.9 自连接和同时打开

28.10 记录时间戳

28.11 RST处理

28.12 小结

第29章 TCP的输入(续)

29.1 引言

29.2 ACK处理概述

29.3 完成被动打开和同时打开

29.4 快速重传和快速恢复的算法

29.5 ACK处理

29.6 更新窗口信息

29.7 紧急方式处理

29.8 tcp_pulloutofband函数

29.9 处理已接收的数据

29.10 FIN处理

29.11 最后的处理

29.12 实现求精

29.13 首部压缩

29.13.1 引言

29.13.2 首部字段的压缩

29.13.3 特殊情况

29.13.4 实例

29.13.5 配置

29.14 小结

笫30章 TCP的用户需求

30.1 引言

30.2 tcp_usrreq函数

30.3 tcp_attach函数

30.4 tcp_disconnect函数

30.5 tcp_usrclosed函数

30.6 tcp_ctloutput函数

30.7 小结

笫31章 BPF:BSD分组过滤程序

31.1 引言

31.2 代码介绍

31.2.1 全局变量

31.3 bpf_if结构

31.2.2 统计量

31.4 bpf_d结构

31.4.1 bpfopen函数

31.4.2 bpfioctl函数

31.4.3 bpf_setif函数

31.4.4 bpf_attachd函数

31.5 BPF的输入

31.5.1 bpf_tap函数

31.5.2 catcnpacket函数

31.5.3 bpfread函数

31.6 BPF的输出

31.7 小结

第32章 原始IP

32.1 引言

32.2 代码介绍

32.2.1 全局变量

32.2.2 统计量

32.3 原始IP的protosw结构

32.5 rip_input函数

32.4 rip_init函数

32.6 rip_output函数

32.7 rip_usrreq函数

32.8 rip_ctloutput函数

32.9 小结

结束语

附录A 部分习题的解答

附录B 源代码的获取

附录C RFC1122的有关内容

参考文献


书查询(www.shuchaxun.com)本网页唯一编码:
2a3513a0d72126870cdc8f7dd59b8518#0c6de124248a560fb618327cfb09c8f0#78201505#TCP_IP详解卷2_Volume 2The Implementation_10460103.zip