成功加入购物车
[美] 李清 著; 陈涓 、 赵振平 译 / 人民邮电出版社 / 2009-01 / 平装
售价 ¥ 320.00
品相 九品品相描述
优惠 满包邮
延迟发货说明
上书时间2021-05-13
卖家超过10天未登录
IPv6详解(卷1):核心协议实现
本书全面讲解IPv6及相关协议实现的事实标准KAME,揭示了KAMEIPv6协议栈的所有细节,对每行代码到底做了什么以及为什么要这样设计都进行了解释。全书共分7章,分别介绍IPv6地址结构、IPv6、ICMPv6、邻居发现和无状态地址自动配置、传输层协议及套接字API扩展。每章都包含两个主要部分:第一部分提供了作为RFC发布的主要协议规范的摘要,定义各种协议分组,解释每个分组中每个字段的含义和目的;第二部分则描述实现这些RFC的KAME的数据结构及功能。书的最后还提供了一些例子,说明如何编写既可以在IPv4网络上运行、又可以在IPv6网络上运行的可移植应用程序。
本书是IPv6的权威参考书,适合网络设计和开发人员阅读。此外,本书还适合作为高校相关专业网络课程的教学参考书。
QingLi,BlueCoat系统公司资深架构师,负责领导下一代支持IPV6的安全代理应用系统的设计和开发工作。他曾在风河系统公司工作8年,是风河嵌入式IPV6产品的首席架构师。他拥有多项美国专利,并著有Real-TimeConceptsforEmbeddedSystems等畅销书。他还是FreeBSD操作系统项目活跃的开发者。
第1章 绪论1.1 引言1.2 IPv6和KAME的简史1.3 KAME发行版概述1.3.1 源代码树结构1.3.2 构建过程1.4 BSD网络实现概述1.5 源代码描述1.5.1 排版约定1.5.2 源代码描述示例1.5.3 预处理器变量1.5.4 网络设备与体系结构假设1.6 mbuf与IPv61.6.1 常见的mbuf操纵宏和函数1.6.2 mbuf标签1.6.3 IPv6的mbuf要求1.6.4 诊断mbuf链第2章 IPv6编址体系结构2.1 引言2.2 IPv6地址2.3IPv6地址的文本表示2.4地址范围2.4.1 范围区域2.4.2区域索引2.4.3 范围受限地址的文本表示2.4.4 单播站点本地地址的废弃2.5 IPv6地址格式2.5.1 接口标识符的产生2.5.2 有关地址格式的注解2.5.3 多播地址格式2.6 节点地址要求2.7 IPv6地址空间管理2.8 代码介绍2.8.1 IPv6地址结构:in6_addr{}与sockaddr_in6{}2.8.2 宏与变量2.9 对范围区域的处理2.9.1 范围区域的初始化2.9.2 范围区域ID2.9.3 地址结构中的区域ID2.9.4 与范围相关的实用函数2.10 接口地址结构2.10.1 ifaddr{}和in6_ifaddr{}结构2.10.2 in6_ifreq{}和in6_aliasreq{}结构2.10.3 多播地址结构2.11 IPv6前缀结构2.12 地址操纵程序概述2.13 IPv6的接口初始化2.13.1 in6_if_up()函数2.13.2 in6_ifattach()函数2.13.3 in6_ifattach_loopback{}函数2.13.4 in6_ifattach_linklocal()函数2.13.5 get_ifid()函数2.13.6 get_hw_ifid()函数2.13.7 get_rand_ifid()函数2.13.8 in6if_do_dad()函数2.14 IPv6接口地址配置2.14.1 in6_control()函数2.14.2 in6_update_ifa()函数2.14.3 in6_joingroup()和in6_leavegroup()函数2.14.4 in6_addmulti()和in6_delmulti()函数2.14.5 in6_ifinit()函数2.14.6 in6_ifaddloop()和in6_ifloop_request()函数2.15 删除IPv6地址2.15.1 in6_purgeaddr()函数2.15.2 in6_ifremloop()函数2.15.3 in6_unlink_ifa()函数2.16 用地址配置工具进行的操作第3章 IPv63.1 引言3.2 IPv6首部格式3.3 IPv6扩展首部3.3.1 扩展首部的顺序3.3.2 逐跳选项首部3.3.3 目的选项首部3.3.4 路由首部3.3.5 片首部3.3.6 IPv6选项3.4 源地址选择3.4.1 默认地址选择3.4.2 源地址选择3.4.3 目的地址选择3.5 代码介绍3.5.1 统计数据3.5.2 首部结构3.5.3 ip6protosw{}结构3.6 mbuf中的IPv6分组地址信息3.6.1 ip6_setdstifaddr()函数3.6.2 ip6_getdstifaddr()函数3.6.3 ip6_setpktaddrs()函数3.6.4 ip6_getpktaddrs()函数3.7 输入处理:ip6_input()函数3.8 逐跳选项首部的处理:ip6_hopopts_input()函数3.8.1 对每个选项进行处理:ip6_process_hopopts()函数3.8.2 处理未知选项:ip6_unknown_opt()函数3.9 对目的选项首部的处理:dest6_input()函数3.10 已分片分组的重装3.10.1 用于分组重装的结构3.10.2 frag6_input()函数3.11 对路由首部的处理:route6_input()函数3.12 转发:ip6_forward()函数3.13 输出处理3.13.1 源地址选择:in6_selectsrc()函数3.13.2 路由选择:ip6_selectroute()函数3.13.3 ip6_output()函数3.13.4 构建扩展首部:ip6_copyexthdr()函数3.13.5 分割首部:ip6_splithdr()函数3.13.6 插入特大净荷选项:ip6_insert_jumboopt()函数3.13.7 分片:ip6_insertfraghdr()函数3.13.8 路径MTU判断:ip6_getpmtu()函数3.13.9 多播环回:ip6_mloopback()函数第4章 ICMPv64.1 引言4.2 ICMPv6报文4.2.1 目的不可达报文4.2.2 分组太长报文4.2.3 超时报文4.2.4 参数问题报文4.2.5 回送请求报文4.2.6 回送应答报文4.2.7 ICMPv6报文处理规则4.3 PMTU发现机制4.4 节点信息查询4.4.1 节点信息报文的格式4.4.2 NOOP查询4.4.3 支持的Qtype查询4.4.4 节点名查询4.4.5 节点地址查询4.4.6 IPv4地址查询4.5 代码介绍4.5.1 统计数据4.5.2 ICMPv6首部4.6 ICMPv6输入处理4.6.1 icmp6_input()函数4.6.2 错误通知:icmp6_notify_error()函数4.7 PMTU发现的实现4.8 ICMPv6输出处理4.8.1 发送错误:icmp6_error()函数4.8.2 错误速率限制:icmp6_ratelimit()函数4.8.3 icmp6_reflect()函数4.9 节点信息查询的实现4.9.1 类型和变量4.9.2 ping6命令:发送查询4.9.3 ping6命令:接收应答4.9.4 ping6命令:打印支持的Qtype4.9.5 ping6命令:打印节点地址4.9.6 查询处理:ni6_input()函数4.9.7 节点名的操作4.9.8 创建节点地址应答:ni6_store_addrs()函数4.10 节点信息操作第5章 邻居发现和无状态地址自动配置5.1 引言5.2 邻居发现协议概述5.3 无状态地址自动配置概述5.4 邻居发现协议报文5.5 邻居发现协议报文的交换示例5.6 邻居发现协议分组类型及格式5.6.1 路由器请求报文5.6.2 路由器广告报文5.6.3 邻居请求报文5.6.4 邻居广告报文5.6.5 重定向报文5.7 邻居发现选项类型及格式5.7.1 链路层地址选项5.7.2 前缀信息选项5.7.3 重定向首部选项5.7.4 MTU选项5.7.5 路由信息选项5.8 下一跳判定和地址解析5.9 邻居不可达检测算法5.10 无状态地址自动配置5.10.1 地址的构成和地址状态5.10.2 重复地址检测算法5.10.3 处理路由器广告5.10.4 隐私扩展5.11 路由器特有的操作5.11.1 发送未经请求的路由器广告5.11.2 处理路由器请求5.11.3 处理路由器广告5.12 主机特有的操作5.12.1 发送路由器请求5.12.2 处理路由器广告5.12.3 默认路由器选项5.13 代码介绍5.13.1 邻居发现报文定义5.13.2 邻居缓存:llinfo_nd6{}结构5.13.3 操作变量:nd_ifinfo{}结构5.13.4 默认路由器:nd_defrouter{}结构5.13.5 前缀:nd_prefix{}结构5.13.6 前缀控制:nd_prefixctl{}结构5.13.7 邻居发现报文选项:nd_opts{}结构5.13.8 DAD队列条目:dadq{}结构5.13.9 IPv6地址:in6_ifaddr{}结构5.13.10 目的地缓存5.13.11 操作常量5.14 初始化函数5.14.1 nd6_init()函数5.14.2 nd6_ifattach()函数5.15 邻居缓存管理函数5.15.1 nd6_rtrequest()函数5.15.2 nd6_cache_lladdr()函数5.15.3 nd6_lookup()函数5.15.4 nd6_free()函数5.15.5 nd6_timer函数5.16 邻居发现协议报文处理函数5.16.1 nd6_ns_output()函数5.16.2 nd6_ns_input()函数5.16.3 nd6_na_input()函数5.16.4 nd6_na_output()函数5.16.5 nd6_rs_input()函数5.16.6 nd6_ra_input()函数5.16.7 icmp6_redirect_input()函数5.16.8 icmp6_redirect_output()函数5.17 邻居发现协议报文选项处理函数5.17.1 nd6_option_init()函数5.17.2 nd6_option()函数5.17.3 nd6_options()函数5.18 默认路由器管理函数5.18.1 defrouter_addreq()函数5.18.2 defrouter_delreq()函数5.18.3 defrouter_addifreq()函数5.18.4 defrouter_delifreq()函数5.18.5 defrouter_lookup()函数5.18.6 defrouter_select()函数5.18.7 defrtrlist_del()函数5.18.8 defrtrlist_update()函数5.19 前缀管理函数5.19.1 nd6_prelist_add()函数5.19.2 prelist_remove()函数5.19.3 prelist_update()函数5.19.4 find_pfxlist_reachable_router()函数5.19.5 与在链条件有关的前缀和地址状态5.19.6 pfxlist_onlink_check()函数5.19.7 nd6_prefix_onlink()函数5.19.8 nd6_prefix_offlink()函数5.20 无状态地址自动配置函数5.20.1 in6_ifadd()函数5.20.2 in6_tmpifadd()函数5.20.3 regen_tmpaddr()函数5.21 重复地址检测函数5.21.1 nd6_dad_find()函数5.21.2 nd6_dad_starttimer()函数5.21.3 nd6_dad_stoptimer()函数5.21.4 nd6_dad_start()函数5.21.5 nd6_dad_stop()函数5.21.6 nd6_dad_timer()函数5.21.7 nd6_dad_duplicated()函数5.21.8 nd6_dad_ns_output()函数5.21.9 nd6_dad_ns_input()函数5.21.10 nd6_dad_na_input()函数5.22 其他函数5.22.1 nd6_is_addr_neighbor()函数5.22.2 nd6_output()函数5.22.3 rt6_flush()函数5.22.4 nd6_rtmsg()函数第6章 传输层的实现6.1 简介6.2 IPv6上的TCP和UDP6.3 IPv6的伪首部6.4 IPv4校验和与IPv6校验和的区别6.5 IPv4映射的IPv6地址的用法6.6 代码介绍6.7 对PCB和套接字的一般操作6.7.1 IPv6PCB的分配:in_pcballoc()函数6.7.2 绑定本地地址:in6_pcbbind()函数6.7.3 固定远程地址:in6_pcbconnect()函数6.7.4 in6_pcbladdr()函数6.7.5 搜索PCB条目:in6_pcblookup_local()函数6.7.6 搜索IPv4映射的PCB:in_pcblookup_local()函数6.7.7 搜索PCB条目:in6_pcblookup_hash()函数6.7.8 搜索IPv4映射的PCB:in_pcblookup_hash()函数6.7.9 分离一个IPv6PCB:in6_pcbdetach()函数6.7.10 控制报文信令:in6_pcbnotify()函数6.7.11 清空PCB缓存路由:in6_rtchange()函数6.7.12 获取对等实体地址:in6_setpeeraddr()函数6.7.13 获取本地地址:in6_setsockaddr()函数6.8 IPv6上的TCP6.8.1 ip6protosw{}的IPv6上的TCP实例6.8.2 TCP输出6.8.3 初始化首部:tcp_fillheaders()函数6.8.4 TCP输入:tcp6_input()和tcp_input()函数6.8.5 TCP控制输入:tcp6_ctlinput()函数6.8.6 TCP用户请求6.9 IPv6上的UDP6.9.1 ip6protosw{}的IPv6上的UDP实例6.9.2 UDP输出:udp6_output()函数6.9.3 UDP输入:udp6_input()函数6.9.4 UDP控制输入:udp6_ctlinput()函数6.9.5 UDP用户请求的处理6.10 原始IPv66.10.1 原始IPv6统计数据6.10.2 原始IPv6输出:rip6_output()函数6.10.3 原始IPv6输入:rip6_input()函数6.10.4 ICMPv6输入:icmp6_rip6_input()函数6.10.5 原始IPv6控制输入:rip6_ctlinput()函数6.10.6 原始IPv6控制输出:rip6_ctloutput()函数6.10.7 原始IPv6用户请求处理6.11 对IPv4映射的IPv6地址操作的总结6.12 用netstat查看IPv6连接6.13 配置IPv4映射的IPv6地址支持第7章 套接字API扩展7.1 简介7.2 基本套接字API7.2.1 基本定义7.2.2 接口标识7.2.3 在AF_INET6套接字上进行IPv4通信7.2.4 地址和名字转换函数7.2.5 基本套接字选项7.3 高级套接字API——[RFC3542]7.3.1 一些高级的定义7.3.2 IPv6原始套接字7.3.3 辅助数据介绍7.3.4 IPv6分组信息7.3.5 处理IPv6扩展首部7.3.6 路径MTU的API7.3.7 用于一批“r”命令的套接字扩展7.3.8 列表总结套接字选项7.4 IPv6套接字API的内核实现7.4.1 代码介绍7.4.2 ip6_pktopts{}结构7.4.3 IPv6套接字选项处理:ip6_ctloutput()函数7.4.4 获取套接字选项:ip6_getpcbopt()函数7.4.5 设置套接字选项与辅助数据7.4.6 清理:ip6_freepcbopts()函数7.4.7 IPv6多播套接字选项7.4.8 IPv6原始套接字选项:ip6_raw_ctloutput()函数7.4.9 ICMPv6套接字选项:rip6_ctloutput()函数7.4.10 传送输入信息:ip6_savecontrol()函数7.5 套接字选项与辅助数据示例7.5.1 发送路径示例7.5.2 接收路径示例7.6 库函数的实现:libinet67.6.1 inet_pton()函数和inet_pton6()函数7.6.2 inet_ntop()函数和inet_ntop6()函数7.6.3 getaddrinfo()函数7.6.4 地址排序示例7.6.5 freeaddrinfo()函数7.6.6 gai_strerror()函数7.6.7 getnameinfo()函数7.6.8 其他库函数参考文献索引
展开全部
图2
图3
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30