端口如何与 IPv6一起工作?

传统的 IPv4虚线四边形符号用冒号将地址与端口分隔开来,就像这个例子中的网络服务器在环回界面上:

127.0.0.1:80

但使用 IPv6标记,地址本身可以包含冒号。例如,这是回送地址的简写形式:

::1

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

153066 次浏览

它们是一样的,不是吗?现在我对自己失去了信心,但我真的认为 IPv6只是一个地址的改变。TCP 和 UDP 仍然在 IPv4下处理。

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

编辑: 端口0是 TCP 中的一个保留端口,但是它确实存在。请参见: http://www.faqs.org/rfcs/RFC793.html

我很确定端口只在 tcp 和 udp 中有一部分。所以即使使用新的 IP 协议也是一样的

它们的工作原理和今天几乎一样,但是,请确保在您的 IP 周围包含 []

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

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

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

(摘自 剪辑 Peter Wone对原问题的回答。)

我认为最好的参考是 网址的文字 IPv6地址格式,其中定义了[]的用法。

此外,如果它是为编程和代码,特别是 Java,我建议这读取 Inet6Address 的类 Java/net/URL 定义,其中使用的 Inet4地址在 Inet6内涵和其他情况下详细介绍。对于我来说,IPv4映射的地址的形式: : ffff: w.x.y.z,对于 IPv6地址用来表示 IPv4地址也解决了我的问题。它允许本机程序在与 IPv4和 IPv6节点通信时使用相同的地址数据结构和相同的套接字。这是 Amazon 云 Linux 机器上的默认设置。