子网掩码

/ 0评 / 0

从前有一个地主,有256间房子,地主家的门牌号码是“192.168.1”,那么他家第一间房子的门牌号码是192.168.1.0,第二间是192.168.1.1,…第256间的编号是192.168.1.255。地主老了,需要把256间房子分给4个儿子,平均分配,每个儿子可以分64间。请来一位先生主持公道,先生这么来操作:

192.168.1.0-192.168.1.63 分给大儿子
192.168.1.64-192.168.1.127 分给二儿子
192.168.1.128 -192.168.1.191 分给三儿子
192.168.1.192-192.168.1.255 分给四儿子

那如何来描述四个儿子的子网网段呢?

192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26

/26是什么?

255.255.255.192的二进制是多少? “11111111-11111111-11111111-11”大家数数一共多少个1?不用数了,是26个1,为了简化子网掩码的表示,用/26代替255.255.255.192。

按位与运算

我们来看大儿子的网段 192.168.1.0/26 是如何得到的?

以大儿子的房间为例: 192.168.1.0 - 192.168.1.63

二进制表示:

192.168.1.0
11000000.10101000.00000001.00000000

192.168.1.63
11000000.10101000.00000001.00111111

首尾地址完全相同的是多少?

11000000.10101000.00000001.00

数数一共多少位?26位!那么用这个“192.168.1.0/26”就可以表示大儿子所有房间。对照房间的门牌号码“192.168.1.199”,很显然属于四儿子的。一个主机192.168.1.199/26 能否和直连主机192.168.1.200/24 通信?可以的,因为都是四儿子的房间。

一个主机192.168.1.199/26 能否和直连主机192.168.1.1/24 通信?

答案是:不可以,因为一个是大儿子的房间,一个是四儿子的房间,无法直连通信!

相同网段的通信

大多数同学都知道电脑上网需要一个IP地址,一个掩码,还需要一个网关,最后还需要一个域名服务器DNS地址。

XX公司有三位员工,小明、小美、小丽,他们电脑IP参数分别如下:

小明
IP = 10.1.1.2/24
Default Gateway = 10.1.1.1
DNS Server = 10.10.10.10

小美
IP = 10.1.1.3/24
Default Gateway = 10.1.1.1
DNS Server = 10.10.10.10

小丽
IP = 10.1.2.2/24
Default Gateway = 10.1.2.1
DNS Server = 10.10.10.10

小明的网络掩码为24,即二进制的24位,由于一个字节是8位,所以掩码一共是3个字节。小明Ping小美的电脑,那什么是Ping

英国海军发明了声纳(Sonar),发射出特定波长的声波,遇到潜水艇会反射回来,以此可以定位潜水艇的位置与距离,以此作出准确的攻击。

Ping也是类似原理,Ping包发送出去,到达目的电脑(IP)会弹回来,用于判断目的电脑是否联网状态。

小明Ping 10.1.1.3,小明的电脑首先判断10.1.1.3是不是和自己在一个网段,那怎么判断呢?很简单,用自己的掩码(3个字节长),去遮掩(从左到右)10.1.1.3,这也是掩码的由来,很显然10.1.1.3一共4个字节,那被遮盖住的是哪三个字节呢?很显然是10.1.1,这个10.1.1我们给它一个名字:网段号(Network ID),那剩下的3我们也给它一个名字:主机号(Host ID),所以一个IP地址由两部分组成:网段号+ 主机号

那小明的网段号是多少?想必不用我说同学们也会脱口而出 10.1.1,所以小明的电脑发现10.1.1.3 和自己处于同一个网段网段号都是10.1.1,在一个网段就好办,先检查自己的ARP缓存是否有对方网卡的硬件地址MAC?

如果有,那Ping包可以完成封装发送出去了。

假设没有,发个ARP广播问问对方好了,那首先得确定用哪个接口来发广播,怎么确定是哪个接口呢? 假设没有,发个ARP广播问问对方好了,那首先得确定用哪个接口来发广播,怎么确定是哪个接口呢?同学莫急,老师深深地知道你们学习的难处在哪,需要查找路由表来决定哪个接口。

咱们先来看看路由表条目是啥样?

网络号 ...掩码 ...下一跳 ...接口 ...Metric 
127.0.0.1 255.0.0.0 127.0.0.1 lo1 1
10.1.1.2 255.255.255.255 10.1.1.2 Eth0 1
10.1.1.0 255.255.255.0 广播 Eth0 1
0.0.0.0 0.0.0.0 10.1.1.1 Eth0 255

按照上文教授的方法,以上4条路由它们分别代表的网段号分别是:

127

10.1.1.2

10.1.1

0

用小美的网络号10.1.1与以上4条一一匹配,匹配到第三条,对应的接口为Eth0,于是从接口Eth0发送ARP广播,ARP广播在广播域里蔓延,小美的电脑也在同一个广播域可以接收到此ARP广播,广播请求10.1.1.3的硬件MAC地址,于是小美的电脑通过点对点单播ARP回复10.1.1.2,自己的MAC是MACxm,小明的电脑接收到此回复,将 10.1.1.3 / MACxm 保存在ARP缓存里,时间为20-30分钟不等,以备下次使用。

接下来就简单了,一个Ping包就发送出去了,到达小美的电脑,然后依照以上类似的步骤,Ping的回包就到达小明的电脑,然后Ping程序软件显示,Ping包被反弹回来,以及最大、最小、平均的来回延迟时间RTT(Round Trip Time)

发表评论

电子邮件地址不会被公开。 必填项已用*标注