我有一个网络应用程序,我需要转换,以便它适用于ipv6网络。你能告诉我我需要做什么(替换socket API)吗?
还有一件事,我如何测试我的应用程序?
感谢。
答案 0 :(得分:3)
核心套接字系统调用是协议中立的。在适当的时候,您需要使用AF_INET6代替标准AF_INET地址系列,以及PF_INET6,sockaddr_in6和其他系列。
我建议通读“ipv6”手册页或“ipv6的套接字接口扩展”RFC:http://www.ietf.org/rfc/rfc3493.txt
类似且可能相关的问题:is ipv6 backward compatable with ipv4?
答案 1 :(得分:1)
3rd edition有很多例子和IPv4 / IPv6互操作性的整章。
答案 2 :(得分:0)
为了进行测试,您可以使用Microsoft Virtual PC(或类似软件)创建一堆虚拟机并在它们之间测试应用程序 - 您可以轻松地将它们放在他们只能看到对方的专用网络上。
答案 3 :(得分:0)
看看http://gsyc.escet.urjc.es/~eva/IPv6-web/ipv6.html - 它是一个相当全面的资源,并且对RFC有一些有用的参考。
对于测试注意事项,如果您的应用程序是双栈,请考虑以下故障情况:IPv6流量可能由于各种原因而被黑洞化,示例场景是使用6to4任播隧道但其流量来自/来自192.99.88.1的用户(任播6to4中继地址)被删除。尝试测试这种情况并确保应用程序优雅地退回而不会破坏用户体验,这将在以后节省一些支持呼叫。
(注意:我特别谈论黑洞问题,因为在路由问题等“正常”错误的情况下,错误通常会很快返回。所以你可以考虑在主机之间安装某种路由器,你可以配置为静默丢弃数据包)