2008-10-09 51 views
102

常规IPv4点四符号从与结肠的端口的地址分开,如在回送接口上一个网络服务器的该实施例中:端口如何与IPv6协同工作?

127.0.0.1:80 

但与IPv6表示法本身可以包含冒号地址。例如,这是在回送地址的缩写形式:

::1 

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

回答

3

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

+2

这不仅仅是一个地址变更。它应该带来一些很酷的功能(例如全局多播)。 但是,它对上层是透明的。 – 2009-01-18 05:34:50

+4

这只是一个地址变更。你在谈论的是寻址:) 但它关注/混淆人的原因是,网络设计将“寻址”视为地址,“服务”视为端口号。但是如果没有两者,你不能在TCP或UDP上做任何事情,所以大多数人都试图让套接字级别的地址工作,并且不明白为什么人们不断补足或改变分隔符: 空格,然后点,然后冒号,然后英镑的迹象? 所以,是的,我可以看到IPv6让人担心。 – benc 2009-07-26 20:18:06

21

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

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

2

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

+1

DCCP和SCTP也有端口,但由于附加的关联标识符,SCTP中的端口稍有不同。 – 2009-11-21 23:10:37

3

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

3

Wikipeida points out IPv6地址的语法包含冒号,并且具有防止固定长度解析的短格式,因此您必须用[]分隔地址部分。这完全解释了奇怪的解析错误。

(从an editPeter Wone到原来的问题所采取。)

2

我认为最好的参考是Format for Literal IPv6 Addresses in URL's其中[]使用被定义。另外,如果是编程和代码,特别是Java,我会建议这读取Class for Inet6Addressjava/net/URL definition其中Inet4地址在Inet6内涵和其他情况下的使用详细介绍。就我而言,IPv4映射地址的形式:: ffff:w.x.y.z,对于IPv6地址来说,用来表示IPv4地址也解决了我的问题。它允许本地程序在与IPv4和IPv6节点通信时使用相同的地址数据结构和相同的套接字。亚马逊云Linux框默认设置就是这种情况。