传统的IPv4点分四元组符号用冒号分隔地址和端口,如环回接口上的Web服务器示例:
127.0.0.1:80
但是使用IPv6表示法,地址本身可以包含冒号.例如,这是环回地址的简写形式:
::1
端口(或其功能等价物)如何以IPv6地址/端口端点的文本表示形式表示?
它们的工作方式与今天几乎相同.但是,请确保包含[]
您的IP.
例如 : http://[1fff:0:a88:85a3::ac1f]:8001/index.html
维基百科有一篇关于IPv6的非常好的文章:http://en.wikipedia.org/wiki/IPv6#Addressing
IPv6中使用的协议与IPv4中的协议相同.两个版本之间唯一的变化是寻址方案,DHCP [DHCPv6]和ICMP [ICMPv6].所以基本上,TCP/UDP相关的任何东西,包括端口范围(0-65535)都保持不变.
编辑:端口0是TCP中的保留端口,但它确实存在.请参阅RFC793
他们是一样的,不是吗?现在,我对自己失去了信心,但我真的认为IPv6只是一个应对变化的方法。TCP和UDP仍在IPv4下被寻址。
我可以肯定,端口仅在tcp和udp中起作用。因此,即使您使用新的IP协议也是如此
维基百科指出,IPv6地址的语法包括冒号,并且有一个防止固定长度解析的简短形式,因此您必须用[]分隔地址部分.这完全避免了奇怪的解析错误.
(摘自Peter Wone对原始问题的编辑 .)
我会说最好的参考是URL的文字IPv6地址格式,其中定义了[] 的用法。
另外,如果是用于编程和代码(尤其是Java),我建议阅读“ Inet6Address Java / net / URL定义的类”,其中详细介绍了Inet6含义中Inet4地址的用法以及其他情况。就我而言,IPv4映射的地址:: ffff:wxyz的形式,用于将IPv6地址表示为IPv4地址,也解决了我的问题。与IPv4和IPv6节点通信时,它允许本机程序使用相同的地址数据结构和相同的套接字。在Amazon cloud Linux的默认设置中就是这种情况。