据我所知,每个进程都可以获取自己的IP地址,并保留大量IP。

缺点是什么?

从本质上讲,您的主机将成为路由器,每个进程都是主机(在当前系统中)。

评论

评论不作进一步讨论;此对话已移至聊天。

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

IPv6不像IPv4那样具有NAT标准(NAT打破了IP的端到端前提,而IPv6旨在恢复该前提)。有一个针对IPv6 NAT的实验性RFC,但它是网络层上的一对一NAT,而不是像IPv4 NAPT这样的协议也可以转换端口地址,实际上,实验性IPv6 NAT RFC明确禁止。

如果考虑各种传输协议,则TCP和UDP使用端口,这些端口实际上是这些传输协议的地址。其他传输协议可能使用其他寻址,而有些则不使用地址。 IPv6是无连接的,就像UDP一样,因此它可以与UDP一起使用,但是TCP是面向连接的,并且它执行许多本应由应用程序执行的工作。

有要求适用于无连接和面向连接的传输协议。 IPv4的前身实际上具有与IP和TCP等效的单一协议,但是由于某些传输协议需要无连接,因此有必要将它们分开。

#2 楼

一个缺点是高层将需要知道IP地址,这违反了分层原则。如果切换到IPv4,会发生什么?还是其他?

上层如何告诉网络层它应该开始响应IP地址?假设一个新的应用程序启动了。网络层如何知道要响应的新地址?

IPv6从理论上讲可以消除NAT,但是仍然有组织为什么要隐藏其内部IP地址的原因。

评论


评论不作进一步讨论;此对话已移至聊天。

–罗恩·莫潘♦
19年5月5日在1:44

#3 楼

IPv6将不再需要使用NAT作为共享公共IP地址的方法,但是出于安全原因,NAT仍可能会有一些用途。

理论上可以删除端口,但这将是一个巨大的事业。即使您为端口号保留了IP地址的最后16位,为TCP / UDP标志保留了1位,您也需要对所有将pactet从第3层解压缩到第4层的软件进行返工,才能使用IP的位地址号和协议的地址,而不是数据包中的数据。

如果您想要摆脱掉或端口号,那么只需将端口号放在IP地址中,这就是“简单”的解决方案总共,您将需要更改使用端口的所有软件和库,例如服务器,客户端,防火墙等。从根本上讲是不可能的,每个显示“端口X处开放服务器”的软件都可以正常工作如果完全删除端口,则从IPv4到IPv6的连接会立即中断。

只保留端口会更加容易。

评论


评论不作进一步讨论;此对话已移至聊天。

–罗恩·莫潘♦
19年5月29日在22:03

#4 楼

不是IPv6。这样的系统当然是可行的,但是它将是IP协议的变体。如今,IP包含两部分:主机标识符和服务标识符。

在您的方案中,它实际上是一个服务描述符。这将需要对DNS进行更改(例如,如何区分example.com的SMTP服务器和example.com的www服务器?)

我看不出它比具有host:service描述符的当今系统。它不会实现今天没有的任何事情。

评论


评论不作进一步讨论;此对话已移至聊天。

–罗恩·莫潘♦
19年5月30日,0:46

#5 楼

IP地址和端口虽然通常一起看到,但它们执行非常不同的任务。 IP地址专门用于将流量路由到您的计算机,端口号供应用程序使用。

一个很好的类比是将邮件发送到公寓楼。建筑物的地址将等效于IP地址,而单元号将类似于端口号。以此类推,我们假设该建筑物的地址为Home Home 127号。假设您想给亨利·彼得森(Henry TT Peterson)发送一封信,那么您向该建筑物发送了一封信,他没有收到,因为它需要进一步指示他的公寓,位于80号公寓。

从理论上讲,IPv6地址可以代替IPv4地址和端口号,但是这违反了建立网络的先例,并且存在一些主要缺点:


违反了创建IPv6的目的,以缓解(对世界IP地址用尽的担忧)
路由器和交换机内部的路由表将成倍地增大,而没有任何益处(许多地址将路由到同一台物理计算机上。
每台计算机上的每个应用程序都需要一个唯一的地址,尽管IPv6提供了很多很多次的地址(2 ^ 128与2 ^ 32),但我们很快就会用完,然后需要先创建IPv8,然后创建IPv10,然后创建IPv12,弯曲,这几乎不是一个有趣的时光。

就NAT而言,这是出于两个原因而创建的,人们已经担心世界快要耗尽了(或会耗尽)公共IP地址之外),通过允许组织甚至家庭网络在内部使用大量IP地址,大大减轻了这种负担,并允许重要的机器从世界上“隐藏”(例如您的数据库或CEO的笔记本电脑上的敏感信息)

我希望这个解释会有所帮助;您会看到,NAT和端口号都是一件好事,我们不想用IPv6替换它们,因为如果我们想要实际扩展它们,或者用更好的东西替换它们,那将是一个巨大的倒退。 br />

评论


1.“打败了IPv6的目的”-不,您的计算机可能已经有多个IPv6地址,没有任何问题。至少2 ^ 64个地址被保留用于典型的家庭网络。 “路由表将变得更大”-不,它们不会,整个网络只有一个路由表条目。 (而且,当您从ISP外部查看时,整个ISP只有一个条目。)您确实低估了2 ^ 128的大小。假设您将最后16位当作端口号(这可能不是这样),您仍然有2 ^ 112个计算机地址。

–user253751
19年5月28日在23:54

(实际上,大多数计算机也不使用全部65536个端口。我估计它少于100 99%的时间)

–user253751
19年5月28日在23:56



@immibis涵盖了我在阅读帖子时在想的所有内容

– Tobiq
19年5月29日在10:44

#6 楼

正如其他人所说的那样,即使端口号最终被“编码”到服务的IP地址中也是必需的。

某些应用程序需要多个端口号。例如,大多数Web服务器需要端口80和443(可能还有用于Websocket或其他端口的端口)。这样的系统将需要三个具有编码端口的IP地址。尽管我们有很多IP,但(目前)这意味着需要系统级配置才能支持这三个端口号。使用单独的端口号意味着应用程序可以启动并使用端口,而无需系统管理员先执行一些配置工作。正如其他人所说的那样-使用端口号更容易。

对于NAT,是的,IPv6应该在几乎所有情况下都消除了对NAT的需要。尽管仍然存在某些情况,所以它可能不会完全消失,但是广泛使用可能会大大减少。

评论


评论不作进一步讨论;此对话已移至聊天。

–罗恩·莫潘♦
19年5月30日,0:46