网络层(9) DHCP协议 ICMP协议

一、DHCP协议

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

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

  

  DHCP协议工作过程:

  (1)发现阶段:DHCP客户端在网络中广播Dhcpdiscover请求报文,用于发现DHCP服务器,请求IP地址租约。

  (2)提供阶段:DHCP服务器通过广播Dhcpoffer报文向DHCP客户端提供IP地址预分配。

  (3)选择阶段:DHCP客户端通过广播Dhcprequest报文确认选择一个DHCP服务器为它提供IP地址。

  (4)确认阶段:DHCP服务器通过广播DhcpACK报文把客户端请求的IP地址分配给用户,并更新租用信息。

 

  如果客户端检测到被分配的地址冲突,向服务器发送Dhcpdecline信息,拒绝使用该地址。

  当租期到50%时,客户端发Dhcprequest报文续约,如续约失败,87.5%再次续约,到期未完成续约,重新进行DHCP过程。

 

  注:

  DHCP租约默认为8天,当租期超过一半时(4天),DHCP客户端会向DHCP服务器续约,续约完成后还是8天,续约发送的报文是DHCPRequest,如要第一次续约失败,87.25%时再次续约;

  如果自动续约失败,DHCP获取失败会得到169.254.0.0/16的地址。  

   

  

  思科DHCP服务器回包是广播,华为DHCP服务器回包是单播

 

  DHCP中继的过程

    

  

 

二、ICMP协议

  Internet 控制消息协议 ICMP(Internet Control Message Protocol)是IP协议的辅助协议。 

  ICMP协议用来在网络设备间传递各种差错和控制信息,对于收信各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

    

  ICMP数据报结构:

  ICMP报文封装在IP数据报的数据部分进行传输。

    

  1、类型(8bit):指ICMP报文是哪种类型的。

  2、代码(8bit):代码用于区分某种类型的不同情况。

  3、检验和(16bit):用于检测整个ICMP报文

  4、由类型决定的(32bit):由类型字段决定。

  5、ICMP的数据部分(32bit):由类型字段决定。

 

  ICMP报文的两种类型,分别是ICMP差错报文、ICMP询问报文

  1、ICMP 五种差错报文

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

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

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

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

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

  

  

  ICMP差错数据报的结构:

    

 

  不发送ICMP差错报文的情况

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

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

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

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

  

  2、ICMP询问报文

  (1)回送请求和回答报文

    主机或路由器向特定目的的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。如PING命令,测试目的站是否可达以及了解其相关状态。

  (2)时间戳请求和回答报文

    请某个主机或路由器回答当前的日期和时间。主要用于进行时钟的同步。

  (3)掩码地址请求和回答报文

  (4)路由器询问和通告报文

 

  ICMP的应用

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

  Tracert命令,基于报文头中的TTL值来逐跳跟踪报文的转发路径。Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路。跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

  

posted @ 2021-07-02 21:56  PBDragon  阅读(87)  评论(0编辑  收藏  举报