前言
网络链路层里面,通过ARP查找Mac地址,以及发送数据到具体的计算机,都需要在子网
下,那子网
是什么?
网络层
一、子网
我们所处的网络,是由无数个子网络构成的。广播的时候,也只有同一个子网里面的计算机能够收到。
假如没有子网这种划分的话,计算机 A 通过广播的方式发一个数据包给计算机 B , 其他所有计算机也都能收到这个数据包,然后进行对比再舍弃。世界上有那么多台计算机,每一台计算机都能收到其他所有计算机的数据包,那就不得了了。那还不得奔溃。 因此产生了子网这么一个东西。
那么问题来了
我们如何区分哪些 MAC 地址是属于同一个子网的呢?
为了解决这个问题,于是,有了 IP 协议。
二、IP协议
IP协议,它所定义的地址,我们称之为IP地址。
IP协议有两种版本,一种是 IPv4,另一种是 IPv6。(以IPv4为例)
1.IP地址
每一台想要联网的计算机都会有一个IP地址。
这个IP地址被分为两部分,前面一部分代表网络部分,后面一部分代表主机部分。
网络部分和主机部分所占用的二进制位数是不固定的。
2.子网
假如两台计算机的网络部分是一模一样的,我们就说这两台计算机是处于同一个子网中。
例如192.168.43.1 和 192.168.43.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8 位。那么他们的网络部分都为 192.168.43,所以他们处于同一个子网中。
可是我们怎么知道网络部分是几位?
3.子网掩码
子网掩码和IP地址一样也是 32 位二进制数,不过它的网络部分规定全部为 1,主机部分规定全部为 0。
例如:11111111.11111111.11111111.00000000,即255.255.255.0
通过子网掩码与IP地址进行与运算,可以计算出IP地址的网络部分;
例如:IP是192.168.43.1,子网掩码是255.255.255.0,那么计算可得网络部分是192.168.43.0。
子网掩码的作用,就是帮我们计算出IP地址的网络部分,如果两个IP地址通过计算得出的网络部分是相同的,说明这两个IP地址是处于同一个子网中。
结论
网络层的,就是通过IP地址找到对应的子网,以供网络链路层找目标服务器对应的Mac地址;
我们正式开发的时候,用的链接地址可能不是ip,可能是一个域名(
http://test.com
),在网络层通过DNS服务器解析成对应的IP地址;
通过网络层与网络接口层,可以找到对应的主机,可是主机上不止有一个应用程序(进程),又该怎么准确的找到对应的应用程序呢?
网友评论