浅谈网络连接 前话 网络知识点 总结 补充点
最近看了一些网络资料,特地写下了分享给大家。
这里,我只简单地分享大家,想了解更多可找我或者谷歌百度。
首先,我想大家对下面这张图不陌生吧~
我就围绕这张图来讲解知识点吧:
- 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地址有公网私网之分,公网地址和私网地址。
公网地址是互联网分配的地址,对于整个互联网它是唯一的,互联网任意成员可通过该公网地址访问你。而私网地址是内部地址,这内部可以是网络设备内部,也可以是局域网内部。
我们需要记住私网地址的三个地址段,如下:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
反斜杠左边表示网关,右边表示IP地址二进制表示时保留长度,这个到子网掩码时再讲。
因此私网地址范围为 10.0.0.1-10.255.255.254
, 172.16.0.1-172.16.255.254
, 192.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为 192.168.1.100
和 192.168.1.101
,该如何标识他们是同一网段呢?
两台计算机就算通过双绞线互联,它们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前我先分享一个知识,就是你访问无论哪个网站,其实内部就是下载那个网页到本机,然后浏览器显示出来,就跟你下载图片,然后用软件打开图片差不多,如下图:
访问网站是主机跟服务器的通信(服务器也是主机),主机之间的通信就需要IP。这里举例访问百度过程:
- 主机浏览器访问 www.baidu.com ,将该域名转发给DNS服务器
- DNS服务器解析该域名,并将百度服务器的IP地址返回给主机
- 主机收到解析成功返回的百度服务器的IP地址,并将其保存到本机缓存中,然后向百度服务器IP请求连接,发送IP数据包
- 该IP数据包由路由转发,分析目的IP不在本局域网,因此转发至因特网
- 数据包通过因特网成功传到百度服务器,通过TCP/IP建立连接,百度服务器将其网页文件发送给主机
- 主机接收百度服务器发送过来的网页文件,并通过浏览器显示出来
从这里可以看出,DNS服务器的作用便是解析域名成IP地址。
图中我们知道了百度的IP地址为 14.215.177.37
,我们在浏览器中输入该IP也可进行百度网站的访问。
为什么不用域名作为网络设备标识呢?因为域名不方便管理,且成本大,每个数据包用域名标识网络设备跟定大大增加数据包大小,严重降低网络数据包传输效率。
但是通过IP访问其他主机服务器肯定不方便记忆,因此每个局域网或者广域网会配备一台或者多台DNS服务器来解析域名,统一管理。
总结
- MAC地址是网络设备唯一的标识字符串,它类似身份证,由网络设备生产厂家决定
- IP是网络设备的网络标识字符串,在同个网络中,它是唯一的,每个网络设备可以有多个IP。它类似QQ账号,对于整个QQ环境来说每个账号是唯一的,但是每个用户可以有多个QQ账号。
- 子网掩码的作用是区分IP是否在同一网络,IP地址在同一地址段,也就是计算得出的网关地址相同的IP才是互通的,当然前提是他们有有线或者无线的物理连接。
- 网关,也可以是路由,它是一个网络的出口,这个出口通向其他网络。其实因特网可以看作是无数个局域网所构成的,每个局域网的网关构成一个局域网,那么这个网关构成的局域网便是因特网了
- 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.0
和 192.168.255.255
呢?
这是因为取值部分的二进制值不能全为0或者1,也就是二进制地址不能取值为 00000000.00000000
和 11111111.11111111
,对应的就是 0.0
和 255.255
,前者是无效地址,后者是广播地址。
同理地址段 172.16.0.0/12
的取值范围为 172.16.0.1 ~ 172.31.255.254
,自己可以算算。