首页 > 编程知识 正文

网络层 ICMP协议以及ping命令,ping命令测试网络

时间:2023-05-04 03:04:43 阅读:196086 作者:359

我们知道,IP协议提供的是尽力而为的服务。

IP协议的优点是简单,但缺少差错控制和查询机制。IP分组一旦发出去,是否到达主机,以及在传输的过程中出现哪些错误,源主机是不知道的。在这种情况下,如果出现一些问题,例如:路由器找不到目的主机,分组生存时间超过而必须被丢弃。

针对这些问题,设计了一种差错报告与查询、控制机制来了解信息,决定如何处理。ICMP协议就是为解决以上问题而设计的,ICMP的差错与查询、控制功能对于保证TCP/IP协议的可靠性运行时至关重要的。*ICMP协议是在网络层*的协议。

ICMP的特点 * ICMP协议是在网络层的协议,但是报文不是直接传送给数据链路层,而是封装成IP分组,然后再传送给数据链路层。* ICMP不能独立于IP协议而单独存在,是IP协议的一个组成部分。* ICMP只能搭配IPV4使用,如果是IPV6,需要使用的是ICMPv6. ICMP的功能 * 确认IP包是否成功到达目的地址;* 通知在发送过程中IP包被丢弃的原因; ICMP报文格式


ICMP报文分为两类:差错报告报文与询问报文

类型内容0回送应答3目标不可达4原点抑制5重定向或改变路由8回送请求9路由器公告10路由器请求11超时17地址子网请求18地址子网应答

以下几种情况不产生差错报告报文
(1)对于分片的分组,如果不是第一个分片出错,则不产生ICMP差错报文。
(2)多播分组出错,不产生ICMP差错报文。
(3)具有特殊地址(127.0.0.0或0.0.0.0)的分组出错,不产生ICMP差错报文。

ping命令(Packet Internet Gtoper,因特网控制消息协议)

ping后面跟的是域名,不是URL。

ping是Windows、Unix和Linux系统下的一个命令。也属于一个通信协议是TCP/IP的一部分,用于在IP主机、路由器之间传递控制信息

ping的作用 利用ping可以查看网络的连通性,更好的帮助我们分析和判断网络故障。ping发送一个ICMP,回声请求消息给目的地并报告是否收到所希望的ICMP echo(ICMP回声应答),是用来检测网络是否畅通或者网络连接速度的命令。ping也会统计响应时间和TTL(生存周期)。

在Windows下:

在Linux下:

ping命令通常用来作为网络可用性的检查。ping命令可以对一个网络地址发送测试数据包,看该网络地址是否有响应并统计响应时间,以此测试网络。

ping的原理

向指定的网络地址发送一个长度的数据包(ICMP Echo Request),按照约定,若指定网络地址存在,会返回同样大小的数据包(ICMP Echo Reply)。若没有返回,就是超时了,会认为指定的网络地址不存在。

ICMP协议通过IP协议发送的.

在Linux/Unix系统下,序号从0开始计数,依次递增。而Windows ping程序的ICMP是没有规律的。 ping和ICMP的关系

ping命令发送数据使用的是ICMP协议。

我们知道,telnet是23号端口,ssh是22号端口。那么,ping是什么端口呢?

谈到这句话,有的人可能就会懵了,ping是没有端口的,在网络层,端口号是传输层的内容,ping不使用TCP/UDP,跨过传输层,在网络层用的是ICMP协议,属于原生套接字,不需要端口号。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。