Ping程序】的更多相关文章

简单的实现了一个ping程序,没有做icmp差错报文的检查. 支持自定义字节数,支持发包个数 #pragma pack(4) #define ECHO_REQUEST 8 #define DATASIZE 65500 #define PACKETSIZE 65535 struct iphdr { unsigned ; //包头长度 unsigned ; //版本 unsigned char ip_tos; unsigned short ip_length; //总长度 unsigned shor…
控制报文协议(Internet Control Message Protocol) 定义 它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可用等网络本身的消息. 简介 ICMP报文就像是IP报文的小弟,总顶着IP报文的名头出来混.因为ICMP报文是在IP报文内部的,如图: IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)…
Ping程序: ping程序是通过发送一份ICMP回显请求报文(即ICMP报文的一种,其类型为8,代码为0)给主机,并等待返回ICMP回显应答 来测试另一台主机是否可达. ping程序不用经过传输层,ping服务器一般在内核中实现ICMP的功能. 书中介绍到可以利用ping程序的IP记录路由选项和IP时间戳选项 Traceroute程序(对应win下的tracert命令): 作用:可以跟踪IP数据报从一台主机传到另一台主机所经过的路由 原理: traceroute程序使用ICMP报文和IP首部中…
本文转载自:http://www.ibm.com/developerworks/cn/linux/network/ping/ ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置. 例如,在Linux终端上执行ping localhost命令将会看到以下结果: PING localhost.localdomain…
Ping程序的实现 在windows系统下进行cmd可以进行ping操作. ping命令是用来确定本地主机与网络中其他主机的网络通信情况,或者查看是否是为效IP. ping的工作原理:网络另一主机发送ICMP报文,通过返回信息判断网络连接状况.没有通过运输层的TCP或者UDP…
Ping程序 ping程序编写的目的是为了测试另外一台主机是否可达.程序发送的是一份ICMP回显请求报文给目的主机,并等待ICMP回显应答. 一般的TCP/IP实现都在内核中直接支持ping服务器——这种服务器不是一个用户进程,响应ICMP报文的是内核程序. Ping中的报文往返时间是如何计算的? ping程序在ICMP报文数据中存放发送请求时的时间值,在未来接收到该报文的回显时,用当前时间减去回显报文中之前保存过的时间,得到的就是往返时间值了. ping一个环回网址和ping主机的IP地址有什…
一.概述 Ping程序是对两个TCP/IP系统连通性进行测试的基本工具.该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. 二.格式 大多数TCP/IP实现都在内核中直接支持Ping服务器--这种服务器不是一个用户进程.  在Unix中,把ICMP的标识符字段设置为发送进程的ID号,这样子即使在同一台主机上同时运行了多个Ping程序实例,也能正确识别出返回的信息.…
ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置. 例如,在Linux终端上执行ping localhost命令将会看到以下结果: PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data. 64 bytes fro…
一开始想直接在上个程序改,自己构造IP包头,但后来发现不行,微软不让干了,所以后来选用libcap库来收发包 代码写的很乱.. #pragma pack(4) #define ECHO_REQUEST 8 #define DATASIZE 65500 #define PACKETSIZE 65535 #define IPCOUNT 9 #define MACSIZE 6 #define OPTION_RR 7 struct ethhdr { char mac_dst[MACSIZE]; char…
写这个的目的主要是为了以后的方便: 1.信号计时函数的使用 2.ip头的构建和icmp头的构建 3.selec函数t的用法 代码实现: /src/ping.h /* * ping.h * * Created on: 2015年11月6日 * Author: root */ #ifndef PING_H_ #define PING_H_ #endif /* PING_H_ */ #include <sys/types.h> #include <sys/select.h> #inclu…