IPv6詳解:核心協定實現(IPv6詳解(卷1))

IPv6詳解:核心協定實現

IPv6詳解(卷1)一般指本詞條

書 名: IPv6詳解:核心協定實現 作 者:(美)李清 (日)(KeiichiShima)島慶一出版社: 人民郵電出版社出版時間: 2009ISBN: 9787115189509開本: 16定價: 128.00 元

基本介紹

  • 書名:IPv6詳解:核心協定實現
  • 作者:(美)李清 (日)(KeiichiShima)島慶一
  • ISBN:9787115189509
  • 定價:128.00 元
  • 出版社:人民郵電出版社
  • 開本:16
內容簡介,作者簡介,編輯推薦,目錄,

內容簡介

《IPv6詳解》全面講解IPv6及相關協定實現的事實標準KAME,揭示了KAMEIPv6協定棧的所有細節,對每行代碼到底做了什麼以及為什麼要這樣設計都進行了解釋。共分7章,分別介紹IPv6地址結構、IPv6、ICMPv6、鄰居發現和無狀態地址自動配置、傳輸層協定及套接字API擴展。每章都包含兩個主要部分:第一部分提供了作為RFC發布的主要協定規範的摘要,定義各種協定分組,解釋每個分組中每個欄位的含義和目的;第二部分則描述實現這些RFC的KAME的數據結構及功能。書的最後還提供了一些例子,說明如何編寫既可以在IPv4網路上運行、又可以在IPv6網路上運行的可移植應用程式。
《IPv6詳解》是IPv6的權威參考書,適合網路設計和開發人員閱讀。此外,還適合作為高校相關專業網路課程的教學參考書。

作者簡介

QingLi(李清),BlueCoat系統公司資深架構師,負責領導下一代支持IPV6的安全代理套用系統的設計和開發工作。他曾在風河系統公司工作8年,是風河嵌入式IPV6產品的首席架構師。他擁有多項美國專利,並著有Real-TimeConceptsforEmbeddedSystems等暢銷書。他還是FreeBSD作業系統項目活躍的開發者。
TatuyaJinmei(神明達哉),東芝公司研究與開發中心的科學。KAME項目核心開發人員。2003年在日本慶應義塾大學獲得博士學位。
KeiichiShima(島慶一),日本InternetInitiative公司的資深研究人員。他的研究領域是IPv6和IPv6移動性。KAME項目核心開發人員,開發了移動IPv6/NEMO基本支持協定棧。現在正致力於BSD作業系統中新的移動棧(SHISA棧)的研究。

編輯推薦

“閱讀《IPv6詳解》是一種享受,讓我想起了RiehardStevens的《TCP/IP詳解》,《IPv6詳解》的技術深度完一可以與之媲美。”
——JimBound北美IPV6工作組主席
“在IPV6時代,《IPv6詳解》將取代RiehardStevens的《TCP/IP詳解》一書。我強烈推薦給所有程式設計師閱讀。”
——JunichiroHaginoEAME項目核心開發者

目錄

第1章緒論1
1.1引言1
1.2IPv6和KAME的簡史1
1.3KAME發行版概述5
1.3.1原始碼樹結構5
1.3.2構建過程6
1.4BSD網路實現概述8
1.5原始碼描述10
1.5.1排版約定10
1.5.2原始碼描述示例11
1.5.3預處理器變數12
1.5.4網路設備與體系結構假設12
1.6mbuf與IPv613
1.6.1常見的mbuf操縱宏和函式14
1.6.2mbuf標籤14
1.6.3IPv6的mbuf要求18
1.6.4診斷mbuf鏈20
第2章IPv6編址體系結構22
2.1引言22
2.2IPv6地址22
2.3IPv6地址的文本表示23
2.4地址範圍24
2.4.1範圍區域25
2.4.2區域索引27
2.4.3範圍受限地址的文本表示29
2.4.4單播站點本地地址的廢棄30
2.5IPv6地址格式31
2.5.1接口標識符的產生32
2.5.2有關地址格式的註解33
2.5.3多播地址格式33
2.6節點地址要求35
2.7IPv6地址空間管理35
2.8代碼介紹36
2.8.1IPv6地址結構: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.1ifaddr{}和in6_ifaddr{}結構50
2.10.2in6_ifreq{}和in6_aliasreq{}結構52
2.10.3多播地址結構53
2.11IPv6前綴結構56
2.12地址操縱程式概述57
2.13IPv6的接口初始化60
2.13.1in6_if_up()函式60
2.13.2in6_ifattach()函式61
2.13.3in6_ifattach_loopback{}函式64
2.13.4in6_ifattach_linklocal()函式65
2.13.5get_ifid()函式69
2.13.6get_hw_ifid()函式71
2.13.7get_rand_ifid()函式75
2.13.8in6if_do_dad()函式76
2.14IPv6接口地址配置77
2.14.1in6_control()函式77
2.14.2in6_update_ifa()函式83
2.14.3in6_joingroup()和in6_leavegroup()函式95
2.14.4in6_addmulti()和in6_delmulti()函式96
2.14.5in6_ifinit()函式98
2.14.6in6_ifaddloop()和in6_ifloop_request()函式100
2.15刪除IPv6地址102
2.15.1in6_purgeaddr()函式103
2.15.2in6_ifremloop()函式104
2.15.3in6_unlink_ifa()函式105
2.16用地址配置工具進行的操作106
第3章IPv6110
3.1引言110
3.2IPv6首部格式110
3.3IPv6擴展首部112
3.3.1擴展首部的順序113
3.3.2逐跳選項首部113
3.3.3目的選項首部114
3.3.4路由首部114
3.3.5片首部116
3.3.6IPv6選項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.3ip6protosw{}結構130
3.6mbuf中的IPv6分組地址信息132
3.6.1ip6_setdstifaddr()函式134
3.6.2ip6_getdstifaddr()函式134
3.6.3ip6_setpktaddrs()函式134
3.6.4ip6_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.2frag6_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.3ip6_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.2ICMPv6報文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.7ICMPv6報文處理規則253
4.3PMTU發現機制253
4.4節點信息查詢254
4.4.1節點信息報文的格式255
4.4.2NOOP查詢257
4.4.3支持的Qtype查詢257
4.4.4節點名查詢257
4.4.5節點地址查詢258
4.4.6IPv4地址查詢259
4.5代碼介紹260
4.5.1統計數據260
4.5.2ICMPv6首部262
4.6ICMPv6輸入處理263
4.6.1icmp6_input()函式263
4.6.2錯誤通知:icmp6_notify_error()函式272
4.7PMTU發現的實現280
4.8ICMPv6輸出處理283
4.8.1傳送錯誤:icmp6_error()函式284
4.8.2錯誤速率限制:icmp6_ratelimit()函式290
4.8.3icmp6_reflect()函式291
4.9節點信息查詢的實現297
4.9.1類型和變數297
4.9.2ping6命令:傳送查詢298
4.9.3ping6命令:接收應答303
4.9.4ping6命令:列印支持的Qtype309
4.9.5ping6命令:列印節點地址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.4MTU選項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.8DAD佇列條目:dadq{}結構372
5.13.9IPv6地址:in6_ifaddr{}結構372
5.13.10目的地快取372
5.13.11操作常量372
5.14初始化函式373
5.14.1nd6_init()函式373
5.14.2nd6_ifattach()函式374
5.15鄰居快取管理函式375
5.15.1nd6_rtrequest()函式375
5.15.2nd6_cache_lladdr()函式385
5.15.3nd6_lookup()函式395
5.15.4nd6_free()函式398
5.15.5nd6_timer函式401
5.16鄰居發現協定報文處理函式408
5.16.1nd6_ns_output()函式408
5.16.2nd6_ns_input()函式414
5.16.3nd6_na_input()函式422
5.16.4nd6_na_output()函式432
5.16.5nd6_rs_input()函式437
5.16.6nd6_ra_input()函式440
5.16.7icmp6_redirect_input()函式447
5.16.8icmp6_redirect_output()函式454
5.17鄰居發現協定報文選項處理函式461
5.17.1nd6_option_init()函式461
5.17.2nd6_option()函式462
5.17.3nd6_options()函式463
5.18默認路由器管理函式465
5.18.1defrouter_addreq()函式465
5.18.2defrouter_delreq()函式466
5.18.3defrouter_addifreq()函式467
5.18.4defrouter_delifreq()函式469
5.18.5defrouter_lookup()函式470
5.18.6defrouter_select()函式471
5.18.7defrtrlist_del()函式475
5.18.8defrtrlist_update()函式477
5.19前綴管理函式479
5.19.1nd6_prelist_add()函式479
5.19.2prelist_remove()函式481
5.19.3prelist_update()函式482
5.19.4find_pfxlist_reachable_router()函式491
5.19.5與在鏈條件有關的前綴和地址狀態491
5.19.6pfxlist_onlink_check()函式493
5.19.7nd6_prefix_onlink()函式497
5.19.8nd6_prefix_offlink()函式500
5.20無狀態地址自動配置函式503
5.20.1in6_ifadd()函式503
5.20.2in6_tmpifadd()函式506
5.20.3regen_tmpaddr()函式509
5.21重複地址檢測函式511
5.21.1nd6_dad_find()函式511
5.21.2nd6_dad_starttimer()函式512
5.21.3nd6_dad_stoptimer()函式512
5.21.4nd6_dad_start()函式512
5.21.5nd6_dad_stop()函式515
5.21.6nd6_dad_timer()函式516
5.21.7nd6_dad_duplicated()函式519
5.21.8nd6_dad_ns_output()函式520
5.21.9nd6_dad_ns_input()函式521
5.21.10nd6_dad_na_input()函式522
5.22其他函式523
5.22.1nd6_is_addr_neighbor()函式523
5.22.2nd6_output()函式525
5.22.3rt6_flush()函式531
5.22.4nd6_rtmsg()函式533
第6章傳輸層的實現534
6.1簡介534
6.2IPv6上的TCP和UDP534
6.3IPv6的偽首部535
6.4IPv4校驗和與IPv6校驗和的區別536
6.5IPv4映射的IPv6地址的用法536
6.6代碼介紹536
6.7對PCB和套接字的一般操作544
6.7.1IPv6PCB的分配:in_pcballoc()函式544
6.7.2綁定本地地址:in6_pcbbind()函式546
6.7.3固定遠程地址:in6_pcbconnect()函式554
6.7.4in6_pcbladdr()函式556
6.7.5搜尋PCB條目:in6_pcblookup_local()函式558
6.7.6搜尋IPv4映射的PCB:in_pcblookup_local()函式561
6.7.7搜尋PCB條目:in6_pcblookup_hash()函式563
6.7.8搜尋IPv4映射的PCB:in_pcblookup_hash()函式565
6.7.9分離一個IPv6PCB:in6_pcbdetach()函式567
6.7.10控制報文信令:in6_pcbnotify()函式569
6.7.11清空PCB快取路由:in6_rtchange()函式573
6.7.12獲取對等實體地址:in6_setpeeraddr()函式573
6.7.13獲取本地地址:in6_setsockaddr()函式575
6.8IPv6上的TCP576
6.8.1ip6protosw{}的IPv6上的TCP實例576
6.8.2TCP輸出577
6.8.3初始化首部:tcp_fillheaders()函式582
6.8.4TCP輸入:tcp6_input()和tcp_input()函式582
6.8.5TCP控制輸入:tcp6_ctlinput()函式587
6.8.6TCP用戶請求590
6.9IPv6上的UDP596
6.9.1ip6protosw{}的IPv6上的UDP實例596
6.9.2UDP輸出:udp6_output()函式597
6.9.3UDP輸入:udp6_input()函式602
6.9.4UDP控制輸入:udp6_ctlinput()函式609
6.9.5UDP用戶請求的處理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.4ICMPv6輸入: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
參考文獻797
索引801
……

相關詞條

熱門詞條

聯絡我們