计算机网络 ICMP与DHCP

目录

ICMP

辅助IP的ICMP

主要的ICMP消息

ICMP目标不可达消息(类型3)

ICMP重定向消息(类型5)

ICMP超时消息(类型11)

ICMP回送消息(类型0、8)

其他ICMP消息

ICMP原点抑制消息(类型4)

ICMP路由器探索消息(类型9、10)

ICMP地址掩码消息(类型17、18)

ICMPv6

ICMPv6的作用

邻居探索

DHCP

 DHCP实现即插即用

 DHCP的工作机制

DHCP中继代理


ICMP

辅助IP的ICMP

架构IP网络时需要特别注意两点:确认网络是否正常工作,以及遇到异常时 进行问题诊断。

例如,一个刚刚搭建好的网络,需要验证该网络的设置是否正确。此外, 为了确保网络能够按照预期正常工作,一旦遇到什么问题需要立即制止问题的蔓 延。为了减轻网络管理员的负担,这些都是必不可少的功能。

ICMP正是提供这类功能的一种协议。

ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程 当中IP包被废弃的具体原因,改善网络设置等。有了这些功能以后,就可以获得 网络是否正常、设置是否有误以及设备有何异常等信息,从而便于进行网络上的 问题诊断。

在IP通信中如果某个IP包因为某种原因未能达到目标地址,那么这个具体 的原因将由ICMP负责通知。主机A向主机B发送了数据包,由于某 种原因,途中的路由器2未能发现主机B的存在,这时,路由器2就会向主机A 发送一个ICMP包,说明发往主机B的包未能成功。

ICMP的这种通知消息会使用IP进行发送。因此,从路由器2返回的ICMP 包会按照往常的路由控制先经过路由器1再转发给主机A。收到该ICMP包的主机 A则分解ICMP的首部和数据域以后得知具体发生问题的原因。

ICMP的消息大致可以分为两类:一类是通知出错原因的错误消息,另一类是 用于诊断的查询消息

主要的ICMP消息

ICMP目标不可达消息(类型3)

IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标 不可达(Destination Unreachable Message)的ICMP消息,并在这个消息中显示不 可达的具体原因。

在实际通信当中经常会遇到的错误代码是1表示主机不可达{ Host Unreach­able), 它是指路由表中没有该主机的信息,或者该主机没有连接到网络的意思。 此外,错误代码4 { Fragmentation Needed and Don't Fragment was Set)则用于MTU探索。由此,根据ICMP不可达的具体消息,发送端主机 也就可以了解此次发送不可达的具体原因。

ICMP重定向消息(类型5)

如果路由器发现发送端主机使用了次优的路径发送数据,那么它会返回一个 ICMP重定向(ICMP Redirect Message)的消息给这个主机。在这个消息中包含了 最合适的路由信息和源数据。这主要发生在路由器持有更好的路由信息的情况下。 路由器会通过这样的ICMP消息给发送端主机一个更合适的发送路由。

不过,多数情况下由于这种重定向消息成为引发问题的原因,所以往往不进 行这种设置。

ICMP超时消息(类型11)

IP包中有一个字段叫做TTL (Time To Live, 生存周期),它的值随着每经过 一次路由器就会减1,直到减到0时该IP包会被丢弃。此时,IP路由器将会发 送一个ICMP超时的消息(ICMP Time Exceeded Message, 错误号0)给发送端主 机,并通知该包已被丢弃。

设置IP包生存周期的主要目的,是为了在路由控制遇到问题发生循环状况 时,避免IP包无休止地在网络上被转发。

此外,有时可以用TTL控制包的到达范 围,例如设置一个较小的TIL值。

ICMP回送消息(类型0、8)

用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达 对端的一种消息。可以向对端主机发送回送请求的消息(ICMP Echo Request Mes­sage, 类型8), 也可以接收对端主机发回来的回送应答消息(ICMP Echo Reply Message, 类型0)。

网络上最常用的ping命令,,就是利用这个消息实现的。

其他ICMP消息

ICMP原点抑制消息(类型4)

在使用低速广域线路的情况下,连接WAN的路由器可能会遇到网络拥堵的 问题。ICMP原点抑制消息的目的就是为了缓和这种拥堵情况。当路由器向低速线 路发送数据时,其发送队列的残存变为零而无法发送出去时,可以向IP包的源地 址发送一个ICMP原点抑制(ICMP Source Quench Message)消息。收到这个消息 的主机借此了解在整个线路的某一处发生了拥堵的情况,从而打开IP包的传输间 隔。然而,由于这种ICMP可能会引起不公平的网络通信,一般不被使用。

ICMP路由器探索消息(类型9、10)

主要用于发现与自己相连网络中的路由器。当一台主机发出ICMP路由器请 求(Router Solicitaion, 类型10)时,路由器则返回ICMP路由器公告消息 (Router Advertisement, 类型9)给主机。

ICMP地址掩码消息(类型17、18)

主要用于主机或路由器想要了解子网掩码的情况。可以向那些目标主机或路 由器发送ICMP地址掩码请求消息(ICMP Address Mask Request, 类型17), 然后 通过接收ICMP地址掩码应答消息(ICMP Address Mask Reply, 类型18)获取子 网掩码的信息。

ICMPv6

ICMPv6的作用

IPv4中ICMP仅作为一个辅助作用支持IPv4。也就是说,在IPv4时期,即使 没有ICMP, 仍然可以实现IP通信。然而,在IPv6中,ICMP的作用被扩大,如 果没有ICMPv6, IPv6就无法进行正常通信。

尤其在IPv6中,从IP地址定位MAC地址的协议从ARP转为ICMP的邻居探 索消息(Neighbor Discovery)。这种邻居探索消息融合了IPv4的ARP、ICMP重定 向以及ICMP路由器选择消息等功能于一体,甚至还提供自动设置IP地址的 功能。

ICMPv6中将ICMP大致分为两类:一类是错误消息,另一类是信息消息。类 型0~ 127属于错误消息,128~255属于信息消息。

邻居探索

ICMPv6中从类型133至类型137的消息叫做邻居探索消息。这种邻居探索消 息对于IPv6通信起着举足轻重的作用。

邻居请求消息用于查询IPv6的地址与 MAC地址的对应关系,并由邻居宣告消息得知MAC地址。(相当于ARP)

邻居请求消息利用 IPv6的多播地址实现传输。

此外,由于IPv6中实现了即插即用的功能,所以在没有DHCP服务器的环境 下也能实现IP地址的自动获取。

如果是一个没有路由器的网络,就使用MAC地 址作为链路本地单播地址

而在一个有路由器的网络环境中,可以从 路由器获得IPv6地址的前面部分,后面部分则由MAC地址进行设置。此时可以 利用路由器请求消息和路由器宣告消息进行设置。

DHCP

 DHCP实现即插即用

如果逐一为每一台主机设置IP地址会非常繁琐的事情。特别是在移动使用笔 记本电脑、智能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新 设置IP地址。

于是,为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP (Dynamic Host Configuration Protocol)协议。有了DHCP, 计算机只要连接到网络, 就可以进行TCP/IP通信。也就是说,DHCP让即插即用“变得可能。而DHCP不 仅在IPv4中,在IPv6中也可以使用。

 DHCP的工作机制

使用DHCP之前,首先要架设一台DHCP服务器。然后将DHCP所要分配的IP地址设置到服务器上。此外,还需要将相应的子网掩码、路由控制信息以及 . DNS服务器的地址等设置到服务器上。关于从DHCP中获取IP地址的流程,主要分为两个阶段。

使用DHCP时,如果DHCP服务器遇到故障,将导致无法自动分配IP地址, 从而也导致网段内所有主机之间无法进行TCP/IP通信。为了避免此类问题的发 生,通常人们会架设两台或两台以上的DHCP服务器。不过启动多个DHCP服务 器时,由于每个服务器内部都记录着IP地址分配情况的信息,因此可能会导致几 处分配的IP地址相互冲突。

为了检查所要分配的IP地址以及已经分配了的IP地址是否可用,DHCP服务 器或DHCP客户端必须具备以下功能:

 DHCP服务器

在分配IP地址前发送ICMP回送请求包,确认没有返回应答。

 DHCP客户端

针对从DHCP那里获得的IP地址发送ARP请求包,确认没有返回应答。

在获得IP地址之前做这种事先处理可能会耗一点时间,但是可以安全地进行 IP地址分配。

DHCP中继代理

家庭网络大多都只有一个以太网(无线LAN)的网段,与其连接的主机台数也不会太多。因此,只要有一台DHCP服务器就足以应对IP地址分配的需求,而·大多数情况下都由宽带路由器充当这个DHCP的角色。

相比之下,一个企业或学校等较大规模组织机构的网络环境当中,一般会有多个以太网(无线LAN)网段。在这种情况下,若要针对每个网段都设置DHCP服务器将会是个庞大的工程。即使路由器可以分担DHCP的功能,如果网络中有 不下100个路由器,就要为100个路由器设置它们各自可分配IP地址的范围,并 对这些范围进行后续的变更维护,这将是一个极其耗时和难于管理的工作。也 就是说将DHCP服务器分设到各个路由器上,于管理和运维都不是件有益的事。

因此,在这类网络环境中,往往需要将DHCP统一管理。具体方法可以使用 DHCP中继代理来实现。有了DHCP中继代理以后,对不同网段的IP地址分配也 可以由一个DHCP服务器统一进行管理和运维。

这种方法使得在每个网段架设一个DHCP服务器被取代,只需在每个网段设 置一个DHCP中继代理即可它可以设置DHCP服务器的IP地址,从而可以在 DHCP服务器上为每个网段注册IP地址的分配范围。

DHCP客户端会向DHCP中继代理发送DHCP请求包,而DHCP中继代理在 收到这个广播包以后再以单播的形式发给DHCP服务器。服务器端收到该包以后 再向DHCP中继代理返回应答,并由DHCP中继代理将此包转发给DHCP客户 端。由此,DHCP服务器即使不在同一个链路上也可以实现统一分配和管理IP 地址。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值