TCP/IP详解卷2:实现
《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。
译者序
前言
第1章 概述
1.1 引言
1.2 源代码表示
1.2.1 将拥塞窗口设置为1
1.2.2 印刷约定
1.3 历史
1.4 应用编程接口
1.5 程序示例
1.6 系统调用和库函数
1.7 网络实现概述
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 输入处理
1.10.1 以太网输入
1.10.2 IP输入
1.10.3 UDP输入
1.10.4 进程输入
1.11 网络实现概述(续)
1.12 中断级别与并发
1.13 源代码组织
1.14 测试网络
1.15 小结
第2章 mbuf:存储器缓存
2.1 引言
2.2 代码介绍
2.2.1 全局变量
2.2.2 统计
2.2.3 内核统计
2.3 mbufl的定义
2.4 mbuf结构
2.5 简单的mbuf宏和函数
2.5.1 m-get函数
2.5.2 MGET宏
2.5.3 m-etry函数
2.5.4 mbuf锁
2.6 m-devget和m-pullup函数
2.6.1 m-devget函数
2.6.2 mtod和dtom宏
2.6.3 pullup函数和连续的协议首部
2.6.4 m-pullup和IP的分片与重组
2.6.5 TCP重组避免调用m-pullup
2.6.6 m-pullup使用总结
2.7 mbuf宏和函数的小结
2.8 Neff3联网数据结构小结
2.9 m-Copy和簇引用计数
2.10 其他选择
2.11 小结
第3章 接口层
3.1 引言
3.2 代码介绍
3.2.1 全局变量
3.2.2 SNMP变量
3.3 ifnet结构
3.4 ifadck结构,
3.5 sockaddr结构
3.6 ifnet与土faddr的专用化
3.7 网络初始化概述
3.8 以太网初始化
3.9 suP初始化
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.2.2 统计量
5.3 SLIP接口
5.3.1 SLIP线路规程:SLIPDISC
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.IIP地址
6.I.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和SIOCSIFDSFADDR
6.6.4 地址指派:SIOCSIFADDR
6.6.5 in_ifinit函数
6.6.6 网络掩码指派:SIOCSIFNETMASK
6.6.7 目的地址指派:SIOCSIFDSTADDR
6.6.8 获取接口信息
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.8 Internet实用函数
6.9 ifnet实用函数
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~Hpffindtype函数
7.7 pfctlinput函数
7.8 IP初始化
7.8.1 Intemet传输分用
7.8.2 ip_init函数
7.9 sysctl系统调用
7.10 小结
第8章 IP:网际协议
8.1 引言
8.2 代码介绍
8.2.1 全局变量
8.2.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.1 全局变量
10.2.2 统计量
10.3 分片
10.4 ip_optcopy函数
10.5 重装
10.6 ip_reass函数
10.7 ip_slowtimo函数
10.8 小结
第11章 ICMP:Internet控制报文协议
11.1 引言
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和ICMLHCHOREPLY
11.7.2 时间戳询问:ICMP_TSTAMP和
ICMPTSTAMPREPLY
11.7.3 地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY
11.7.4 信息询问:ICMP_IREQ和ICMP_IREQREPLY
11.7.5 路由器发现:ICMP_ROUTERADVERy和ICMP_ROUTERSOLICIF
11.8 重定向处理
11.9 回答处理
11.10 输出处理
11.11 icmp_error函数
11.12 icmpreflect函数
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 inmulti结构
12.7 ip_moptions结构
12.8 多播的插口选项
12.9 多播的TTL值
12.9.1 MBONE
12.9.2 扩展环搜索
12.10 ip_setmoptions函数
12.10.1 选择一个明确的多播接口:IP_MULTICAS%_IF
12.10.2 选择明确的多播TTL:IP_MULTICASTTTL
12.10.3 选择多播环回:IPMULTICAST_LOOP
12.11 加入一个IP多播组
12.11.1 in_addmulti函数
12.11.2 slioctl和loioctl函数:SIOCADDMULTT和SIOCDRLTI
12.11.3 Leioctl函数:SIOCADDMULTI和SIOCDELMULTI
12.11.4 etheraddmulti函数
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:Intemet组管理协议
13.1 引言
13.2 代码介绍
13.2.1 全局变量
13.2.2 统计量
13.2.3 SNMP变量
13.3 igrmp结构
13.4 IGMP的protosw的结构
13.5 加入一个组:igmp_joingroup函数
13.6 igmp_fasttimo函数
]3.7 输入处理:igmp_input函数
13.7.1 成员关系查询:IGMP_HOST_M194BERSHIPQUERY
13.7.2 成员关系报告:IGMP_HOST_MEMBERSHIPREPORT
13.8 离开一个组:ignlo_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_igrp函数
14.6.2 del_igrp函数
14.6.3 grplst_member函数
14.7 多播选路
……
第15章 插口层
第16章 插口I/O
第17章 插口选项
第18章 Radix树路由表
第19章 选路请求和选路消息
第20章 选路插口
^ 收 起
前言
第1章 概述
1.1 引言
1.2 源代码表示
1.2.1 将拥塞窗口设置为1
1.2.2 印刷约定
1.3 历史
1.4 应用编程接口
1.5 程序示例
1.6 系统调用和库函数
1.7 网络实现概述
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 输入处理
1.10.1 以太网输入
1.10.2 IP输入
1.10.3 UDP输入
1.10.4 进程输入
1.11 网络实现概述(续)
1.12 中断级别与并发
1.13 源代码组织
1.14 测试网络
1.15 小结
第2章 mbuf:存储器缓存
2.1 引言
2.2 代码介绍
2.2.1 全局变量
2.2.2 统计
2.2.3 内核统计
2.3 mbufl的定义
2.4 mbuf结构
2.5 简单的mbuf宏和函数
2.5.1 m-get函数
2.5.2 MGET宏
2.5.3 m-etry函数
2.5.4 mbuf锁
2.6 m-devget和m-pullup函数
2.6.1 m-devget函数
2.6.2 mtod和dtom宏
2.6.3 pullup函数和连续的协议首部
2.6.4 m-pullup和IP的分片与重组
2.6.5 TCP重组避免调用m-pullup
2.6.6 m-pullup使用总结
2.7 mbuf宏和函数的小结
2.8 Neff3联网数据结构小结
2.9 m-Copy和簇引用计数
2.10 其他选择
2.11 小结
第3章 接口层
3.1 引言
3.2 代码介绍
3.2.1 全局变量
3.2.2 SNMP变量
3.3 ifnet结构
3.4 ifadck结构,
3.5 sockaddr结构
3.6 ifnet与土faddr的专用化
3.7 网络初始化概述
3.8 以太网初始化
3.9 suP初始化
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.2.2 统计量
5.3 SLIP接口
5.3.1 SLIP线路规程:SLIPDISC
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.IIP地址
6.I.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和SIOCSIFDSFADDR
6.6.4 地址指派:SIOCSIFADDR
6.6.5 in_ifinit函数
6.6.6 网络掩码指派:SIOCSIFNETMASK
6.6.7 目的地址指派:SIOCSIFDSTADDR
6.6.8 获取接口信息
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.8 Internet实用函数
6.9 ifnet实用函数
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~Hpffindtype函数
7.7 pfctlinput函数
7.8 IP初始化
7.8.1 Intemet传输分用
7.8.2 ip_init函数
7.9 sysctl系统调用
7.10 小结
第8章 IP:网际协议
8.1 引言
8.2 代码介绍
8.2.1 全局变量
8.2.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.1 全局变量
10.2.2 统计量
10.3 分片
10.4 ip_optcopy函数
10.5 重装
10.6 ip_reass函数
10.7 ip_slowtimo函数
10.8 小结
第11章 ICMP:Internet控制报文协议
11.1 引言
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和ICMLHCHOREPLY
11.7.2 时间戳询问:ICMP_TSTAMP和
ICMPTSTAMPREPLY
11.7.3 地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY
11.7.4 信息询问:ICMP_IREQ和ICMP_IREQREPLY
11.7.5 路由器发现:ICMP_ROUTERADVERy和ICMP_ROUTERSOLICIF
11.8 重定向处理
11.9 回答处理
11.10 输出处理
11.11 icmp_error函数
11.12 icmpreflect函数
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 inmulti结构
12.7 ip_moptions结构
12.8 多播的插口选项
12.9 多播的TTL值
12.9.1 MBONE
12.9.2 扩展环搜索
12.10 ip_setmoptions函数
12.10.1 选择一个明确的多播接口:IP_MULTICAS%_IF
12.10.2 选择明确的多播TTL:IP_MULTICASTTTL
12.10.3 选择多播环回:IPMULTICAST_LOOP
12.11 加入一个IP多播组
12.11.1 in_addmulti函数
12.11.2 slioctl和loioctl函数:SIOCADDMULTT和SIOCDRLTI
12.11.3 Leioctl函数:SIOCADDMULTI和SIOCDELMULTI
12.11.4 etheraddmulti函数
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:Intemet组管理协议
13.1 引言
13.2 代码介绍
13.2.1 全局变量
13.2.2 统计量
13.2.3 SNMP变量
13.3 igrmp结构
13.4 IGMP的protosw的结构
13.5 加入一个组:igmp_joingroup函数
13.6 igmp_fasttimo函数
]3.7 输入处理:igmp_input函数
13.7.1 成员关系查询:IGMP_HOST_M194BERSHIPQUERY
13.7.2 成员关系报告:IGMP_HOST_MEMBERSHIPREPORT
13.8 离开一个组:ignlo_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_igrp函数
14.6.2 del_igrp函数
14.6.3 grplst_member函数
14.7 多播选路
……
第15章 插口层
第16章 插口I/O
第17章 插口选项
第18章 Radix树路由表
第19章 选路请求和选路消息
第20章 选路插口
^ 收 起
《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。
比价列表