ICMP协议

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 [3]  它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。

从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件。

ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。

C#中使用Ping与PingReply类进行测试网络连接是否正常。

C#测试程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;namespace PingDemo
{class Program{static void Main(string[] args){Console.WriteLine("------------因特网控制消息协议(ICMP)用于判断网路连接状况------------");string ipAddress = "192.168.43.1";Ping ping = new Ping();try{PingReply pingReply = ping.Send(ipAddress);if (pingReply == null){Console.WriteLine($"与网络【{ipAddress}】通信失败,本机尝试连接,但返回空值");}else if (pingReply.Status == IPStatus.Success){Console.WriteLine("Ping命令成功,网络是通的");Console.WriteLine($"IP地址:【{pingReply.Address}】");Console.WriteLine($"接收到回复消息花费毫秒数:{pingReply.RoundtripTime}");Console.WriteLine($"TTL:【{pingReply.Options.Ttl}】,DontFragment:【{pingReply.Options.DontFragment}】");Console.WriteLine($"缓冲区数据长度【{pingReply.Buffer.Length}】:【{string.Join(",", pingReply.Buffer)}】");Console.WriteLine(Encoding.ASCII.GetString(pingReply.Buffer));}else{Console.WriteLine($"与网络【{ipAddress}】通信失败,请检查网络!状态:{pingReply.Status}");}}catch (Exception ex){Console.WriteLine($"Ping命令出现异常:【{ex.Message}】.\n异常类型:【{ex.GetType()}】");}Console.ReadLine();}}
}

运行效果:

C#Ping命令【因特网控制消息协议ICMP】相关推荐

  1. 禁止服务器的协议,电脑怎么阻止Internet控制消息协议ICMP?

    电脑完全阻止ICMP绝不是一个好主意,因为它是一个非常有用的协议.ping请求(回显)和超时数据包(由traceroute请求返回)等故障排除工具最好不要单独使用,否则解决简单的网络问题将是未来的噩梦 ...

  2. 因特网控制报文协议ICMP

    ICMP是TCP/IP协议族的一个IP层子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可用等网络本身的消息.这些控制消息虽然并不传输用户数据,但是对于用 ...

  3. 互联网协议 — ICMP 互联网控制消息协议

    目录 文章目录 目录 ICMP ICMPv4 协议栈 ICMPv4 的消息类型 Echo Request & Echo Reply Msg Destination Unreachable Ms ...

  4. ICMP (互联网控制消息协议 )是什么

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 互联网控制消息协议(英语:Internet Control Message Protocol,缩写: ...

  5. 网际控制报文协议icmp_网络中的ICMP(Internet控制消息协议)

    网际控制报文协议icmp ICMP(Internet控制消息协议)简介 (Introduction to ICMP (Internet Control Message Protocol)) IP (I ...

  6. Internet控制报文协议ICMP

    我们知道,互联网的网络层提供的是"best effort"尽力而为的服务,IP协议本身并没有任何可以帮助发方测试连接性能或者了解线路故障的机制.但是对于故障和错误的处理,是必不可少 ...

  7. 【计算机网络】湖科大微课堂笔记 p54-56 IPv4数据报的首部格式、网际控制报文协议ICMP、虚拟专用网VPN与网络地址转换NAT

    文章目录 IPv4数据报的首部格式 小结 一些例题 网际控制报文协议ICMP 小结 一些例题 虚拟专用网VPN与网络地址转换NAT 小结 IPv4数据报的首部格式 版本 首部长度.可选字段.填充字段 ...

  8. 计算机网络 网际控制报文协议 ICMP

    介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM ...

  9. 网际控制报文协议ICMP的应用——traceroute

    为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol). ICMP的应用举例 ICMP的一个重要应 ...

最新文章

  1. 使用C语言扩展Python(三)
  2. 提问与回答:全国大学生智能汽车竞赛的第十五届的7月中旬问答
  3. intellij idea的TFS拉取项目文件不完全、文件误删恢复、TFS忽略文件解决方法
  4. 使用隐式Intent打开系统内置拨号界面
  5. ASP.NET中的数据绑定:哪个更快? (转)
  6. JDK 15中的确切绝对整数
  7. 九龙擒庄指标源码破译_擒庄系列:庄家难逃该指标,散户屡试不爽的秘籍!(附公式)...
  8. 安装openstack(pike版本)nova节点,yum安装报错分析
  9. Redis笔记 -- 链表和链表节点的API函数(三)
  10. Object对象的内存布局学习总结
  11. php四则运算器,php实现简单四则运算器
  12. java开发微信支付接口_JAVA微信支付接口开发——支付
  13. 缝隙天线简介[搬运]
  14. [HR面试] 65个最常见的面试问题与技巧性答复
  15. Android之传感器(三)方向传感器
  16. Word上次启动失败,安全模式可以希助您解决问题,但是部分功能在此模式下可能不可用
  17. 关于scite文本编辑器的说明
  18. InputStream读JSON数据时乱码
  19. 小鹿妹眼中的三亚。告诉你怎么玩三亚
  20. hit@k 评价指标

热门文章

  1. Import Error: from torchtext.data import to_map_style_dataset解决方案
  2. HDU 1863畅通工程(最小生成树)(prim算法)
  3. 计算两个坐标点之间的点的坐标
  4. 玫琳凯宣布可持续发展战略:美力永续 提出2030年全球目标
  5. WPF 设置窗体圆角
  6. 如何删除wrod中多余的空白页
  7. 轻薄本+高性能+超续航:全新荣耀MagicBook 14发布
  8. jdbc mysql设置rewriteBatchedStatements参数实现高性能批量处理 executeBatch返回值问题
  9. Apache详解,并发数设置
  10. WIN7桌面右键菜单不消失问题解决方法