4.3-沛县欢乐多(DHCP,ARP,ICMP协议)
开头想说的话,这篇文章介绍DHCP,ARP,ICMP,用故事的方式给你讲述一些计算机网络原理,希望能够对你有所帮助,别担心,故事很有趣的,如果哪里不太合理,请qq我208820388一起讨论讨论。愿人生的路上,你我共勉~
文章目录
- 4.3-沛县欢乐多(DHCP,ARP,ICMP协议)
- 1.大人,请为我登记一个名字吧(DHCP协议)
- 2.樊屠狗,我来找你啦(ARP协议)
- 3.写信的门道道(ICMP协议)
- 章评:
自从帝国推广了“ IP+子网掩码”,沛县管理村民的方式也发生了变化,之前每个头头儿可有的属下人数时固定的,现在实行了 按玉识人,百姓们只要看到他们腰间的玉(子网掩码),就能推算出这个官员乌纱帽儿有多大,能管多少人了。
1.大人,请为我登记一个名字吧(DHCP协议)
DHCP的英文全称是Dynamic Host Configuration Protocol),该协议用来给一个电脑刚加入局域网,DHCP服务器会为他分配一个可用的IP。
沛县人口越来越多了,衙役们登记姓名(登记IP)的活儿也越来越重了,百姓们必须先有了名字,然后才能够和其他村民交流呀。而咱们这个衙门可就牛逼了,可是一个村的管理头头。。之一。新加入这个村子(局域网)的都需要到咱这里报个到,拿个名字才能在咱这里混。
老刘家生了个老三,喜事儿,暂时叫个刘三吧,毕竟还没有去衙门正儿八经的登记呢,平时别人问他,他也说不出什么话儿。这天刘爹刘娘,让刘三写了封信,给衙门老爷请求给个名字,这封信还有讲究呢。刘三儿还不能正常和别人说话,他就只能通过村口的广播来开始第一步了
- (刘三,广播)老爷老爷,我是刘三儿,我想要个名字。
主机广播DHCP发现报文 ---- “有没有DHCP服务器呀?”试图找到网络中的服务器,服务器获得一个IP地址。
- (老爷,广播)我是老爷,有有有,我看你骨骼清奇,不如就叫“季”,你要吗?
DHCP服务器广播DHCP提供报文---- "有!”“有!”“有!”服务器拟分配给主机一个IP地址及相关配置,先到先得。
- (刘三,广播)谢谢老爷,那我以后就叫刘季啦?
主机广播DHCP请求报文 —“我用你给我的IP地址啦?”主机向服务器请求提供IP地址。
- (老爷,广播)客气啥,用吧用吧
”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呢,就是比更为靠谱的一个识别码。
在村子里(局域网)怎么找到樊屠狗?
- 首先肯定是检查自己的电话本(ARP高速缓存,记录通信过的电脑的MAC),毕竟是第一次找嘛,肯定是没有的啦,要是是第二次刘季儿就直接在信上写上MAC啦
- 没有咋办?找大喇叭啊
(刘季,广播):樊屠狗,樊屠狗,这是我的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市在哪里。。直到你到了那个人所在的村,这不就找到了吗!你试试用身份证问人,哼!比较小的局域网还好,互联网怎么可能找得到呢
参考连接
- ICMP协议详解
- DHCP协议-主机如何从局域网中获取一个ip?
- 比较ping,tracert和pathping等命令之间的关系
- ARP是什么?ARP基础知识介绍