“ping”程序知多少

       最近阅读了《TCP/IP详解 卷1:协议》。作者对“TCP/IP协议族”进行了详细的介绍,让读者对因特网上运行的协议有了一个全面的了解。本书共三十章,协议的总数也很多,不失为一本很好的网络参考书。

       我们经常使用“ping”来测试网络的连通性,想必大家对“ping 127.0.0.1”不会感到陌生。本文对“ping”进行简单的介绍,具体请参见原书第7章。

1. 什么是“ping”?

        “ping”程序由Mike Muuss编写,目的是为了测试另一台主机是否可达。

        该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。它能测出到这台主机的往返时间,以表明该主机离我们有“多远”。此外,“ping”还能检测IP记录路由和时间戳选项。

2. “ping”的应用

        用“ping”程序作为诊断工具来深入剖析ICMP。ICMP回显请求和回显应答报文的格式如下表所示。


类型(0或8)


代码(0)


检验和


标识符


序号


选项数据

       将发送回显请求的“ping”程序称为客户,将被“ping”的主机称为服务器。“ping”程序可以运行在LAN、WAN、线路SLIP链路和拨号SLIP链路等上面。

        在局域网上面运行“ping”程序的结果输出包括:序列号和TTL,同时要计算往返时间。“ping”程序通过在ICMP报文数据中存放发送请求的时间值来计算往返时间。它还为我们提供了查看IP记录路由(RR)选项的机会。

3. 总结

       “ping”程序是对两个TCP/IP系统连通性进行测试的基本工具,它只利用ICMP回显请求和回显应答报文,而不用经过传输层。

       本文只对“ping”程序进行了粗略的说明,若想了解更多,请上网查询或阅读相关书籍。

时间: 2024-10-27 03:36:47

“ping”程序知多少的相关文章

网络编程 ping程序有点问题,求大神帮忙看看

问题描述 网络编程 ping程序有点问题,求大神帮忙看看 // ping.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include #pragma comment(lib,"ws2_32") //定义ICMP首部 typedef struct icmp_hdr{ unsigned char icmp_type; //ICMP消息类型,回显请求:8,回显应答请求:0 unsigned char icmp_code; //代码,

“Traceroute”程序知多少

       除了"ping"程序之外,我们也经常与"Traceroute"程序打交道.本文简单介绍"Traceroute",参考文献为<TCP/IP详解 卷1:协议>的第8章. 1. 什么是"Traceroute"?        "Traceroute"程序是由Van Jacobson编写,它可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由,它还可以让我们使用IP源路由选项. 2

C++实现ping程序实例_C 语言

本文实例讲述了C++实现ping程序的方法.分享给大家供大家参考.具体实现方法如下: 该实例涉及ICMP数据包的发送与回显,PING程序代码如下: 复制代码 代码如下: DWORD WINAPI ThreadProc(LPVOID lParam) {  CInitSock initSock;    HWND hWnd = (HWND)lParam; //从参数得到句柄  char szIp[64] ={0};  ::GetDlgItemTextA(hWnd, IDC_IP, szIp, size

一段国外的PING程序(C#)

程序     //**************************************    //         // Name: Ping .NET Class!    // Description:Ping a machine from .NET.    //     This code is CLR compliant.    // By: Carl Mercier    //    // Assumes:The code is a complete consol    //  

用C语言实现Ping程序功能

大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法.在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序. ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置. 例如,在Linux终端上执行ping localhost命令将会看到以下结果: PING localhost

国外站点上转过来的资料,模拟ping程序

namespace SaurabhPing{    using System;    using System.Net;    using System.Net.Sockets;    /// <summary>    ///        The Main Ping Class    /// </summary>    class Ping    {    //Declare some Constant Variables    const int SOCKET_ERROR =

微信小程序版的知乎日报开发实例_相关技巧

先看看效果图 开发环境准备 小程序 出来第二天就被破解,第三天微信就把开发工具开发下载了, 现在只需要下载 微信开发者工具 就可以使用了, 创建项目的时候,要选择无 appid, 这样就不会有 appid 的验证了. 目录结构      1.app.js 注册app逻辑, app.wxss 全局样式文件 app.json 配置信息      2.pages 存放页面文件      3.utils 工具类代码      4.images 图片资源文件 小程序中每一个页面都会有三个文件 .wxml

扯谈网络编程之自己实现ping

ping是基于ICMP(Internet Control Message Protocol)协议实现的,而ICMP协议是在IP层实现的. ping实际上是发起者发送一个Echo Request(type = 8)的,远程主机回应一个Echo Reply(type = 0)的过程. 为什么用ping不能测试某一个端口 刚开始接触网络的时候,可能很多人都有疑问,怎么用ping来测试远程主机的某个特定端口? 其实如果看下ICMP协议,就可以发现ICMP里根本没有端口这个概念,也就根本无法实现测试某一个

如何使用ping命令

ping无疑是网络中最频繁的小工具,它主要用于确定网络的连通性问题.Ping程序使用ICMP(网际消息控制协议)协议来简单地发送一个网络数据包并请求应答,接收到请求的目的主机再次使用ICMP发回相同的数据,于是ping便可对每个包的发送和接收时间进行报告,并报告无影响包的百分比,这在确定网络是否正确连接,以及网络连接的状况(包丢失率)十分有用.Ping是Windows操作系统集成的TCP/IP应用程序之一,可以在"开始-运行"中直接执行(如图1). 图1 Ping操作 (1)命令格式: