我在Java中制作了一个应用,其中客户端通过回送地址127.0.0.1将ip数据包发送到服务器。一个非常简单的应用程序,用于测试事物的工作方式。最初,我认为如果创建多个客户端会话,则会创建新的loppback主机。但是相反,创建的新套接字是127.0.0.1:portnumber。但是接下来是我的问题,因为回送似乎有8的前缀,在什么情况下使用了几个回送主机,即127.0.0.1、127.0.0.2,.. 127.255.255.255?

#1 楼

您可以根据需要使用从127.0.0.1到127.255.255.254的所有回送地址。根据RFC 3330,它们都“循环回到主机内部”。某些操作系统对开箱即用的所有回送地址进行响应,在其他操作系统上,您必须在回送接口上显式定义其他地址。

对于大多数测试而言,127.0.0.1/32足够了,但有时需要多个IP可能有用或必要。示例包括:


使用基于IP的虚拟主机测试Web服务器,为不同IP上的不同网站提供服务。
在某些邮件系统上,邮件传递多个驻留在同一IP上的MTA系统。为了清楚地区分它们(例如,在邮件标题中),它们都可以在不同的本地IP地址而不是不同的TCP端口上运行。

所以多个地址可能有用,但是决定分配超过16个地址显然,其中有数百万是在没有人担心地址短缺的时候使用的。

请注意,IPv6只有一个环回地址(:: 1/128)。

评论


IPv6仅具有一个环回地址是一种错误,因为IP 4地址可以映射到IP 6地址。例如,:: ffff:127.0.0.2。我不完全了解4到6映射的详细信息。

– Molossus Spondee
15年9月30日在18:39