IPv6详解(卷1):核心协议实现

IPv6详解(卷1):核心协议实现
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , ,
2009-01
版次: 1
ISBN: 9787115189509
定价: 128.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 846页
字数: 1488千字
54人买过
  •   本书全面讲解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与IPv6
    1.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 范围区域ID
    2.9.3 地址结构中的区域ID
    2.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章 IPv6
    3.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章 ICMPv6
    4.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命令:打印支持的Qtype
    4.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和UDP
    6.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上的TCP
    6.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上的UDP
    6.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 原始IPv6
    6.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 基本套接字API
    7.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的API
    7.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 库函数的实现:libinet6
    7.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 其他库函数
    参考文献
    索引
  • 内容简介:
      本书全面讲解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与IPv6
    1.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 范围区域ID
    2.9.3 地址结构中的区域ID
    2.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章 IPv6
    3.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章 ICMPv6
    4.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命令:打印支持的Qtype
    4.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和UDP
    6.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上的TCP
    6.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上的UDP
    6.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 原始IPv6
    6.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 基本套接字API
    7.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的API
    7.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 库函数的实现:libinet6
    7.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 其他库函数
    参考文献
    索引
查看详情
系列丛书 / 更多
IPv6详解(卷1):核心协议实现
数据挖掘导论
陈封能、斯坦巴赫、库玛尔 著;范明、范宏建 译
IPv6详解(卷1):核心协议实现
UNIX环境高级编程(第2版)
[美]史蒂文斯、拉戈 著;尤晋元、张亚英、戚正伟 译
IPv6详解(卷1):核心协议实现
计算机科学概论(第11版)
[美]J. Glenn Brookshear 著;刘艺 译
IPv6详解(卷1):核心协议实现
数据挖掘与分析 概念与算法
吴诚堃 译
IPv6详解(卷1):核心协议实现
计算机程序设计艺术:卷1:基本算法(第3版)
[美]高德纳(Donald E. Knuth) 著;李伯民、范明、蒋爱军 译
IPv6详解(卷1):核心协议实现
具体数学:计算机科学基础(第2版)
[美]葛立恒、[美]高德纳、[美]帕塔许尼克 著;张明尧、张凡 译
IPv6详解(卷1):核心协议实现
计算机程序设计艺术・卷2:半数值算法(第3版)
[美]高德纳(Donald E.Knuth) 著;巫斌、范明 译
IPv6详解(卷1):核心协议实现
计算机程序设计艺术 卷3 排序与查找(第2版)
高德纳(Donald、E.、Knuth 著;贾洪峰 译
IPv6详解(卷1):核心协议实现
UNIX网络编程 : 第2版. 第2卷, 进程间通信(中文版)
[美]史蒂文斯 著
IPv6详解(卷1):核心协议实现
UNIX网络编程 卷1:套接字联网API(第3版)
[美]史蒂文斯 著
IPv6详解(卷1):核心协议实现
电子商务:从愿景到实现(第3版)
[美]阿瓦德 著;干红华、蔡晓平 译
IPv6详解(卷1):核心协议实现
UML面向对象建模与设计:第2版
[美]巴拉赫、[美]兰宝 著;车皓阳、杨眉 译
相关图书 / 更多
IPv6详解(卷1):核心协议实现
IPv6技术与实践
桂学勤;汪蓉;钟良骥;贺頔
IPv6详解(卷1):核心协议实现
IPv6网络切片:使能千行百业新体验
李振斌 董杰
IPv6详解(卷1):核心协议实现
IPO注册制:审核要点与实操指引
投行小兵;梁爽
IPv6详解(卷1):核心协议实现
IP之道:30家国内一线创新公司的知识产权是如何运营的(第2版)
柯晓鹏 林炮勤
IPv6详解(卷1):核心协议实现
IP组网技术
周玮;段恒利;何兴雄
IPv6详解(卷1):核心协议实现
IPO财务透视:注册制下的方法、重点和案例
叶金福 著
IPv6详解(卷1):核心协议实现
IPO公司机会主义行为研究-(基于外部利益相关者影响视角)
范钦钦 著;邱静
IPv6详解(卷1):核心协议实现
IPO问询疑难点论证及案例剖析
陈涣波
IPv6详解(卷1):核心协议实现
IPO信息披露与投资者权益保护研究
黄方亮
IPv6详解(卷1):核心协议实现
IPv6技术与应用(华三版)
周永福
IPv6详解(卷1):核心协议实现
IPv6技术与应用(微课版)
黄君羡 简碧园 张金荣
IPv6详解(卷1):核心协议实现
IPO审核:审核要点、应对策略、案例分析
袁梦月
您可能感兴趣 / 更多
IPv6详解(卷1):核心协议实现
无辜者的谎言(相信我!看到结局你一定会头皮发麻;全美读者推荐的悬疑神作,GOODREADS高分作品)
[美]A.R.托雷 著;梁颂宇 译;星文文化 出品
IPv6详解(卷1):核心协议实现
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
IPv6详解(卷1):核心协议实现
哲学、历史与僭政——重审施特劳斯与科耶夫之争
[美]弗罗斯特(Bryan-Paul Frost) 编;[美]伯恩斯(Timothy W. Burns)
IPv6详解(卷1):核心协议实现
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
IPv6详解(卷1):核心协议实现
力量训练的科学基础与实践应用(第三版)
[美]弗拉基米尔· M.扎齐奥尔斯基;[美]威廉·J.克雷默;[美]安德鲁· C.弗赖伊
IPv6详解(卷1):核心协议实现
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
IPv6详解(卷1):核心协议实现
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
IPv6详解(卷1):核心协议实现
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
IPv6详解(卷1):核心协议实现
最后一章
[美]厄尼·派尔
IPv6详解(卷1):核心协议实现
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
IPv6详解(卷1):核心协议实现
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
IPv6详解(卷1):核心协议实现
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译