由于IPv4地址已经提供了网络和主机的信息,为什么我们仍然需要子网掩码?
第一个八位位组已经指定了网络类别(1-127:A,128-191:B,192-223:C等)。A,B或C表示网络的八位位组数目(分别为255.0.0.0、255.255.0.0、255.255.255.0),这会自动告诉您每个网络类别允许多少个主机。
IP提供子网掩码具有的所有信息,以及更多信息。为什么首先需要子网掩码?如果子网包含的信息不完全是IP内信息的子集,那么它还包含什么或子网还做什么,这要求我们独立指定?
由于IPv4地址已经提供了网络和主机的信息,为什么我们仍然需要子网掩码?
第一个八位位组已经指定了网络类别(1-127:A,128-191:B,192-223:C等)。A,B或C表示网络的八位位组数目(分别为255.0.0.0、255.255.0.0、255.255.255.0),这会自动告诉您每个网络类别允许多少个主机。
IP提供子网掩码具有的所有信息,以及更多信息。为什么首先需要子网掩码?如果子网包含的信息不完全是IP内信息的子集,那么它还包含什么或子网还做什么,这要求我们独立指定?
Answers:
我们需要IPv4地址的子网掩码,因为该地址没有提供有关网络大小的任何信息。类的大小不是网络的大小。在实际网络中,所有IPv4网络都被分解为小于类大小的子网。
例如,您可以将C类网络200.200.200.0/255.255.255.0分解为两个较小的网络(可能在单独的位置)200.200.200.0/255.255.255.128和200.200.200.128/255.255.255.128(假设它们都不需要超过126个主机)。实际上,大多数公司只为需要在公共Internet上的服务器获得足够的IPv4地址。我亲自看到设置有32、16和8个地址网络(分别是255.255.255.224、255.255.255.240和255.255.255.248的掩码)
仅以类大小为单位的IP网络在限制可以允许的网络数量方面过于严格-127个A类网络占据了一半的空间。更不用说拥有240亿个节点的网络是完全无法管理的,而是在1993 年引入了无类别域间路由(CIDR)来允许网络分离。
同样要明确的是,子网掩码的目的是确定哪些主机位于本地网络上,哪些位于网络外部。主机可以直接与同一网络上的主机对话,但是它们需要与路由器进行通信才能与外部网络上的主机对话。
/27
是子网掩码,只是用不同的符号表示。
第一个八位位组已经指定了网络类别(1-127:A,128-191:B,192-223:C等)。A,B或C表示网络的八位位组数目(分别为255.0.0.0、255.255.0.0、255.255.255.0),这会自动告诉您每个网络类别允许多少个主机。
是的,但是如果有人要对该网络进行子网划分,则需要使用子网掩码来知道您所在的子网的大小。是的,通过分类寻址,该类可以告诉您网络的大小,并允许您判断网络的规模。主机与您位于同一网络中,但是如果该网络是子网划分的,并且没有子网掩码,那么您如何知道另一个节点是否与您位于同一子网中?
假设您在以太网上。我们使用带子网划分的分类寻址。您的IP地址是1.2.3.4
并且您想访问1.3.1.1
。您是否使用ARP到达该地址?好吧,这取决于1.2.3.4
和1.3.1.1
是否在同一子网中。即使它们位于同一网络中,即使它们位于不同的子网中,也需要使用路由器。如果它们在同一子网中,则应使用ARP。
因此,即使在使用分类网络的情况下,如果正在使用子网划分,也需要子网掩码。
我认为您实际上将子网划分与CIDR混淆了。没有CIDR,即使有子网划分,您也不需要管理区域之间的子网掩码。但是您仍然需要在网络内部使用它!
子网掩码用于对IP地址和网络地址进行按位操作。如果我的记忆很好,您可以使用一个IP地址并对其进行“与”运算,然后对给定网络进行子网掩码设置。如果结果等于网络地址,则IP地址在该特定网络上。具有网络地址和子网掩码路由表的路由器可以使用简单的二进制数学运算(如果计算机处理速度不是最快的话,这将是非常快的,如果不是最快的话),以找出将数据包从哪个接口中拉出。
“第一个八位位组已经指定了网络类别(1-127:A,128-191:B,192-223:C等)。”
如今,不再有很多常用的协议可以尊重这一点(请参阅@Fiasco Labs评论-RIP是我能想到的唯一协议)。因此,您的问题中的以下语句:
IP提供子网掩码具有的所有信息,以及更多信息。
对于当今Internet中使用的绝大多数协议而言,情况并非如此。
如果您有许多相互连接的机器,并且彼此之间仅进行通信,而没有涉及路由器,那么就不需要子网掩码了(尽管现代TCP / IP堆栈坚持要求您指定一个)。
路由器定义(子)网络的边缘。任何需要通过路由器的东西都在不同的网络上,反之亦然:任何需要去不同网络的东西都需要通过路由器。
子网掩码是所有机器如何判断流量是针对当前网络还是需要发送至路由器以到达其目的地的方式。如果计算机的TCP / IP堆栈位于子网掩码之内,它将直接将其流量发送到目的地,否则它将查询其路由表,通常的情况是将其他流量发送到默认网关。
第一个八位位组已经指定了网络类别(1-127:A,128-191:B,192-223:C等)。A,B或C表示网络的八位位组数目(分别为255.0.0.0、255.255.0.0、255.255.255.0),这会自动告诉您每个网络类别允许多少个主机。
虽然历史上确实如此。多年以来并非如此。多年前,向各种ISP分发了24.0.0.0/8。(我相信这主要是给有线电视提供商的。)
即使对于网络分配来说确实如此,内部网络也必须使用网络掩码来简化路由。像10.0.0.0/8这样的网络的高效路由需要细分成更小的网络。这可能是使用/ 16和/ 8细分的简单方案,但更可能是无类细分。较大的子网可以更有效地利用地址空间(设备中超过24%的/ 24可用,而设备中只有30%的/ 30可用。
本地网络直接从设备路由,而其他地址则通过路由器传递。具有多个接口的主机可以连接到不同大小的网络。
对于没有多宿主主机的子网,/ 24包含的地址数量超出了所需数量。我使用过的大多数路由器都有24、48或96个端口,并且可以通过/ 27,/ 26或/ 25子网来支持。这为DCHP和/或多宿主提供了一些额外的地址。组织可以标准化分配/ 24或/ 23的子网以进行路由。
由于IPv4地址已经提供了网络和主机的信息,为什么我们仍需要子网掩码?
许多设备使用/ 24的默认网络掩码,在许多情况下,该掩码与分配给路由器的本地子网(localnet)的大小匹配。这同样适用于A,B和C类。除非子网大小与默认子网匹配,否则需要网络掩码。
如果使用CIDR格式指定地址,则可以从该地址计算网络掩码和网络。如果不是,则可以根据地址和网络掩码来计算网络。无法根据地址和网络可靠地计算网络掩码。
提供子网的网关(路由器)地址可以配置默认路由,从而允许路由到子网外部的地址。
除了@Adrian的回答外,我不确定这些内容中有没有提到我们为什么使用遮罩而不是一些更简单的解决方案,而且他只提到了遮罩是FAST的事实,我的意思是为什么不仅仅指定您是对地址192.168.1.200-192.168.1.220感兴趣,或者为什么不为此使用诸如* .my.address.com之类的名称,仅命名每台计算机而不是分配数字?
实际上,您现在可以在某种程度上完全从路由中删除数字,大多数PC可以处理它们发送的流量类型,但是在大型设备上仍然存在问题。
像这样的过滤一直在发生,并且很多。掩蔽可以在硬件中完成,完全不需要浪费时间在无趣的数据包上(过去,这些数据包是您通过网络传输的数据包的99%,现在有了交换式集线器,您应该看不到任何不需要的数据包)地址到您的机器上,再次使其不那么相关)。
对于在硬件上如此简单的解决方案,它也非常灵活。相同的硬件可以通过相同的实现路由整个A类网络(10.xxx)或仅路由一个或两个IP地址。
这不能替代任何其他答案,只是更多信息。
其他答案已经解释了很多事情,但不是主要问题。
您想知道,如果IP地址已经可以为您提供收件人的完整地址,那么为什么存在子网掩码。您知道,在大型组织中,有时部门需要单独的网络,例如,会计师位于不同的子网中,而无法访问营销部门的内部IP地址。因此,例如,IP地址为192.168.10.3的员工将无法访问192.168.15.76的打印机,因为它位于不同的子网中。
迄今为止,对于为何仍在使用子网(与CIDR相反),仍无任何答案。子网掩码存在两个问题:
客户A:22.132.124.121子网掩码255.255.255.0
客户B:22.132.114.55子网掩码255.255.0.0
并没有立即可见。