浅谈网络连接

前话

最近看了一些网络资料,特地写下了分享给大家。

这里,我只简单地分享大家,想了解更多可找我或者谷歌百度。

首先,我想大家对下面这张图不陌生吧~

网络信息

我就围绕这张图来讲解知识点吧:

  • MAC地址(也就是图中实际地址)
  • IP地址(这里只讲IPv4)
  • 子网掩码
  • 网关(也可说成路由)
  • DNS服务器

网络知识点


MAC地址

这里我引用百度文库

MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成224个不同的地址。MAC地址实际上就是适配器地址或适配器标识符EUI-48。

简单来说,MAC地址就是网络硬件的身份证,它的编码是唯一的由生产厂家决定。

你的wifi,打印机,蓝牙等都有唯一的MAC地址。


IP地址

和MAC地址类似,它是标记网络硬件的标识符,不同之处在于,一个网络硬件的只能有一个MAC地址,但是可以有多个IP地址。
IP地址是32位二进制编码,为方便管理,以8位作为分割,分割成四部分,每部分再转化为十进制表示,因此IP地址表示为三个点分割的字符串。例如 192.168.1.1

特别要注意,IP地址用点分成四部分,每部分取值范围为 0~255


私网地址

IP地址有公网私网之分,公网地址和私网地址。
公网地址是互联网分配的地址,对于整个互联网它是唯一的,互联网任意成员可通过该公网地址访问你。而私网地址是内部地址,这内部可以是网络设备内部,也可以是局域网内部。

我们需要记住私网地址的三个地址段,如下:

  1. 10.0.0.0/8
  2. 172.16.0.0/12
  3. 192.168.0.0/16

反斜杠左边表示网关,右边表示IP地址二进制表示时保留长度,这个到子网掩码时再讲。
因此私网地址范围为 10.0.0.1-10.255.255.254172.16.0.1-172.16.255.254192.168.0.1-192.168.255.254

私网地址多用于局域网内部地址分配

公网私网

如上图,两个计算机连接一个路由器,路由器通过虚拟拨号连通互联网。
路由器通过自身DHCP动态地址分配给两个计算机分配地址为 192.168.1.100和101
路由器有三个网络接口,可以看作三个网卡,其中两个网卡分别和两台计算机相连,这个两个网卡的IP地址也是 192.168.1.X 的范围内,以此和两台计算机网络连通。
路由器剩下一个网络接口连接互联网,互联网分配其一个公网地址 200.200.200.1

若要一个网络硬件多个IP,在Window系统这样设置

多IP


子网掩码

在同个局域网中,各IP之间要互相通信,那么就要有一定规则标识他们在同一个网段中。
在前面IP地址小节的图中,两台计算机的IP为 192.168.1.100192.168.1.101 ,该如何标识他们是同一网段呢?
两台计算机就算通过双绞线互联,它们IP没有设置为同一网段中,它们也是不可以网络互通的。

这时就需要子网掩码了,如下图:

子网掩码

通过子网掩码和IP地址的二进制值进行与运算,得出网关地址,若两个IP分别和子网掩码的与运算得出的网关地址一样,说明他们在同一网段中,详细解释如下图:

子网掩码IP与运算

在上图中,与运算得出了网关地址 192.168.1.0 ,子网掩码二进制1的长度为24,也可以表示为 192.168.1.0/24 ,因此只要它们的IP在 192.168.0.1~254 ,他们都属于同一网段。

在局域网内通信时,一主机发送IP包,在路由器转发过程中,路由器会先分析目的IP地址是否和源IP地址同一网段,通过子网掩码运算得出同一网关地址,路由器把IP包转发到局域网目的主机中。


网关(路由)

网关可以看作是网络的出口,这里我用三台主机组成一个局域网,其中一台主机连通因特网,这台连接因特网的主机就可以当作网关,如下图:

网关示意

pc0和pc1是局域网内主机,它们未连通因特网,因此他们想连接因特网该如何做?
这时我们只要将连接因特网的主机设置共享网络,然后其他两台主机设置其网关地址为连接因特网的主机的IP地址就可以了,如下图:

网关局域网联网

通过路由器也是同样道理,如下图:

路由联网


DNS服务器

在浏览器敲入 www.baidu.com ,我们就会访问到百度的网页,但是大家知道为什么可以访问到这个网页呢?

讲解DNS前我先分享一个知识,就是你访问无论哪个网站,其实内部就是下载那个网页到本机,然后浏览器显示出来,就跟你下载图片,然后用软件打开图片差不多,如下图:

DNS解析

访问网站是主机跟服务器的通信(服务器也是主机),主机之间的通信就需要IP。这里举例访问百度过程:

  1. 主机浏览器访问 www.baidu.com ,将该域名转发给DNS服务器
  2. DNS服务器解析该域名,并将百度服务器的IP地址返回给主机
  3. 主机收到解析成功返回的百度服务器的IP地址,并将其保存到本机缓存中,然后向百度服务器IP请求连接,发送IP数据包
  4. 该IP数据包由路由转发,分析目的IP不在本局域网,因此转发至因特网
  5. 数据包通过因特网成功传到百度服务器,通过TCP/IP建立连接,百度服务器将其网页文件发送给主机
  6. 主机接收百度服务器发送过来的网页文件,并通过浏览器显示出来

从这里可以看出,DNS服务器的作用便是解析域名成IP地址。

图中我们知道了百度的IP地址为 14.215.177.37 ,我们在浏览器中输入该IP也可进行百度网站的访问。

为什么不用域名作为网络设备标识呢?因为域名不方便管理,且成本大,每个数据包用域名标识网络设备跟定大大增加数据包大小,严重降低网络数据包传输效率。

但是通过IP访问其他主机服务器肯定不方便记忆,因此每个局域网或者广域网会配备一台或者多台DNS服务器来解析域名,统一管理。


总结

  1. MAC地址是网络设备唯一的标识字符串,它类似身份证,由网络设备生产厂家决定
  2. IP是网络设备的网络标识字符串,在同个网络中,它是唯一的,每个网络设备可以有多个IP。它类似QQ账号,对于整个QQ环境来说每个账号是唯一的,但是每个用户可以有多个QQ账号。
  3. 子网掩码的作用是区分IP是否在同一网络,IP地址在同一地址段,也就是计算得出的网关地址相同的IP才是互通的,当然前提是他们有有线或者无线的物理连接。
  4. 网关,也可以是路由,它是一个网络的出口,这个出口通向其他网络。其实因特网可以看作是无数个局域网所构成的,每个局域网的网关构成一个局域网,那么这个网关构成的局域网便是因特网了
  5. DNS服务器,它可以解析域名成IP地址。DNS服务器可以看作一个数据库,它有个IP对应域名的表,主机请求IP地址就将域名对应的IP地址值返回给主机

补充点


IP地址值取值范围

比如地址段 192.168.0.0/16 ,他的取值范围是 192.168.0.1 ~ 192.168.255.254
一个地址段,它分为网关部分和自定义取值部分:

  • 反斜杠后面的16说明IP地址二进制从左到右保留长度为16,说明 192.168 这是网关部分,网关部分值不能改变。
  • 剩下的后面 0.0 是取值部分,取值部分可以自定义更改。

为什么不能取值 192.168.0.0192.168.255.255 呢?
这是因为取值部分的二进制值不能全为0或者1,也就是二进制地址不能取值为 00000000.0000000011111111.11111111 ,对应的就是 0.0255.255 ,前者是无效地址,后者是广播地址。

同理地址段 172.16.0.0/12 的取值范围为 172.16.0.1 ~ 172.31.255.254 ,自己可以算算。


其他补充点想到再加吧~

原文地址:https://www.cnblogs.com/pwc1996/p/5957859.html