三十二、ARP协议、DHCP协议、ICMP协议

简介: 三十二、ARP协议、DHCP协议、ICMP协议

1、发送数据的过程


五层网络结构数据发送的过程如下所示:8c1d90af738c48cf8ec982de05d5ce68.png

数据发送的请求由应用层进行发起,之后在传输层将应用层需要发送的数据进行数据报的分片操作(收到最大传输单元MTU的限制),之后网络层将每一份数据报添加源主机地址IP1和目的主机地址IP3,进行数据报的初步封装;之后数据链路层将网络层封装的数据报加头-源主机的物理地址MAC1和目的主机的物理地址MAC3,加尾-FCS(帧检验序列),将数据报进行二次封装;最后由物理层将封装好的数据报进行传输。


上述过程中,当源主机和目的主机在同一个局域网内部,则数据链路层在封装数据报的过程中,由于不知道目的主机的物理地址MAC3,所以需要借助ARP协议获取到MAC3,获取方式是通过广播ARP进行请求分组,之后目的主机采用单播ARP相应分组,返回给源主机MAC3。其中ARP高速缓存中有局域网内部的IP地址和MAC地址的映射关系。


a5f8e5ed3b68458aa3e9e679e8109edf.png



若源主机和目的主机不在同一个局域网范围之内,则源主机的“下一跳”将以局域网的默认网关为“目的地”,和上述叙述一样通过ARP协议获得默认网关的物理地址MAC6,之后首先将数据传送到默认网关。之后数据在路由器之间进行转发,直到数据转发到目的主机所在的局域网的路由器,之后MAC9对应的路由器会通过ARP协议获得目的主机的物理地址MAC5,之后成功将数据发送到目的主机。



2、ARP协议



由于在实际网络的链路上传送数据时,最终必须使用MAC地址,ARP协议就是用于完成主机或路由器IP地址到MAC地址映射,即解决下一跳走哪的问题。


2.1 ARP协议使用过程


检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一个局域网中所有主机都能收到该请求。目的主机收到请求之后就会向源主机单播衣蛾ARP相应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。




2.2 ARP协议4种典型情况


1) 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;


2) 主机A发给另一个网络的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;


3) 路由器发给本网络的主机A:用ARP协议找到主机A的硬件地址;


4) 路由器发给另一个网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。




3、DHCP协议



动态主机配置协议DHCP是应用层的协议,使用客户/服务器方式,客户端和服务端通过广播的方式进行交互,基于UDP。


DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址,子网掩码,默认网关,DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址重租。




3.1 DHCP使用过程


1) 主机广播DHCP发现报文,


2) DHCP服务器广播DHCP提供报文


3) 主机广播DHCP请求报文,没有被主机接受的DHCP服务器撤回刚刚提供的IP地址等配置


4) DHCP服务器广播DHCP确认报文




4、ICMP协议



TCP/IP协议栈示意图如下所示:


eab12367ff5f4a34880a376867cc6cba.png


ICMP的作用是为了更有效地转发IP数据报和提高交付成功的机会… …


ICMP协议支持主机或路由器:差错(或异常)报告,网络探询,通过发送特定的ICMP报文。ICMP报文的格式如下所示:


3c9a4b694b064beb9f772ff81ec29868.png


4.1 ICMP差错报告报文


1) 终点不可达:当路由器或者主机不能交付数据报时,就向源点发送终点不可达报文;无法交付


2) 源点抑制:当路由器或者主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点直到应当把数据报的发送速率放慢;拥塞丢数据


3) 时间超过:当路由器收到生存时间TTL=0的数据报时,除了丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先时间内不能收到一个数据报的全部数据片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文;TTL=0


4)参数问题: 当路由器或者目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文;首部字段有问题


5) 改变路由(重定向):当路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器-可以通过更好的路由。值得更好的路由


ICMP差错报告报文数据字段的格式如下所示:



ee3c1164ce2e42baa08c327105feabe7.png



不应发送ICMP差错报文的情况


1) 对ICMP差错报告报文不再发送ICMP差错报告报文;


2) 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文;


3) 对具有组播地址的数据报都不发送ICMP差错报告报文;


4) 对具有特殊地质(如127.0.0.0或者0.0.0.0)的数据报不发送ICMP差错报告报文



4.2 ICMP询问报文


1) 回送请求和回答报文:主机或者路由器向特定主机发出的询问,收到此报文的主机必须给源主机或者路由器发送你ICMP回送回答报文。测试目的站是否可达以及了解其相关状态;


2) 时间戳请求和回答报文:请某个主机或者路由器回答当前的日期和时间。用来进行时钟同步和测量时间。



5、ICMP的应用



Ping:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。


Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。









相关文章
|
1月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
2月前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
83 1
|
3月前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
|
3月前
|
网络协议 Unix 网络架构
网际控制报文协议ICMP
网际控制报文协议(ICMP)是TCP/IP体系结构中网际层的关键组件,用于提高IP数据报的成功传输率。ICMP主要处理两类报文:差错报告报文与询问报文。前者包括终点不可达、源点抑制、时间超过、参数问题及重定向等五类;后者则涵盖回送请求/回答及时间戳请求/回答。ICMP广泛应用于检测网络连通性的PING工具和追踪数据包路径的traceroute工具中。两者分别利用ICMP的回送请求报文及差错报告报文实现功能。
114 10
|
2月前
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
73 0
|
2月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
38 0
|
4月前
|
网络协议 网络架构
用户态协议栈03-icmp实现
用户态协议栈03-icmp实现
|
4月前
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现
|
4月前
|
缓存 网络协议
用户态协议栈02-arp reply实现
用户态协议栈02-arp reply实现
|
4月前
|
网络协议 安全 网络安全
ARP协议详解及其工作原理
【8月更文挑战第31天】
279 0