什么是通讯地址,一文带你了解

文章插图
了解完网络协议,我们会发现,网络通信的五层模型里,有两个很重要的概念:IP 地址和 MAC 地址 。
那么 IP 地址是怎么来的,又是怎么没的?MAC 地址与 IP 地址又有什么区别?
这回答上面问题前,先热下身,大家知道如何查看本机的 IP 吗?这个问题,即便是没有专业学过计算机的人,只要折腾过电脑,重装过系统,大多都会知道答案:在 Windows 下是 ipconfig,在 linux 下是 ifconfig 。
在 Windows 下输入 ipconfig,我们会看到这个界面:

文章插图
在 linux 下输入 ifconfig,我们会看到这个界面:

文章插图
IP 地址
可以看到,无论是在 Windows 还是在 linux 下,输入相关命令都能显示出这台机器上所有的网卡 。大部分的网卡都会有一个 IP 地址 。就像 192.168.1.73 ,就是我本机以太网的 IP 地址 。
IP 地址是一个网卡在网络世界中的通讯地址,相当于我们现实世界的门牌号码 。注意,IP 地址是网卡的通讯地址,不是一台机器的通讯地址 。很多时候,我们会说一个电脑只有一个 IP 地址,这种说法实质上并不正确,准确的来说,应该是:
一个网卡在同一时段只能有一个 IP 地址,一台机器可以有多个 IP 地址 。就像我们的笔记本,一般都会有线网卡和无线网卡,则有线网卡有一个 IP 地址,无线网卡也有一个 IP 地址 。
一台机器有多个 IP 地址,那 IP 地址会不会重复呢?其实我们应该会碰到 IP 地址重复的情况 。有时候我们电脑弹出网络地址冲突,出现无法上网的情况,那多半就是 IP 地址冲突了 。
格式
就像上面输出的结果,192.168.1.73 就是一个 IP 地址 。这个地址被点(.)分割为四个部分,每个部分有 8 个 bit,所以 IP 地址总共是 32 位 。显然,32 位产生的 IP 地址在当今这个互联网社会,很明显就是”狼多肉少” 。于是就有了 IPv6,也就是上面结果中的 fe80::515d:5483:ff4d:6db9/64 。这个有 128 位,能满足我们现在的需求了 。至于后面会不会出现 IPv8 ,那就看后面互联网世界的发展了 。
分类
我们应该都听说过,IP 地址分为 A、B、C、D、E 五类 。对于 A、B、C 类,主要分两部分,前面一部分是网络号,后面一部分是主机号 。

文章插图
下图是 A、B、C 三类地址所能包含的主机数量 。

文章插图
这里面有个问题,C 类地址包含的主机数量太少,而 B 类地址包含的主机数量又太多,于是就有了一个折中的方式叫做无类型域间选路 。
无类型域间选路
顾名思义,无类型域间选路(CIDR)基本思想是取消地址的分类结构,取而代之的是允许以可变长分界的方式分配网络数 。192.168.1.73/24 就是无类型域间选路格式的 IP 地址 。这种格式的 IP 地址,将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号 。从哪里分呢?如果注意观察的话可以看到,上面地址中有一个斜杠,斜杠后一个数字 24 。这个 24 的含义就是,前24 位是网络号,后 8 位是主机号 。
公有 IP 地址和私有 IP 地址

文章插图
继续看上面的表格 。表格最右列是私有 IP 地址段 。平时我们在一个局域网内,看到的 IP 地址都是私有 IP 地址 。因为这些地址允许组织内部的 IT 人员自己管理和分配,而且还可以重复 。所以会出现你局域网的私有 IP 地址段和我局域网的是一样的 。
就像我们上面说的,小明在自己家里给同单元的小伙伴说自己是五单元 101 号,小伙伴能理解,但是他如果这样和小红说,小红就会问,你是哪个小区的?这里的小区实际上就是公有 IP 地址,而五单元 101 号就是私有 IP 地址 。
表格中的 192.168.0.x 是最常见的私有 IP 地址段 。就像我们家里的路由器地址一般是 192.168.0.1 一样 。
IP 分配与释放
IP 分配我们平时应该接触比较少 。还记得在大学的时候,刚入学第一件事就是赶紧交网费 。交网费时会有一个步骤,网管会让你提供 MAC 地址,然后把 IP 地址和 MAC 地址绑定,这也就是博主在隔壁宿舍无法通过网线上网的原因 。
其实,如果你有相关的知识积累,可以用命令行自己配置 IP 地址 。当然,能不能通信就看你的知识储备量了 。
除了命令行配置外,我们平时应该对于 IP 分配应该都是用的 “拿来主义” 。无论是在学校还是在办公室,都会有网络管理员把分配好的 IP 给你,直接使用就可以了 。但是有时候也会好奇,网管是怎么分配 IP 的呢?难不成通过命令行一个个配置?这时候就要用到动态主机配置协议(DHCP) 。
动态主机配置协议
这个协议的工作原理是怎样的呢?我们就拿一台机器新加入一个网络为例,来走一遍 DHCP 的工作流程 。
当一台机器新加入一个网络时,肯定一脸懵逼,啥情况也不知道,只知道自己的 MAC 地址 。没人理你怎么办?那不管三七二十一,先吼一声,告诉所有人,我来了,有人吗?这时候的沟通基本靠”吼” 。这一步,我们称为 DHCP Discover 。
新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址是 255.255.255.255 。广播包封装在 UDP 里面,UDP 封装在 BOOTP 里面 。在这个广播包里,新人大喊:我是新来的(Boot Request),我的 MAC 地址是 xxx,我还没有 IP,谁能给我个 IP 地址?格式就像下面这样:

文章插图
这时候,网络里的 DHCP Server 就相当于这个局域网的管理员 。他知道来了一个”新人”,需要给它分配一个 IP 地址,这个过程就是 DHCP Offer 。同时,DHCP Server 保留为此机器提供的 IP 地址,从而不会再将相同的 IP 地址分配给其它的机器 。而 DHCP Offer 的格式就像下图,里面有给新人分配的地址 。

文章插图
DHCP Server 仍然使用广播地址作为目的地址,因为,此时请求分配的新人还没有自己的 IP 地址 。如果一个局域网中有多个 DHCP Server,这台新机器会收到多个 DHCP Offer 。
它会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据表,包中包含客户端的 MAC 地址、接受分配的 IP 地址、提供此 IP 的 DHCP 服务器地址等,并告诉所有的 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉其他 DHCP 服务器撤销它们提供的 IP 地址,以便提供给下一个 IP 请求分配者 。新人广播包格式如下:

文章插图
此时,由于还没有得到 DHCP Server 的最后确认,新机器仍然使用 0.0.0.0 为源 IP 地址、255.255.255.255 为目标地址进行广播 。
当 DHCP Server 接收到新机器的 DHCP Request 之后,会广播返回给新机器一个 DHCP ACK 消息包,表明已经接受新机器的选择,并将这一 IP 地址分配信息和其他配置信息都放入该广播包,发给新机器 。DHCP ACK 格式如下:

文章插图
新机器收到 DHCP ACK 后,会检测分配的 IP 地址是否能够适应,如果不能使用,它就会给 DHCP Server 发出 DHCP Decline 消息,通知 DHCP Server 禁用这个 IP 地址,然后新机器就开始新的地址申请过程 。
在新机器使用 IP 租期超过 50% 时,DHCP Client 会以单播形式向 DHCP Server 发送 DHCP Request 报文来续租 IP 地址 。如果 DHCP Client 成功收到 DHCP Server 发送的 DHCP ACK 报文,则按相应时间延长 IP 地址租期;如果没有收到 DHCP Server 发送的 DHCP ACK 报文,则 DHCP Client 继续使用这个 IP 地址 。
在新机器使用 IP 租期超过 87.5% 时,DHCP Client 会以广播形式向 DHCP Server 发送 DHCPRequest 报文来续租 IP 地址 。如果 DHCP Client 成功收到 DHCP Server 发送的 DHCP ACK 报文,则按相应时间延长 IP 地址租期;如果没有收到 DHCP Server 发送的 DHCP ACK 报文,则 DHCP Client 继续使用这个IP地址,直到 IP 地址使用租期到期时,DHCP Client 才会向 DHCP Server 发送 DHCP Release 报文来释放这个 IP 地址,并开始新的 IP 地址申请过程 。
MAC 地址
在我们查询 IP 地址的输出结果中,有一行:
Link encap:Ethernet HWaddr 28:d2:44:ce:77:51这个被称为 MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示 。
MAC 地址是一个很容易让人误解的地址 。因为 MAC 地址号称全球唯一,不会存在有相同 MAC 地址的网卡 。这就很容易让我们想,既然全球唯一,那网络通信直接用 MAC 地址不行吗?为什么要加个 IP 地址,多封装一层,再去通信呢?
当然是不行的 。我们想把一个网络包从一个地方传到另一个地方,除了有确定的地址外,还需要有定位功能 。就像你去广州找博主一样,我只告诉你我的身份证号,你能在广州找到我吗?这种寻找无异于大海捞针 。但是如果我告诉你我的详细地址,你就可以直接通过导航找到对应的地址,然后再找到我 。
IP 地址在一定程度上就承担了详细地址这种远程地位的功能 。MAC 地址更像是身份证号,是一个唯一的标识 。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面,不用担心冲突 。
【什么是通讯地址,一文带你了解】当然,MAC 地址也有一定的定位功能 。就像你来到了博主所在的办公室,你可以在办公室喊身份证号是 XXX 的是哪位?博主听到了,就会站起来回答你 。但是如果你在博主听不到的地方喊,那肯定不会有人应你 。这就说明,MAC 地址的通信范围比较小,仅仅局限在一个子网内 。
推荐阅读
- 男士用什么香水好闻,十款持久好闻的男士香水排行榜
- 刺激战场dp28在哪刷新
- 关于生活温馨的名言
- 春浆与蜂王浆的区别是什么
- qq个性网名伤感
- 门巴族独特的工艺文化:氆氇
- 门巴族的信仰是什么,你知道吗?
- 仡佬族崇拜什么,仡佬族的宗教文化
- 发朋友圈比水还干净的句子
- 吴均字什么