写点什么

重学网络系列之(我的名字叫 IP)

作者:自然
  • 2022 年 9 月 03 日
    广东
  • 本文字数:3283 字

    阅读完需:约 11 分钟

前言

文本已收录至我的 GitHub 仓库,欢迎 Star:https://github.com/bin392328206/six-finger

种一棵树最好的时间是十年前,其次是现在

叨絮

今天我们的主角是 IP,这家伙天生丽质难自弃,在网络的世界,他可是一等公民。今天我们就一起来聊聊 IP 这个家伙



凡所有相,皆是虚妄;若见诸相非相,即见如来。

面试题 说说你怎么查看当前服务器的 ip

哈哈,这个题是不是很简单,不是搞技术的都可能知道,有以下的方式


  • 在 Windows 上是 ipconfig

  • 在 Linux 上是 ifconfig。

  • 还有一个在 Linux 上是 ip addr


那 ifconfig 和 ip addr 的区别呢?有时候面试的时候,想深挖一些东西真的很难,因为很多人第一连就不行了。。大家可以在下方留言看看。。

IP 地址

P 地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码。既然是门牌号码,不能大家都一样,不然就会起冲突。比方说,假如大家都叫六单元 1001 号,那快递就找不到地方了。所以,有时候咱们的电脑弹出网络地址冲突,出现上不去网的情况,多半是 IP 地址冲突了。


举个例子 10.100.122.2 就是一个 IP 地址 这个地址被点分隔为四个部分,每个部分 8 个 bit,所以 IP 地址总共是 32 位。这样产生的 IP 地址的数量很快就不够用了。因为当时设计 IP 地址的时候,哪知道今天会有这么多的计算机啊!因为不够用,于是就有了 IPv6,也就是 inet6fe80::f816:3eff:fec7:7975/64。这个有 128 位,现在看来是够了,但是未来的事情谁知道呢?

地址分类

IP 目前是被分为了 5 类,当然我们就看我们用的最多的 3 类就好了



在网络地址中,至少在当时设计的时候,对于 A、B、 C 类主要分两部分,前面一部分是网络号,后面一部分是主机号。这很好理解,大家都是六单元 1001 号,我是小区 A 的六单元 1001 号,而你是小区 B 的六单元 1001 号



大家看看是不是很熟悉,我相信大家公司的局域网的地址开头基本上是 10.0 开头的吧,而我们用自己电脑组的虚拟机局域网大部分肯定是 192.168 开头的

公有 IP 地址和私有 IP 地址

在日常的工作中,几乎不用划分 A 类、B 类或者 C 类,所以时间长了,很多人就忘记了这个分类。但是有一点还是要注意的,就是公有 IP 地址和私有 IP 地址。



我们继续看上面的表格。表格最右列是私有 IP 地址段。平时我们看到的数据中心里,办公室、家里或学校的 IP 地址,一般都是私有 IP 地址段。因为这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。因此,你学校的某个私有 IP 地址段和我学校的可以是一样的。

MAC 地址

类似于 fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff 这个被称为 MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示。MAC 地址是一个很容易让人“误解”的地址。因为 MAC 地址号称全局唯一,不会有两个网卡有相同的 MAC 地址,而且网卡自生产出来,就带着这个地址。很多人看到这里就会想,既然这样,整个互联网的通信,全部用 MAC 地址好了,只要知道了对方的 MAC 地址,就可以把信息传过去。


这样当然是不行的。一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能。而有门牌号码属性的 IP 地址,才是有远程定位功能的。


例如,你去杭州市网商路 599 号 B 楼 6 层找刘超,你在路上问路,可能被问的人不知道 B 楼是哪个,但是可以给你指网商路怎么去。但是如果你问一个人,你知道这个身份证号的人在哪里吗?可想而知,没有人知道。


MAC 地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识


所以,MAC 地址的通信范围比较小,局限在一个子网里面。例如,从 192.168.0.2/24 访问 192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网,即从 192.168.0.2/24 到 192.168.1.2/24,MAC 地址就不行了,需要 IP 地址起作用了

面试题 怎么给自己的电脑设置 ip

有下面的方式设置 ip


  • sudo ifconfig eth1 up

  • sudo ip link set up eth1


你可能会问了,自己配置这个自由度太大了吧,我是不是配置什么都可以?如果配置一个和谁都不搭边的地址呢?例如,旁边的机器都是 192.168.1.x,我非得配置一个 16.158.23.6,会出现什么现象呢?


不会出现任何现象,就是包发不出去呗。

原因

大家可以试试,你发现你 ping 的时候,包根本发不出去,原因就是重点来了,很重要的一个结论,重要的事情说三遍


  • 只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不可能有上层没下层。

  • 只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不可能有上层没下层。

  • 只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不可能有上层没下层。大家来反推一下哈 我们既然要发一个包出去,就算是交换机对吧,他们的通信在网络里面的数据链路层,我们说的 mac 层,那你想,我自己是 16.158.23.6 自己的 mac 地址,我们自己肯定知道,但是我并知道 192.168.x.x 的 mac 地址,我怎么办呢,我肯定要想办法知道他 mac 地址,这里会有一个判断的过程,如果目标地址跟我是一个网段的,那我就发 arp 协议,就能获取到了,就像我们在一间办公室,我肯定就直接喊,小六六把你的东西递给我下。但是我们看,此时呢,我们的网段不同是吧,那我们就要先找到网关,也就是 16.158.x.x 的网关,把包发给他,然后再发到 192.168.x.x 的时候,他会发现 mac 地址跟自己网关的地址对不上,所以是不会接收这个包的。

动态主机配置协议(DHCP)

原来配置 IP 有这么多门道儿啊。你可能会问了,配置了 IP 之后一般不能变的,配置一个服务端的机器还可以,但是如果是客户端的机器呢?我抱着一台笔记本电脑在公司里走来走去,或者白天来晚上走,每次使用都要配置 IP 地址,那可怎么办?还有人事、行政等非技术人员,如果公司所有的电脑都需要 IT 人员配置,肯定忙不过来啊。


因此,我们需要有一个自动配置的协议,也就是称动态主机配置协议(Dynamic Host ConfigurationProtocol),简称 DHCP。


如果一个网络管理员在网络里面配置了 DHCP Server 的话,他就相当于这些 IP 的管理员。他立刻能知道来了一个“新人”。这个时候,我们可以体会 MAC 地址唯一的重要性了。当一台机器带着自己的 MAC 地址加入一个网络的时候,MAC 是它唯一的身份,如果连这个都重复了,就没办法配置了。只有 MAC 唯一,IP 管理员才能知道这是一个新人,需要租给它一个 IP 地址,这个过程我们称为 DHCPOffer。同时,DHCP Server 为此客户保留为它提供的 IP 地址,从而不会为其他 DHCP 客户分配此 IP 地址。

DHCP 协议中的报文

DHCP 报文共有一下几种:


  • DHCP DISCOVER :客户端开始 DHCP 过程发送的包,是 DHCP 协议的开始

  • DHCP OFFER :服务器接收到 DHCP DISCOVER 之后做出的响应,它包括了给予客户端的 IP(yiaddr)、客户端的 MAC 地址、租约过期时间、服务器的识别符以及其他信息

  • DHCP REQUEST :客户端对于服务器发出的 DHCP OFFER 所做出的响应。在续约租期的时候同样会使用。

  • DHCP ACK :服务器在接收到客户端发来的 DHCP REQUEST 之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的 IP 和其他信息可以被允许使用。

  • DHCP NAK :DHCP ACK 的相反的报文,表示服务器拒绝了客户端的请求。

  • DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使 DHCP 服务器释放发出此报文的客户端的 IP 地址

  • DHCP INFORM :客户端发出的向服务器请求一些信息的报文

  • DHCP DECLINE :当客户端发现服务器分配的 IP 地址无法使用(如 IP 地址冲突时),将发出此报文,通知服务器禁止

  • 使用该 IP 地址。

DHCP 的 工作流程:

结尾

今天我们了解了网络的基础元素 IP Mac,有了 IP Mac 相当于人有了身份证,你就能在这个国家有一个唯一的标识,在网络的世界也是一样的,然后我们还了解 DHCP 协议(相当于出生证明吧)。。从明天开始我们就可以去其他地方冒险了。。

参考

日常求赞

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是真粉


创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见


微信 搜 "六脉神剑的程序人生" 回复 888 有我找的许多的资料送给大家

发布于: 刚刚阅读数: 5
用户头像

自然

关注

还未添加个人签名 2020.03.01 加入

小六六,目前负责营收超百亿的支付中台

评论

发布
暂无评论
重学网络系列之(我的名字叫IP)_网络_自然_InfoQ写作社区