今天到客户那实操的时候,遇到一个问题:
客户的网络是255.255.0.0
,我把我电脑的ip设置成192.168.19.237、255.255.255.0、192.168.19.254
,而非192.168.19.237、255.255.0.0、192.168.19.254
,竟然也能访问另一网段的192.168.6.87
,这让我有点郁闷,毕竟两个都不在同一网络下, 一个是255.255.0.0
,另一个是255.255.255.0
,它是咋路由过去的?
之前在办公室里使用的网络,不同网络都是没法直接跨网段访问的,除非电脑设置了多ip,参考文章:windows10 ipv4设置两个(多个)网段同时连接(多网段、双网段)(网络标识符和主机标识符)多ip。难道是我们办公室里路由器没配好?
在不同环境下的网络访问问题可能由多种因素引起,以下是一些可能的原因:
路由器或交换机负责处理跨网络的通信。如果它们没有正确配置,那么你可能无法从一个子网访问另一个子网。例如,如果没有设置正确的静态路由或动态路由协议,那么数据包可能无法找到从一个网络到另一个网络的路径。
防火墙可以阻止特定类型的流量。如果防火墙设置了阻止跨子网通信的规则,那么你就无法从一个子网访问另一个子网。
虚拟局域网(VLAN)能够将一个物理网络划分为多个逻辑网络。如果你的设备和目标设备处于不同的VLAN中,那么除非有一个设备(如多层交换机或路由器)配置为在这些VLAN之间进行路由,否则它们将无法直接通信。
如果你的设备的IP地址或子网掩码配置错误,那么它可能无法正确地识别哪些设备在本地网络内,哪些设备在外部网络。
在解决问题前,我们先来了解下直接通信与间接通信
的概念。
在计算机网络中,通信是实现各种设备间信息交换的基础。这种通信主要有两种方式,即直接通信和间接通信。
直接通信涉及到源设备直接将信息发送到目标设备,没有中间的转发或路由设备。在这种情况下,源设备和目标设备必须位于同一网络或子网内1。
Source Device -----> Destination Device
在直接通信中,数据包从源设备直接传送到目标设备。这需要源设备知道目标设备的物理地址(如MAC地址)或者逻辑地址(如IP地址)。如果设备处于同一局域网(LAN),那么他们可以通过ARP(Address Resolution Protocol)协议获取对方的物理地址。
直接通信主要应用在局域网内部,比如办公室、学校、家庭等小范围内的网络。例如,你可能经常在办公室的电脑之间共享文件,这就是直接通信的一个例子。
如果源设备和目标设备不在同一网络或子网上,那么他们之间的通信就需要通过路由器或其他网络设备进行转发,这就是间接通信2。
Source Device -- Router -- Destination Device
在间接通信中,源设备首先将数据包发送到一个中间设备,如路由器。然后,路由器根据自己的路由表将数据包转发到下一个设备,这个过程可能会经过多次转发,最终数据包才会到达目标设备。这个过程中,每个设备只需要知道下一跳设备的地址,而无需知道最终目标设备的地址。
间接通信主要应用在互联网中,因为互联网是由许多不同的网络连接而成的。例如,当你在浏览一个网站时,你的电脑并不直接与服务器连接,而是通过多个路由器和交换机传递信息。
直接通信和间接通信各有优缺点,选择使用哪种通信方式主要取决于特定的应用场景和需求。
直接通信 | 间接通信 | |
---|---|---|
优点 | 通信速度快,延迟低 | 可实现广域网的通信,灵活性高 |
缺点 | 通信范围受限,扩展性差 | 通信速度慢,延迟高 |
应用场景 | 局域网通信 | 广域网通信 |
回到我们的问题,为什么我把我电脑的子网掩码设置成255.255.0.0或者设置成255.255.255.0,它们都能让我访问到192.168.6.87?它们有什么区别,我应该设置成哪个?
两个子网掩码的主要区别在于可用的IP地址数量。255.255.0.0可以提供约65,536个IP地址,适合大型组织。
而255.255.255.0只能提供256个IP地址,适合小型网络。
当你的子网掩码设置为255.255.0.0时,你的设备会认为192.168.x.x下的所有设备都在同一局域网内。
如果一个设备尝试与同一子网内的另一个设备通信,它将直接发送数据包。
但是,如果你的子网掩码设置为255.255.255.0,你的设备则会认为只有192.168.19.x下的设备在同一局域网内。
因此,当你的设备尝试访问192.168.6.87(它不在同一子网内)时,它会先向默认网关(例如路由器)发送数据包,然后由网关路由到目标设备。
一般来说,对于家庭用户和小型企业,推荐使用255.255.255.0,因为这样的网络更易于管理,而且降低了广播流量,提高了网络效率。
对于需要大量IP地址的大型组织,可以选择255.255.0.0或更大的子网。
最重要的是,你的子网掩码、IP地址和默认网关应该配置得恰当,以满足你的网络需求,并确保所有设备能够正常通信。
访问延迟问题:
理论上,如果你的子网掩码设置为255.255.255.0,访问192.168.6.87可能会稍微有一些额外的延迟,因为数据包需要先发送到默认网关(比如路由器),然后由网关路由到目标设备。这被称为间接传送。
而如果你的子网掩码设置为255.255.0.0,你的电脑会认为192.168.6.87在同一个局域网内,于是直接将数据包发送给目标设备,这被称为直接传送。
然而,实际上,这种差异几乎可以忽略不计。在现代网络设备中,路由器处理和转发数据包的速度非常快,对于绝大多数应用来说,这点额外的延迟并不会带来明显的影响。
除非你正在进行要求极低延迟的活动,比如在线游戏或者实时音视频通信,并且你的网络设备性能不足,否则你可能都感觉不出这种差异。
所以,理论上来说,只要我们路由器配置正确,我们子网掩码无论设置成255.255.255.0
还是255.255.0.0
都是可以可以跨网段访问的,只是255.255.255.0
可能延迟要大一点。
Tanenbaum, A.S. & Wetherall, D.J. (2011). Computer Networks. Prentice Hall. ↩︎
Kurose, J.F. & Ross, K.W. (2016). Computer Networking: A Top-Down Approach. Pearson. ↩︎