端口如何与IPv6配合使用?

时间:2008-10-09 11:29:27

标签: tcp udp ipv6 ports

传统的IPv4点分四元组符号用冒号分隔端口地址,如环回接口上的Web服务器示例所示:

127.0.0.1:80

但使用IPv6表示法时,地址本身可以包含冒号。例如,这是环回地址的简写形式:

::1

端口(或其功能等价物)如何以IPv6地址/端口端点的文本表示形式表示?

7 个答案:

答案 0 :(得分:165)

他们的工作方式与今天几乎相同。但是,请确保在您的IP周围添加[]

例如:http://[1fff:0:a88:85a3::ac1f]:8001/index.html

维基百科有一篇关于IPv6的非常好的文章:http://en.wikipedia.org/wiki/IPv6#Addressing

答案 1 :(得分:27)

IPv6中使用的协议与IPv4中的协议相同。两个版本之间唯一改变的是寻址方案,DHCP [DHCPv6]和ICMP [ICMPv6]。所以基本上,TCP / UDP相关的任何东西,包括端口范围(0-65535)都保持不变。

编辑:端口0是TCP中的保留端口,但确实存在。见RFC793

答案 2 :(得分:5)

维基百科points out,IPv6地址的语法包括冒号,并且有一个防止固定长度解析的简短形式,因此您必须用[]分隔地址部分。这完全避免了奇怪的解析错误。

(摘自an edit Peter Wone对原始问题。)

答案 3 :(得分:4)

他们是一样的,不是吗?现在我对自己失去了信心,但我真的认为IPv6只是一种解决方案。 TCP和UDP仍然在IPv4下进行寻址。

答案 4 :(得分:4)

我很确定端口只有tcp和udp的一部分。即使您使用新的IP协议,它也完全相同

答案 5 :(得分:4)

我想说最好的参考是Format for Literal IPv6 Addresses in URL's,其中定义了[]的用法。

另外,如果是编程和代码,特别是Java,我会建议读取Class for Inet6Address java/net/URL definition,其中详细介绍了Inet6内容和其他情况下Inet4地址的使用情况。对于我的情况,IPv4映射地址的形式:: ffff:w.x.y.z,对于IPv6地址用于表示IPv4地址也解决了我的问题。它允许本机程序在与IPv4和IPv6节点通信时使用相同的地址数据结构和相同的套接字。亚马逊云Linux盒默认设置就是这种情况。

答案 6 :(得分:3)

我不确定你得到了什么。 TCP和UDP层结构相同。顾名思义,IPV6是关于IP层的增强而不是TCP或UDP层。