IPv6详解:高级协议实现

版权信息书 名: IPv6详解:高级协议实现
作者:(美国)QingLi (日本)KeiichiShima
出版社:人民邮电出版社
出版时间: 2009
ISBN: 9787115195197
开本: 16
定价: 128.00 元
内容简介《IPv6详解:高级协议实现》全面讲解IPv6及相关协议实现的事实标准KAME,揭示了KAMEIPv6协议栈的所有细节,对每行代码到底做了什么,以及为什么要这样设计都进行了解释。全书共分6章,分别介绍IPv6单播路由选择协议、IPv6多播技术、IPv6的DNSDHCPv6、移动IPv6、IPv6与IP安全。书中每章都包含两个主要部分,第一部分是相关规范的综述,第二部分则逐行代码地描述和分析实际的实现。
《IPv6详解:高级协议实现》是IPv6的权威参考书,适合网络设计和开发人员阅读。此外,《IPv6详解:高级协议实现》还适合作为高校相关专业网络课程的教学参考书。
编辑推荐IPv6的时代即将到来!
《IPv6详解:高级协议实现》由开源的IPv6标准参考实现KAME的核心开发人员撰写,沿袭了被奉为经典的RichardSteverls的《TCP/IP详解》的写作方式和风格,覆盖了IPv6技术的全部内容,是毋庸置疑的IPv6权威参考书。书中详尽剖析了IPv6协议及其实现的技术细节,逐行诠释了KAME每一行代码的作用,并结合阐述了弥足珍贵的设计体会,对网络研究、设计和开发人员都有极高的参考价值。
全书分为两卷,第1卷介绍核心协议的实现。第2卷主要介绍高级协议的实现。《IPv6详解:高级协议实现》适合网络设计和开发人员阅读,对于下一代网络产品研发人员尤其具有参考价值。Qin9Li8IueCoat系统公司资深架构师,负责领导下一代支持IPv6的安全代理应用系统的设计和开发工作:他曾在风河系统公司工作8年,是风河嵌入式IPv6产品的首席架构师:他拥有多项美国专利。并著有Real-TimeConceptsforEmbeddedSystems等畅销书。他还是FreeBSD操作系统项目活跃的开发者:TatuyaJinmei(神明达哉)东芝公司研究与开发中心的科学家。KAME项目核心开发人员。2003年在日本庆应义塾大学获得博士学位,KeiichiShima(岛庆一)日本Internellnitiative公司的资深研究人员。他的研究领域是IPv6和IPv6移动性。KAME项目核心开发人员,开发了移动IPv6/NEMO基本支持协议栈:现在正致力于BSD操作系统中新的移动栈(SHISA栈)的研究。
目录1IPv6UnicastRoutingProtocols1
1.1Introduction1
1.2OverviewofRoutingConcepts2
1.2OverviewofVector-basedAlgorithmsandLink-StateAlgorithm5
1.3.1Distance-VectorAlgorithm5
1.3.2Path-VectorAlgorithm7
1.3.3Link-StateAlgorithm7
1.4IntroductiontoRIPng10
1.4.1RIPngMessageFormats11
1.4.2RIPngOperation14
1.4.3ProblemswithRIPng15
1.5IntroductiontoBGP4+17
1.5.1BGP4+Operation19
1.5.2BGP4+Messages21
1.5.3PathAttributes27
1.5.4IPv6ExtensionsforBGP4+29
1.5.5BGP4+RouteSelectionProcess31
1.6IntroductiontoOSPFv233
1.6.1RouterAdjacencyandLSDBSynchronization33
1.6.2AreaTypesandRouterClassification35
1.6.3LinkStateAdvertisementandLSATypes35
1.6.4LSAFormats37
1.6.5OSPFTreeConstructionandRouteComputation46
1.7CodeIntroduction49
1.8IPv6RoutingTableintheBSDKernel50
1.8.1ScopeZoneRepresentationintheRoutingTable53
1.9RoutingAPI55
1.9.1RoutingSockets55
1.9.2DumpingRoutingTableviasysctl()62
1.10Overviewofroute6dDaemon65
1.11CommonDataStructures,RoutinesandGlobalVariables65
1.11.1StructuresforRIPngMessages65
1.11.2route6d’sRoutingTable67
1.11.3StructuresforLocalInterfaces68
1.11.4route6dRouteFilterEntry70
1.11.5SubroutinesandGlobalVariables72
1.12InterfaceConfiguration74
1.12.1ifconfig()Function74
1.12.2ifconfig1()Function77
1.12RIPngProtocolOperation81
1.13.1sendrequest()Function82
1.13.2riprecv()Function83
1.13.3riprequest()Function96
1.13.4ripsend()Function97
1.13.5ripalarm()Function104
1.14RoutingOperationUsingroute6d105
1.14.1ALeafNetwork105
1.14.2ASimpleLoopNetwork108
1.14.3AHierarchicalNetwork111
2IPv6Multicasting113
2.1Introduction113
2.2IPv6MulticastAddresstoLayer-2MulticastAddressMapping114
2.2MulticastListenerDiscoveryProtocol114
2.3.1MLDProtocolMessageFormat115
2.3.2RouterAlertOption116
2.3.3SourceAddressSelection116
2.3.4DestinationAddressSelection116
2.3.5MLDQuerier116
2.3.6OperationalVariables117
2.3.7MLDJoinProcess118
2.3.8MLDLeaveProcess119
2.4MulticastRoutingFundamentals120
2.4.1ReversePathForwarding120
2.4.2MulticastRoutingModels121
2.4.3ProtocolIndependentMulticast125
2.4.4IPv6SpecificIssuesaboutPIM128
2.4.5IPv6MulticastFuture—MLDv2andSSM130
2.5CodeIntroduction131
2.6MLDImplementation133
2.6.1TypesandStructures133
2.6.2mld6_init()Function136
2.6.3JoiningaGroup:mld6_start_listening()Function137
2.6.4LeavingaGroup:mld6_stop_listening()Function139
2.6.5InputProcessing:mld6_input()Function140
2.6.6mld6_fasttimeo()Function144
2.6.7mld6_sendpkt()Function146
2.6.8mld_allocbuf()Function149
2.7IPv6MulticastInterface:mif6{}Structure150
2.8IPv6MulticastRoutingAPI152
2.8.1ip6_mrouter_set()Function152
2.8.2ip6_mrouter_init()Function155
2.8.3ip6_mrouter_get()Function156
2.8.4set_pim6()Function157
2.8.5add_m6if()Function157
2.8.6del_m6if()Function160
2.8.7ip6_mrouter_done()Function161
2.8.8mrt6_ioctl()Function164
2.8.9get_mif6_cnt()Function164
2.9IPv6MulticastForwardingCache165
2.9.1add_m6fc()Function166
2.9.2del_m6fc()Function171
2.9.3expire_upcalls()Function172
2.9.4get_sg_cnt()Function173
2.10IPv6MulticastForwarding174
2.10.1ip6_mforward()Function175
2.10.2ip6_mdq()Function183
2.10.3phyint_send()Function189
2.10.4register_send()Function192
2.10.5socket_send()Function194
2.10.6pim6_input()Function195
2.11IPv6MulticastOperation202
2.11.1ifmcstatCommand202
2.11.2EnableIPv6MulticastRouting203
2.11.3pim6ddandpim6sdRoutingDaemons203
2.11.4pim6statOutput203
2.11.5netstatCommand206
3DNSforIPv6207
3.1Introduction207
3.2BasicsofDNSDefinitionsandProtocols208
3.2.1DNS,Domains,andZones208
3.2.2ResourceRecordsandZoneFiles210
3.2.3DNSTransactionandPacketFormat212
3.2.4NameResolutionandCaching214
3.2IPv6-RelatedTopicsaboutDNS217
3.3.1AAAAResourceRecord217
3.3.2DNSReverseTreeforIPv6217
3.3.3IPv6TransportforDNS219
3.3.4PacketSizeIssueandEDNS0219
3.3.5MisbehavingDNSServersagainstAAAA222
3.3.6ObsoleteStandards225
3.4ImplementationofIPv6DNSResolver226
3.4.1_dns_getaddrinfo()Function229
3.4.2getanswer()Function235
3.4.3res_queryN()Function243
3.4.4ResolverStateStructure245
3.4.5res_init()Function248
3.4.6res_send()Function250
3.4.7IPv6ReverseLookup:_dns_ghbyaddr()Function260
3.5IPv6DNSOperationwithBIND264
3.5.1OverviewofBIND9265
3.5.2GettingBIND9266
3.5.3BuildingandInstallingBIND9266
3.5.4ConfiguringBIND9forIPv6Operation267
3.5.5Implementation-SpecificNotes274
3.5.6CompleteConfigurationExample282
3.5.7digandhostUtilities286
4DHCPv6289
4.1Introduction289
4.2OverviewoftheDHCPv6Protocol290
4.2.1CasesforDHCPv6290
4.2.2DefinitionsaboutDHCPv6293
4.2.3DHCPv6MessageExchanges297
4.2.4SummaryofDHCPv6Options310
4.2.5InteractionwithNeighborDiscovery319
4.2.6ComparisontoDHCPv4319
4.2CodeIntroduction320
4.3.1CommonDataStructuresandRoutines320
4.4ClientImplementation326
4.4.1Client-SpecificDataStructures328
4.4.2client6_mainloop()Function332
4.4.3client6_timo()Function333
4.4.4client6_send()Function338
4.4.5client6_recv()Function344
4.4.6client6_recvadvert()Function346
4.4.7client6_recvreply()Function352
4.4.8ProcessingIdentityAssociation357
4.4.9update_ia()Function359
4.4.10update_address()Function365
4.4.11reestablish_ia()Function369
4.4.12ia_timo()Function374
4.4.12ReleaseResources379
4.5ServerImplementation382
4.5.1server6_mainloop()Function386
4.5.2server6_recv()Function387
4.5.3process_relayforw()Function391
4.5.4react_solicit()Function396
4.5.5react_request()Function401
4.5.6make_ia()Function406
4.5.7react_renew()Function417
4.5.8react_rebind()Function419
4.5.9binding_time()Function426
4.5.10react_release()Function428
4.5.11react_informreq()Function432
4.5.12server6_send()Function434
4.6RelayAgentImplementation439
4.6.1relay6_loop()Function439
4.6.2relay6_recv()Function441
4.6.3relay_to_server()Function444
4.6.4relay_to_client()Function450
4.7ImplementationofDHCPv6Authentication454
4.7.1DataStructuresRelatedtoDHCPv6Authentication454
4.7.2set_auth()Function455
4.7.2process_auth()Function(ClientSide)458
4.7.4process_auth()Function(ServerSide)462
4.8DHCPv6Operation468
4.8.1BuildingtheDHCPv6Implementation468
4.8.2ConfiguringaDUID469
4.8.3ConfiguringtheDHCPv6Server469
4.8.4ConfiguringtheDHCPv6Client470
4.8.5ConfiguringtheDHCPv6RelayAgent474
4.8.6ConfiguringDHCPv6Authentication475
4.8.7ConfiguringControlCommandKeys476
4.8.8OperationofDHCPv6Services476
5MobileIPv6485
5.1Introduction485
5.2MobileIPv6Overview486
5.2.1TypesofNodes487
5.2.2BasicOperationofMobileIPv6488
5.2HeaderExtension491
5.3.1AlignmentRequirements493
5.3.2HomeAddressOption493
5.3.3Type2RoutingHeader494
5.3.4MobilityHeader495
5.3.5MobilityOptions503
5.3.6NeighborDiscoveryMessages506
5.3.7ICMPv6Messages509
5.4ProcedureofMobileIPv6512
5.4.1ProtocolConstantsandVariables512
5.4.2HomeRegistration512
5.4.3Bi-directionalTunneling516
5.4.4InterceptingPacketsforaMobileNode518
5.4.5ReturningHome519
5.5RouteOptimization521
5.5.1ReturnRoutability522
5.5.2SendingInitialMessages522
5.5.3RespondingtoInitialMessages523
5.5.4ComputingaSharedSecret525
5.5.5VerifyingMessage526
5.5.6SecurityConsiderations527
5.5.7De-RegisterBindingforCorrespondentNodes528
5.5.8BackwardCompatibility528
5.6MovementDetection529
5.7DynamicHomeAgentAddressDiscovery530
5.8MobilePrefixSolicitation/Advertisement533
5.9RelationshipwithIPsec534
5.10CodeIntroduction537
5.10.1Statistics537
5.11MobileIPv6RelatedStructures539
5.11.1Files539
5.11.2MobilityHeaderMessage—ip6_mh{}Structure539
5.11.3BindingRefreshRequestMessage—ip6_mh_binding_request{}Structure541
5.11.4HomeTestInitMessage—ip6_mh_home_test_init{}Structure541
5.11.5Care-ofTestInitMessage—ip6_mh_careof_test_init{}Structure542
5.11.6HomeTestMessage—ip6_mh_home_test{}Structure543
5.11.7Care-ofTestMessage—ip6_mh_careof_test{}Structure543
5.11.8BindingUpdateMessage—ip6_mh_binding_update{}Structure544
5.11.9BindingAcknowledgmentMessage—ip6_mh_binding_ack{}Structure545
5.11.10BindingErrorMessage—ip6_mh_binding_error{}Structure546
5.11.11MobilityOptionMessageStructures548
5.11.12MobilityOptionMessage—ip6_mh_opt{}Structure548
5.11.12BindingRefreshAdviceOption—ip6_mh_opt_refresh_advice{}Structure549
5.11.14AlternateCare-ofAddressOption—ip6_mh_opt_altcoa{}Structure549
5.11.15NonceIndexOption—ip6_mh_opt_nonce_index{}Structure550
5.11.16AuthenticationDataOption—ip6_mh_opt_auth_data{}Structure550
5.11.17TheInternalMobilityOption—mip6_mobility_options{}Structure551
5.11.18HomeAddressOption—ip6_opt_home_address{}Structure551
5.11.19Type2RoutingHeader—ip6_rthdr2{}Structure552
5.11.20TheModifiedRouterAdvertisementMessage—nd_router_advert{}Structure552
5.11.21TheModifiedPrefixInformationOption—nd_opt_prefix_info{}Structure553
5.11.22AdvertisementIntervalOption—nd_opt_adv_interval{}Structure554
5.11.22HomeAgentInformationOption—nd_opt_homeagent_info{}Structure554
5.11.24DynamicHomeAgentAddressDiscoveryRequestMessage—mip6_dhaad_req{}Structure555
5.11.25DynamicHomeAgentAddressDiscoveryReplyMessage—mip6_dhaad_rep{}Structure555
5.11.26MobilePrefixSolicitationMessage—mip6_prefix_solicit{}Structure556
5.11.27MobilePrefixAdvertisementMessage—mip6_prefix_advert{}Structure556
5.11.28BindingCacheEntry—mip6_bc{}Structure557
5.11.29BindingUpdateListEntry—mip6_bu{}Structure559
5.11.30HomeAgentEntry—mip6_ha{}structure561
5.11.31PrefixEntry—mip6_prefix{}Structure562
5.11.32HomeVirtualInterface—hif_softc{}Structure563
5.12MacroandTypeDefinitions567
5.12GlobalVariables570
5.14UtilityFunctions570
5.14.1Files570
5.14.2CreationofIPv6Header570
5.14.3ChecksumComputation572
5.15CommonMobilityHeaderProcessing575
5.15.1Files575
5.15.2MobilityHeaderInput575
5.15.3GeneratingBindingErrorMessages581
5.15.4RateLimitationofBindingErrorMessages582
5.15.5CreationofBindingErrorMessage583
5.15.6MobilityHeaderMessageDeliverytoRawSockets585
5.16HomeAgentandCorrespondentNode588
5.16.1Files589
5.16.2BindingUpdateMessageInput589
5.16.3BindingCacheEntryManagement598
5.16.4MobilityOptionsProcessing606
5.16.5ValidationofBindingUpdateMessageforCorrespondentNode608
5.16.6KbmandAuthorizationDataComputation610
5.16.7ManagingBindingCacheEntryasCorrespondentNode615
5.16.8SendingBindingRefreshRequestMessage618
5.16.9HomeRegistrationProcessing622
5.16.10TheDADProcedure628
5.16.11ProxyNeighborDiscoveryControl634
5.16.12HomeDe-RegistrationProcedure639
5.16.13SendingaBindingAcknowledgmentMessage642
5.16.14NonceandNodekeyManagement649
5.16.15ReceivingaHomeAddressOption653
5.16.16SendingPacketstoMobileNodesviaTunnel660
5.16.17RecoveryofTemporarilyDisabledProxyEntry664
5.16.18ReceivingICMPv6ErrorMessages666
5.16.19HomeAgentListManagement670
5.16.20PrefixListManagement684
5.16.21SendingaMobilePrefixAdvertisementMessage684
5.16.22ConstructingthePayload687
5.17MobileNode689
5.17.1Files689
5.17.2BindingUpdateListEntryManagement689
5.17.3MovementDetection699
5.17.4ConfiguringHomeAddresses711
5.17.5SendingaBindingUpdateMessage721
5.17.6ReceivingaBindingAcknowledgmentMessage737
5.17.7ReceivingaType2RoutingHeader750
5.17.8ReceivingaBindingRefreshRequestMessage754
5.17.9ReceivingaBindingErrorMessage755
5.17.10SourceAddressSelection758
5.17.11HomeAgentListManagement763
5.17.12PrefixInformationManagement772
5.17.13ReceivingPrefixInformationbyRouterAdvertisementMessages784
5.17.14SendingaMobilePrefixSolicitationMessage793
5.17.15ReceivingaMobilePrefixAdvertisementMessage796
5.17.16SendingaDynamicHomeAgentAddressDiscoveryRequestMessage804
5.17.17ReceivingaDynamicHomeAgentAddressDiscoveryReplyMessage808
5.17.18ReceivingICMPv6ErrorMessages813
5.17.19StateMachine815
5.17.20PrimaryStateMachine817
5.17.21SecondaryStateMachine837
5.17.22VirtualHomeInterface844
5.17.23ReturnRoutabilityandRouteOptimization857
5.17.24RouteOptimizedCommunication874
5.17.25TunnelControl884
5.17.26ReceivingPacketsfromaTunnel887
5.17.27I/OControl889
5.18MobileIPv6Operation892
5.18.1RebuildingaKernelwithMobileIPv6Extension892
5.18.2RebuildingUserSpacePrograms893
5.18.3IPsecSignalProtection894
5.18.4ConfiguringNode897
5.18.5ViewingStatusInformation899
5.18.6ViewingStatistics899
5.19Appendix901
5.19.1TheManualPageofmip6control901
6IPv6andIPSecurity903
6.1Introduction903
6.2AuthenticationHeader904
6.3EncapsulatingSecurityPayload906
6.4TransportModeandTunnelMode908
6.5SecurityAssociationDatabase909
6.5.1SecurityPolicyDatabase910
6.5.2SecurityAssociationDatabase911
6.5.3SADandSPDExample912
6.6IPsecTrafficProcessing913
6.7SPDandSADManagement914
6.7.1ManualKeyingandAutomaticKeying915
6.8ManualConfiguration916
6.8.1ConfigurationFileFormat917
6.8.2ExamplesofManipulatingSPEntries922
6.8.3ExamplesofManipulatingSAEntries924
6.9InternetSecurityAssociationandKeyManagementProtocol(ISAKMP)Overview925
6.9.1ISAKMPExchanges927
6.9.2DomainofInterpretation929
6.9.3InternetKeyExchangeProtocol930
6.10RacoonOperation931
6.10.1ConfiguringRacoon931
6.10.2ConfigurationFileFormat932
6.11Scenarios937
6.11.1CreatingaVPNbetween3Networks938
6.11.2CreatingStarTopologyVPN942
6.11.3UsingTransportModeIPSecurity945
6.11.4ConnectingtotheServerfromPublicAccessPoints949
References953
Index961
……