子网掩码的作用解释一例(子网掩码有何作用)

在计算机网络基础知识的学习过程中,通过Packet Tracer模拟器可以很直观的将现实中“看不见”的网络传输过程给显示出来,方便大家学习研究。比方说,我们的局域网中有两台电脑,分别命名为电脑A和电脑B,电脑A的配置为:

电脑B的配置为:

从配置上来看,这两台电脑不在同一个网络下(子网掩码不同,一个是255.255.255.0,一个是255.255.248.0),因此,它们之间不可能直接通信。

下面通过实验测试一下:

如下图,设置好电脑A、B各自的IP地址后,进行Ping测试,结果数据包并未发出,而是被丢弃了。什么原因呢?

我们通过查看数据包信息找到了原因:

1. The Ping process starts the next ping request.

Ping进程启动下一个Ping请求。

2. The Ping process creates an ICMP Echo Request message and sends it to the lower process.

Ping进程创建ICMP回显请求消息并将其发送到较低的进程。

3. The source IP address is not specified. The device sets it to the port's IP address.

未指定源IP地址。设备将其设置为端口的IP地址。

4. The device sets TTL in the packet header.

设备在数据包报头中设置TTL。

5. The destination IP address 192.168.15.1 is not in the same subnet and is not the broadcast address.

目的IP地址192.168.15.1不在同一个子网中,不是广播地址。

6. The default gateway is not set. The device drops the packet.

未设置默认网关。设备丢弃数据包。

总结起来说就是:在数据包发送前,系统会把目的IP地址与自身电脑设定的子网掩码(255.255.255.0)进行相与运算,从而得到目的IP(192.168.15.1)所在的网络地址(192.168.15.0),而其本身的IP与子网掩码相与运算后也有会得到一个网络地址(192.168.8.0),这两个地址的网络号一个是192.168.15,另一个是192.168.8,它们是不相同的,系统判定为目的IP地址和本机不在同一个子网内。如下图所示的运算:

不在同一个子网内,这就需要用到网关了,数据包准备发往网关,但是由于没有设定网关,无法将数据包发出,最后只好丢弃该包了。

简言之:数据包发送前先判断是否为同一子网(由子网掩码来判定),同一子网是不需要经过网关的,子网内部送达即可,非同一子网,则需要网关转达。

原文链接:,转发请注明来源!