4.3-沛县欢乐多(DHCP,ARP,ICMP协议)

4.3-沛县欢乐多(DHCP,ARP,ICMP协议)

开头想说的话,这篇文章介绍DHCP,ARP,ICMP,用故事的方式给你讲述一些计算机网络原理,希望能够对你有所帮助,别担心,故事很有趣的,如果哪里不太合理,请qq我208820388一起讨论讨论。愿人生的路上,你我共勉~


  自从帝国推广了“ IP+子网掩码”,沛县管理村民的方式也发生了变化,之前每个头头儿可有的属下人数时固定的,现在实行了 按玉识人,百姓们只要看到他们腰间的玉(子网掩码),就能推算出这个官员乌纱帽儿有多大,能管多少人了。

1.大人,请为我登记一个名字吧(DHCP协议)

DHCP的英文全称是Dynamic Host Configuration Protocol),该协议用来给一个电脑刚加入局域网,DHCP服务器会为他分配一个可用的IP。

  沛县人口越来越多了,衙役们登记姓名(登记IP)的活儿也越来越重了,百姓们必须先有了名字,然后才能够和其他村民交流呀。而咱们这个衙门可就牛逼了,可是一个村的管理头头。。之一。新加入这个村子(局域网)的都需要到咱这里报个到,拿个名字才能在咱这里混。
  老刘家生了个老三,喜事儿,暂时叫个刘三吧,毕竟还没有去衙门正儿八经的登记呢,平时别人问他,他也说不出什么话儿。这天刘爹刘娘,让刘三写了封信,给衙门老爷请求给个名字,这封信还有讲究呢。刘三儿还不能正常和别人说话,他就只能通过村口的广播来开始第一步了

  1. (刘三,广播)老爷老爷,我是刘三儿,我想要个名字。

主机广播DHCP发现报文 ---- “有没有DHCP服务器呀?”试图找到网络中的服务器,服务器获得一个IP地址。

  1. (老爷,广播)我是老爷,有有有,我看你骨骼清奇,不如就叫“季”,你要吗?

DHCP服务器广播DHCP提供报文---- "!”“!”“!”服务器拟分配给主机一个IP地址及相关配置,先到先得。

  1. (刘三,广播)谢谢老爷,那我以后就叫刘季啦?

主机广播DHCP请求报文 —“我用你给我的IP地址啦?”主机向服务器请求提供IP地址。

  1. (老爷,广播)客气啥,用吧用吧

”DHCP服务器广播DHCP确认报文 “!----用吧!正式将IP地址分配给主机。

至此,刘三儿。。不,刘季终于有了属于自己的名字,可以和村子里其他人沟通了。

画外音:
衙役A懵逼中:为啥老爷不直接私信给刘三儿呢?非要广播,吵死了,大家都听到了。
“蠢蛋,你忘记刘三儿他没名字没法和别人说话吗,用了广播大家都能听到,自然包括刘家老三了”衙役B鄙视道。
衙役A好奇道:万一同时有张家老二,孙家老四,赵家老五同时找老爷登记名字呢,都用广播,怎么知道谁是谁?
衙役B傻了:emmm 但是不是有MAC地址吗,他们出生就带有的这个时候在局域网中通信就是靠MAC区别了的,出了咱们这个村子。。这个名字用处就大了。
A:为啥3, 4 步骤的时候仍然广播呢?老爷不是都叫他“季”。。。
B:他还没答应呢,万一老爷同意了叫他“刘季”,而他不同意,老爷怎么能用这个“刘季”的名字去私聊他呢,还是广播吧。害,估计接下来就是发个广播,让大伙儿都知道他的名字了,这样下次就能直接找刘季了。

2.樊屠狗,我来找你啦(ARP协议)

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP:“Address Resolution Protocol”(地址解析协议),完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题

MAC:Media Access Control(媒体访问控制),就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,必须知道樊屠狗得MAC,刘季儿才能找到他聊天哦~

  虽然大家都有了名字(IP),可平时聊天还是得写信,这写信嘛,他传输还得靠MAC,所谓MAC呢,就是比更为靠谱的一个识别码。
  在村子里(局域网)怎么找到樊屠狗?

  1. 首先肯定是检查自己的电话本(ARP高速缓存,记录通信过的电脑的MAC),毕竟是第一次找嘛,肯定是没有的啦,要是是第二次刘季儿就直接在信上写上MAC啦
  2. 没有咋办?找大喇叭啊
    (刘季,广播):樊屠狗,樊屠狗,这是我的IP还有我的MAC,听到广播请回复
    (樊屠狗,单播):我私聊你了,这是我的MAC,你可以找我聊天了,我保证不打你+纯真的笑容.jpg

刘季内心:鬼才信你233,不过,如果樊屠狗将来不在这个村子了,我大概也没这么容易找他玩了吧。。。。(注意,这是在同一村子的通信)

3.写信的门道道(ICMP协议)

ICMP:Internet Control Message Protocol,Internet控制报文协议
  一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。 所以我们就需要一种协议来完成这样的功能–ICMP协议。

  说到写信的门道道,我萧某人自称第二,还没人敢称第一呢,通过这玩意,我能确认这两点:1. 确认IP包是否成功到达目标地址 。2. 通知在发送过程中IP包被丢弃的原因 。
且看我第一个技能ping:喂,你收到我的信息没
在这里插入图片描述
  看到没哥的ping得到的信息,什么TTL?这个是time to live 啊,说的是我这个包经过了多少人,每经过一个人,他就自动减一,我就能知道这封信经了多少人转发。初始是多少?emm我ping了下我自己,ping 127.0.0.1 得到的是TTL=64,那这张图就应该是64-52=12个人(路由器)咯?

那么如何验证的呢?
(1)ping命令会先发送一个 ICMP Echo Request给对端
(2)对端接收到之后, 会返回一个ICMP Echo Reply
(3)若没有返回,就是超时了,会认为指定的网络地址不存在。
PING:测试两个主机之间的连通性,使用了ICMP回送请求回答报文

  还不够?哼哼我还能知道他们都经过了什么人!知道他们的IP,这就是我第二个技能tracert:哼 我来看看都有谁经手了我的信
在这里插入图片描述
哼哼,这个就是刚才的TTL应用了,我第一个TTL设置为1,它到达了第一个路由器,就会减为0,就失效啦,路由器应该将“ICMP 已超时”的消息发回给我,我就能知道他的信息啦。你看第一个不正是我家的路由器192.168.1.1嘛。

  Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
  Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由

  “没想到这个姓萧的这么鸡贼啊,要不咱们先打他一顿吧,姓刘的你找棍子吓吓他先。。砖头太硬了。。。你先放下啊。。别上。。。”

  沛县虽小,潜龙之地。


章评:

  • 一台电脑刚加入一个局域网,是需要DHCP来给他分配一个IP,才能进行之后的操作的,你的手机连上别人家的wifi,也是有这个过程的~
  • 同一个局域网,两台电脑通信,至少直到对方的MAC才能通信,这个ARP协议就是个大喇叭,广播给这个局域网的所有电脑,从而获得到另一台电脑的MAC
  • ICMP协议嘛,你至少的直到你的信到了没,万一出了意外情况也有个报错给你看。win系统下的ping,tracert就是个经典的应用

题外话

  • 网络层起到的作用可不小啊,比如控制子网的运行,如逻辑编址、分组传输、路由选择
  • IP完成数据从源发送到目的的基本任务,即确定两台电脑在互联网上的位置。
  • MAC虽然也能完成一部分寻址的作用,但范围小的多(局域网中常用)。
  • 为什么不用MAC代替IP呢,都能寻址唉?MAC好比人的身份证,IP好比说是xx省-xx市-xxx县-xx村-xx(姓名),你用IP来问路人说这个人在哪里,他可能不知道,但至少能给你指明xx省在哪里,你到那个省问路人,他至少能给你指明xx市在哪里。。直到你到了那个人所在的村,这不就找到了吗!你试试用身份证问人,哼!比较小的局域网还好,互联网怎么可能找得到呢

参考连接

  1. ICMP协议详解
  2. DHCP协议-主机如何从局域网中获取一个ip?
  3. 比较ping,tracert和pathping等命令之间的关系
  4. ARP是什么?ARP基础知识介绍
Postman 是一款流行的 API 测试工具,它通常通过命令行接口 (CLI) 或图形用户界面 (GUI) 进行操作。如果你想将 Postman 的命令转换成文件,可以按照以下步骤进行: 1. **保存命令到文本文件**: - 打开终端(对于 Windows 用户是 Command Prompt 或 PowerShell)。 - 在 Postman 的 CLI 模式下运行需要的命令。例如,如果你想要获取某个 API 资源,你会输入 `postman run [collection-url]` 或 `postman collection run [collection.json]`。 - 在命令行里直接复制你需要的命令行内容。 - 打开一个文本编辑器(如 Notepad、Visual Studio Code 或 Atom),粘贴复制的内容,并保存为 `.cmd` 或 `.sh` 格式的文件(取决于你的操作系统)。 2. **编写脚本或批处理文件**: - 如果你想创建一个能自动执行一系列命令的文件,你可以编写一个简单的 Bash script(Unix/Linux系统)或 batch file(Windows 系统)。在这些文件中,添加你要执行的 Postman 命令,每条命令一行,并确保有正确的换行符。 3. **设置环境变量**: - 对于涉及到环境变量的命令,确保在你的脚本或批处理文件中正确地设置了它们。 4. **运行脚本**: - 在命令提示符中,使用 `chmod +x your_script.sh`(Unix/Linux)或 `your_script.bat` 来标记为可执行文件,然后运行它即可。 **相关问题--:** 1. 如何在 Postman 中查看当前的命令行帮助? 2. 是否可以在 Postman Collection 文件中嵌入命令? 3. 如果需要定期执行 Postman 命令,如何自动化这个过程?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值