端口如何与IPv6一起使用?


143

常规的IPv4点分四点符号用冒号分隔地址和端口,如回送接口上的Web服务器示例所示:

127.0.0.1:80

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

::1

如何用IPv6地址/端口端点的文本表示形式来表示端口(或功能等效的端口)?

Answers:



33

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

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


6

他们是一样的,不是吗?现在,我对自己失去了信心,但我真的认为IPv6只是一个应对变化的方法。TCP和UDP仍在IPv4下被寻址。


3
这不仅仅是地址更改。它应该带来一些很酷的功能(例如全局多播)。但是是的,它对上层是透明的。
塔尔内·卡尔曼

4
这只是一个地址更改。您正在谈论的是寻址:)但是,它使人们感到困扰/困惑的原因是,网络设计将“寻址”视为地址,将“服务”视为端口号。但是,如果您不能同时使用TCP或UDP做任何事情,那么大多数人都在尝试使套接字级地址正常工作,并且无法理解为什么人们继续组成或更改定界符:空格,点,然后冒号,然后磅迹象?所以,是的,我可以看到IPv6使人们感到担忧。
09年

6

我可以肯定,端口仅在tcp和udp中起作用。因此,即使您使用新的IP协议也是如此


1
DCCP和SCTP也具有端口,但是SCTP中的端口由于附加的关联标识符而略有不同。
james woodyatt 09年

6

Wikipedia 指出,IPv6地址的语法包括冒号,并且具有防止固定长度解析的简短形式,因此必须用[]分隔地址部分。这完全避免了奇怪的解析错误。

(摘自Peter Wone对原始问题的编辑 。)


5

我会说最好的参考是URL的字面IPv6地址格式,其中定义了[] 用法。

另外,如果它是用于编程和代码(尤其是Java)的,我建议阅读“ Inet6Address Java / net / URL定义的类”,其中详细介绍了Inet6含义中Inet4地址的使用情况和其他情况。就我而言,IPv4映射的地址:: ffff:wxyz的形式,用于将IPv6地址表示为IPv4地址,也解决了我的问题。与IPv4和IPv6节点通信时,它允许本机程序使用相同的地址数据结构和相同的套接字。在Amazon cloud Linux的默认设置中就是这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.