图书介绍
IPv6详解:卷1:核心协议实现PDF|Epub|txt|kindle电子书版本下载
![IPv6详解:卷1:核心协议实现](https://www.shukui.net/cover/32/30168748.jpg)
- (美)QingLi,(日)TatuyaJinmer,(日)KeiichiShima著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115189509
- 出版时间:2009
- 标注页数:846页
- 文件大小:161MB
- 文件页数:864页
- 主题词:计算机网络-传输控制协议
PDF下载
下载说明
IPv6详解:卷1:核心协议实现PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 绪论1
1.1 引言1
1.2 IPv6和KAME的简史1
1.3 KAME发行版概述5
1.3.1 源代码树结构5
1.3.2 构建过程6
1.4 BSD网络实现概述8
1.5 源代码描述10
1.5.1 排版约定10
1.5.2 源代码描述示例11
1.5.3 预处理器变量12
1.5.4 网络设备与体系结构假设12
1.6 mbuf与IPv613
1.6.1 常见的mbuf操纵宏和函数14
1.6.2 mbuf标签14
1.6.3 IPv6的mbuf要求18
1.6.4 诊断mbuf链20
第2章 IPv6编址体系结构22
2.1 引言22
2.2 IPv6地址22
2.3 IPv6地址的文本表示23
2.4 地址范围24
2.4.1 范围区域25
2.4.2 区域索引27
2.4.3 范围受限地址的文本表示29
2.4.4 单播站点本地地址的废弃30
2.5 IPv6地址格式31
2.5.1 接口标识符的产生32
2.5.2 有关地址格式的注解33
2.5.3 多播地址格式33
2.6 节点地址要求35
2.7 IPv6地址空间管理35
2.8 代码介绍36
2.8.1 IPv6地址结构:in6_addr{}与sockaddr_in6{}36
2.8.2 宏与变量37
2.9 对范围区域的处理39
2.9.1 范围区域的初始化39
2.9.2 范围区域ID40
2.9.3 地址结构中的区域ID41
2.9.4 与范围相关的实用函数43
2.10 接口地址结构49
2.10.1 ifaddr{}和in6_ifaddr{}结构50
2.10.2 in6_ifreq{}和in6_aliasreq{}结构52
2.10.3 多播地址结构53
2.11 IPv6前缀结构56
2.12 地址操纵程序概述57
2.13 IPv6的接口初始化60
2.13.1 in6_if_up()函数60
2.13.2 in6_ifattach()函数61
2.13.3 in6_ifattach_loopback{}函数64
2.13.4 in6_ifattach_linklocal()函数65
2.13.5 get_ifid()函数69
2.13.6 get_hw_ifid()函数71
2.13.7 get_rand_ifid()函数75
2.13.8 in6if_do_dad()函数76
2.14 IPv6接口地址配置77
2.14.1 in6_control()函数77
2.14.2 in6_update_if a()函数83
2.14.3 in6_joingroup()和in6_leavegroup()函数95
2.14.4 in6_addmulti()和in6_delmulti()函数96
2.14.5 in6_ifinit()函数98
2.14.6 in6_ifaddloop()和in6_ifloop_request()函数100
2.15 删除IPv6地址102
2.15.1 in6_purgeaddr()函数103
2.15.2 in6_ifremloop()函数104
2.15.3 in6_unlink_ifa()函数105
2.16 用地址配置工具进行的操作106
第3章 IPv6110
3.1 引言110
3.2 IPv6首部格式110
3.3 IPv6扩展首部112
3.3.1 扩展首部的顺序113
3.3.2 逐跳选项首部113
3.3.3 目的选项首部114
3.3.4 路由首部114
3.3.5 片首部116
3.3.6 IPv6选项118
3.4 源地址选择120
3.4.1 默认地址选择120
3.4.2 源地址选择121
3.4.3 目的地址选择123
3.5 代码介绍124
3.5.1 统计数据125
3.5.2 首部结构126
3.5.3 ip6protosw{}结构130
3.6 mbuf中的IPv6分组地址信息132
3.6.1 ip6_setdstifaddr()函数134
3.6.2 ip6_getdstifaddr()函数134
3.6.3 ip6_setpktaddrs()函数134
3.6.4 ip6_getpktaddrs()函数136
3.7 输入处理:ip6_input()函数136
3.8 逐跳选项首部的处理:ip6_hopopts_input()函数150
3.8.1 对每个选项进行处理:ip6_process_hopopts函数151
3.8.2 处理未知选项:ip6_unknown_opt()函数155
3.9 对目的选项首部的处理:dest6_ input()函数156
3.10 已分片分组的重装157
3.10.1 用于分组重装的结构157
3.10.2 frag6_input()函数160
3.11 对路由首部的处理:route6_input()函数172
3.12 转发:ip6_forward()函数177
3.13 输出处理186
3.13.1 源地址选择:in6_selectsrc函数187
3.13.2 路由选择:ip6_selectroute()函数199
3.13.3 ip6_output()函数206
3.13.4 构建扩展首部:ip6_copyexthdr()函数237
3.13.5 分割首部:ip6_splithdr()函数237
3.13.6 插入特大净荷选项:ip6_insert_jumboopt()函数238
3.13.7 分片:ip6_insertfraghdr()函数241
3.13.8 路径MTU判断:ip6_getpmtu()函数242
3.13.9 多播环回:ip6_mloopback()函数245
第4章 ICMPv6247
4.1 引言247
4.2 ICMPv6报文247
4.2.1 目的不可达报文248
4.2.2 分组太长报文249
4.2.3 超时报文250
4.2.4 参数问题报文251
4.2.5 回送请求报文252
4.2.6 回送应答报文252
4.2.7 ICMPv6报文处理规则253
4.3 PMTU发现机制253
4.4 节点信息查询254
4.4.1 节点信息报文的格式255
4.4.2 NOOP查询257
4.4.3 支持的Qtype查询257
4.4.4 节点名查询257
4.4.5 节点地址查询258
4.4.6 IPv4地址查询259
4.5 代码介绍260
4.5.1 统计数据260
4.5.2 ICMPv6首部262
4.6 ICMPv6输入处理263
4.6.1 icmp6_input()函数263
4.6.2 错误通知:icmp6_notify_error()函数272
4.7 PMTU发现的实现280
4.8 ICMPv6输出处理283
4.8.1 发送错误:icmp6_error()函数284
4.8.2 错误速率限制:icmp6_ratelimit()函数290
4.8.3 icmp6_reflect()函数291
4.9 节点信息查询的实现297
4.9.1 类型和变量297
4.9.2 ping6命令:发送查询298
4.9.3 ping6命令:接收应答303
4.9.4 ping6命令:打印支持的Qtype309
4.9.5 ping6命令:打印节点地址312
4.9.6 查询处理:ni6_input()函数314
4.9.7 节点名的操作322
4.9.8 创建节点地址应答:ni6_store_addrs()函数330
4.10 节点信息操作333
第5章 邻居发现和无状态地址自动配置335
5.1 引言335
5.2 邻居发现协议概述336
5.3 无状态地址自动配置概述336
5.4 邻居发现协议报文337
5.5 邻居发现协议报文的交换示例338
5.6 邻居发现协议分组类型及格式340
5.6.1 路由器请求报文340
5.6.2 路由器广告报文341
5.6.3 邻居请求报文344
5.6.4 邻居广告报文344
5.6.5 重定向报文346
5.7 邻居发现选项类型及格式347
5.7.1 链路层地址选项347
5.7.2 前缀信息选项348
5.7.3 重定向首部选项349
5.7.4 MTU选项349
5.7.5 路由信息选项350
5.8 下一跳判定和地址解析351
5.9 邻居不可达检测算法351
5.10 无状态地址自动配置352
5.10.1 地址的构成和地址状态353
5.10.2 重复地址检测算法354
5.10.3 处理路由器广告355
5.10.4 隐私扩展356
5.11 路由器特有的操作357
5.11.1 发送未经请求的路由器广告359
5.11.2 处理路由器请求359
5.11.3 处理路由器广告360
5.12 主机特有的操作360
5.12.1 发送路由器请求361
5.12.2 处理路由器广告361
5.12.3 默认路由器选项362
5.13 代码介绍362
5.13.1 邻居发现报文定义362
5.13.2 部居缓存:llinfo_nd6{}结构365
5.13.3 操作变量:nd_ifinfo{}结构367
5.13.4 默认路由器:nd_defrouter{}结构368
5.13.5 前缀:nd_prefix{}结构369
5.13.6 前级控制:nd_prefixctl{}结构370
5.13.7 邻居发现报文选项:nd_opts{}结构371
5.13.8 DAD队列条目:dadq{}结构372
5.13.9 IPv6地址:in6_ifaddr{}结构372
5.13.10 目的地缓存372
5.13.11 操作常量372
5.14 初始化函数373
5.14.1 nd6_init函数373
5.14.2 nd6_ifattach()函数374
5.15 邻居缓存管理函数375
5.15.1 nd6_rtrequest()函数375
5.15.2 nd6_cache_lladdr()函数385
5.15.3 nd6_lookup()函数395
5.15.4 nd6_ free()函数398
5.15.5 nd6_timer函数401
5.16 邻居发现协议报文处理函数408
5.16.1 nd6_ns_output()函数408
5.16.2 nd6_ns_input()函数414
5.16.3 nd6_na_input()函数422
5.16.4 nd6_na_output()函数432
5.16.5 nd6_rs_input()函数437
5.16.6 nd6_ra_input()函数440
5.16.7 icmp6_redirect_input()函数447
5.16.8 icmp6_redirect_output()函数454
5.17 邻居发现协议报文选项处理函数461
5.17.1 nd6_option_init()函数461
5.17.2 nd6_option()函数462
5.17.3 nd6_options()函数463
5.18 默认路由器管理函数465
5.18.1 defrouter_addreq()函数465
5.18.2 defrouter_delreq()函数466
5.18.3 defrouter_addifreq()函数467
5.18.4 defrouter_delifreq()函数469
5.18.5 defrouter_lookup()函数470
5.18.6 defrouter_select()函数471
5.18.7 defrtrlist_del()函数475
5.18.8 defrtrlist_update()函数477
5.19 前缀管理函数479
5.19.1 nd6_prelist_add()函数479
5.19.2 prelist_remove()函数481
5.19.3 prelist_update()函数482
5.19.4 find_pfxlist_achable_uter()函数491
5.19.5 与在链条件有关的前级和地址状态491
5.19.6 pfxlist_onlink_check()函数493
5.19.7 nd6_prefix_onlink函数497
5.19.8 nd6_prefix-of flink()函数500
5.20 无状态地址自动配置函数503
5.20.1 in6_ifadd()函数503
5.20.2 in6_tmpifadd()函数506
5.20.3 regen_tmpaddr()函数509
5.21 重复地址检测函数511
5.21.1 nd6_dad_find()函数512
5.21.2 nd6_dad_starttimer()函数512
5.21.3 nd6_dad_stoptimer()函数512
5.21.4 nd6_dad_start()函数512
5.21.5 nd6_dad_stop()函数515
5.21.6 nd6_dad_timer()函数516
5.21.7 nd6_dad_duplicated()函数519
5.21.8 nd6_dad_ns_output()函数520
5.21.9 nd6_ad_ns_input()函数521
5.21.10 nd6_dad_na_input()函数522
5.22 其他函数523
5.22.1 nd6_is_addr_neighbor()函数523
5.22.2 nd6_output()函数525
5.22.3 rt6_flush()函数531
5.22.4 nd6_rtmsg()函数533
第6章 传输层的实现534
6.1 简介534
6.2 IPv6上的TCP和UDP534
6.3 IPv6的伪首部535
6.4 IPv4校验和与IPv6校验和的区别536
6.5 IPv4映射的IPv6地址的用法536
6.6 代码介绍536
6.7 对PCB和套接字的一般操作544
6.7.1 IPv6 PCB的分配:in_pcballoc()函数544
6.7.2 绑定本地地址:in6_cbbind()函数546
6.7.3 固定远程地址:in6_cbconnect()函数554
6.7.4 in6_pcbladdr()函数556
6.7.5 搜索PCB条目:in6_pcblookup_local()函数558
6.7.6 搜索IPv4映射的PCB:in_pcblookup_local()函数561
6.7.7 搜索PCB条目:in6_cblookup_hash()函数563
6.7.8 搜索IPv4映射的PCB:in_pcblookup_hash()函数565
6.7.9 分离一个IPv6 PCB:in6_pcbdetach()函数567
6.7.10 控制报文信令:in6cbnotify ()函数569
6.7.11 清空PCB缓存路由:in6_rtchange()函数573
6.7.12 获取对等实体地址:in6_setpeeraddr()函数573
6.7.13 获取本地地址:in6_setsockaddr()函数575
6.8 IPv6上的TCP576
6.8.1 ip6protosw{}的IPv6上的TCP实例576
6.8.2 TCP输出577
6.8.3 初始化首部:tcp_fillheaders()函数582
6.8.4 TCP输入:tcp6_input()和tcp_input函数582
6.8.5 TCP控制输入:tcp6_ctlinput函数587
6.8.6 TCP用户请求590
6.9 IPv6上的UDP596
6.9.1 ip6protosw{}的IPv6上的UDP实例596
6.9.2 UDP输出:udp6_output函数597
6.9.3 UDP输入:udp6_input()函数602
6.9.4 UDP控制输入:udp6_ctlinput()函数609
6.9.5 UDP用户请求的处理612
6.10 原始IPv6618
6.10.1 原始IPv6统计数据619
6.10.2 原始IPv6输出:rip6_output()函数619
6.10.3 原始IPv6输入:rip6_input()函数623
6.10.4 ICMPv6输入:icmp6_rip6_input()函数627
6.10.5 原始IPv6控制输入:rip6_ctlinput()函数632
6.10.6 原始IPv6控制输出:rip6_ctloutput()函数633
6.10.7 原始IPv6用户请求处理637
6.11 对IPv4映射的IPv6地址操作的总结644
6.12 用netstat查看IPv6连接648
6.13 配置IPv4映射的IPv6地址支持650
第7章 套接字API扩展652
7.1 简介652
7.2 基本套接字API652
7.2.1 基本定义652
7.2.2 接口标识653
7.2.3 在AF工NET6套接字上进行IPv4通信654
7.2.4 地址和名字转换函数656
7.2.5 基本套接字选项663
7.3 高级套接字API—[RFC3542]667
7.3.1 一些高级的定义667
7.3.2 IPv6原始套接字668
7.3.3 辅助数据介绍670
7.3.4 IPv6分组信息672
7.3.5 处理IPv6扩展首部674
7.3.6 路径MTU的API678
7.3.7 用于一批“r”命令的套接字扩展679
7.3.8 列表总结套接字选项679
7.4 IPv6套接字API的内核实现681
7.4.1 代码介绍682
7.4.2 ip6_pktopts{}结构684
7.4.3 IPv6套接字选项处理:ip6_ctloutput()函数688
7.4.4 获取套接字选项:ip6_getpcbopt()函数703
7.4.5 设置套接字选项与辅助数据705
7.4.6 清理:ip6_freepcbopts()函数720
7.4.7 IPv6多播套接字选项721
7.4.8 IPv6原始套接字选项:ip6_raw_ctloutput()函数731
7.4.9 ICMPv6套接字选项:rip6_ctloutput()函数734
7.4.10 传送输入信息:ip6_savecontrol()函数736
7.5 套接字选项与辅助数据示例743
7.5.1 发送路径示例743
7.5.2 接收路径示例745
7.6 库函数的实现:libinet6746
7.6.1 inet_pton()函数和inet_pton6()函数747
7.6.2 inet_ntop()函数和inet_ntop6()函数752
7.6.3 getaddrinfo()函数756
7.6.4 地址排序示例781
7.6.5 freeaddrinfo()函数786
7.6.6 gai_strerror()函数786
7.6.7 getnameinfo函数787
7.6.8 其他库函数795
参考文献797
索引801