实验报告ping

合集下载

常用网络命令实验报告

常用网络命令实验报告

常用网络命令实验报告常用网络命令实验报告概述:网络命令是计算机网络中常用的一种工具,可以用于网络故障排查、网络配置和网络性能监测等方面。

本实验旨在通过实际操作,深入了解并掌握常用网络命令的使用方法和功能。

一、Ping命令:Ping命令是网络中最常用的命令之一,用于测试与目标主机之间的连通性。

通过向目标主机发送ICMP Echo请求,并等待目标主机的响应,可以判断网络是否通畅。

在实验中,我们使用Ping命令测试了目标主机的连通性,并观察到了Ping命令的输出结果。

二、Tracert命令:Tracert命令用于跟踪数据包在网络中的路径,可以帮助我们了解数据包在经过的每个路由器上的延迟情况。

在实验中,我们使用Tracert命令追踪了数据包的路径,并观察到了每个路由器的IP地址和延迟时间。

三、Ipconfig命令:Ipconfig命令用于查看和配置网络接口的IP地址、子网掩码、默认网关等信息。

在实验中,我们使用Ipconfig命令查看了本机的IP地址,并通过修改网络设置,成功配置了新的IP地址。

四、Netstat命令:Netstat命令用于显示网络连接、路由表和网络接口统计信息。

在实验中,我们使用Netstat命令查看了当前主机的网络连接状态,并观察到了与目标主机的连接信息。

五、Nslookup命令:Nslookup命令用于查询域名的IP地址和反向解析,可以帮助我们了解域名和IP地址之间的映射关系。

在实验中,我们使用Nslookup命令查询了一个域名的IP地址,并观察到了查询结果。

六、Telnet命令:Telnet命令用于远程登录到目标主机,并通过命令行界面进行操作。

在实验中,我们使用Telnet命令成功登录到目标主机,并执行了一些简单的命令。

七、Curl命令:Curl命令是一个功能强大的网络工具,可以用于发送HTTP请求、下载文件等。

在实验中,我们使用Curl命令发送了一个HTTP请求,并成功获取了服务器返回的响应。

计算机网络实验报告(Ping命令)

计算机网络实验报告(Ping命令)

〖实验项目名称〗:计算机网络基础〖实验目的〗:1、熟悉网卡、掌握如何在Windows下如何察看网卡的型号、MAC地址、IP地址等参数。

2、熟悉Windows中的网络组建及各参数的设置和基本意义。

3、网络测试命令PING的用法。

〖实验任务与要求〗:1、网卡是网络中不可缺少的网络设备,掌握其使用情况,及如何设置其参数对网络的正常使用非常重要。

本部分要完成以下任务:(1)利用Windows下ipconfig 命令查看网卡的基本参数。

(2)如何设置网卡的IP地址。

2、Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。

根据返回的信息,就可以推断TCP/IP参数是否设置得正确以及运行是否正常。

(1)Ping 本机IP(Ping 本机机器名;Ping 127.0.0.1)。

(2)Ping 邻近计算机的IP(或者是对方计算机的机器名)。

(3)Ping 网站(前题是能接入Internet)。

〖实验过程〗:(实验步骤、记录、数据、分析)1.Ipconfig的使用(1)、开始-运行,在弹出的对框框中,输入CMD将进入黑白屏幕的DOS界面。

(2)、在“命令提示符”下输入ipconfig/all查看本机网卡的基本参数。

(2)利用“网上邻居”修改网络参数。

(3)PING命令的使用ping 127.0.0.1ping 本机IPping localhostping 局域网内其他IP PING命令参数:-n:发送count指定的ECHO数据包数,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助。

能够测试发送数据包的返回平均时间,及时间的快慢程度。

默认值为 4。

-r:在“记录路由”字段中记录传出和返回数据包的路由。

通常情况下,发送的数据包是通过一系列路由才到达目标地址的,通过此参数可以设定,想探测经过路由的个数。

限定能跟踪到9个路由。

一般情况下,通过ping目标地址,可让对方返回TTL值的大小,通过TTL值可以粗略判断目标主机的系统类型是Windows还是UNIX/Linux,一般情况下Windows系统返回的TTL值在100-130之间,而UNIX/Linux系统返回的TTL值在240-255之间。

常见网络命令的使用实验报告

常见网络命令的使用实验报告

常见网络命令的使用实验报告一、实验目的了解和掌握常见网络命令的功能和使用方法,能够运用这些命令进行网络配置、故障排查和性能监测,提高对网络的管理和维护能力。

二、实验环境操作系统:Windows 10网络环境:连接到本地局域网和互联网三、实验内容及步骤(一)Ping 命令1、功能Ping 命令用于测试网络连接的可达性,通过向目标主机发送 ICMP (Internet Control Message Protocol,网际控制报文协议)回显请求数据包,并接收回显应答数据包来判断目标主机是否可达,以及网络延迟情况。

2、使用方法在命令提示符中输入“ping 目标主机的 IP 地址或域名”,例如“ping ”。

3、实验结果及分析执行 Ping 命令后,会显示一系列的统计信息,包括发送的数据包数量、接收的数据包数量、丢失的数据包数量以及往返时间的平均值、最小值和最大值。

如果所有数据包都成功接收,且往返时间较短,说明网络连接良好;如果有数据包丢失或往返时间较长,则可能存在网络延迟或丢包问题。

(二)Tracert 命令1、功能Tracert 命令用于跟踪数据包从本地主机到目标主机所经过的路径,并显示每个中间节点的 IP 地址和往返时间。

2、使用方法在命令提示符中输入“tracert 目标主机的 IP 地址或域名”,例如“tracert ”。

3、实验结果及分析执行 Tracert 命令后,会逐行显示数据包经过的每个路由器的 IP 地址和往返时间。

通过分析这些信息,可以确定网络中的故障点或延迟较大的节点,有助于排查网络连接问题。

(三)Ipconfig 命令1、功能Ipconfig 命令用于显示本地网络连接的配置信息,包括 IP 地址、子网掩码、默认网关等。

2、使用方法在命令提示符中输入“ipconfig”可显示基本信息,输入“ipconfig /all”可显示更详细的信息。

3、实验结果及分析通过查看 Ipconfig 命令的输出结果,可以了解本地网络连接的配置情况。

ping扫描实验

ping扫描实验

西北师范大学计算机科学与工程学院学生实验报告学号201671010139 专业网络与信息安全班级网络班姓名徐楠课程名称密码学课程设计课程类型必修课实验名称Ping扫描实验实验内容:使用以下参数的ping命令-t; -a; -n; -l; -i; -r实验原理:Ping是Windows和Linux都自带的一个扫描工具,用于校验与远程计算机或本机的连接。

只有在安装TCP/IP协议之后才能使用该命令。

Ping命令通过向计算机发送ICMP 回应报文并且监听回应验与远程计算机或本地计算机的连接。

对Ping最多等待1秒,并打印发送和接收的报文的数量。

比较每个接收报文和发送报文,以校验其有效性。

默认情况下,发送四个回应报文,每个报文包含64 字节的数据(周期性的大写字母序列)。

可以使用Ping程序测试计算机名和IP地址。

如果能够成功校验IP地址却不能成功校验计算机名,则说明名称解析存在问题。

这种情况下,要保证在本HOSTS文件中或DNS数据库中存在要查询的计算机名。

ping 的原理就是首先建立通道,然后发送包,对方接受后返回信息,这个包至少包括以下内容:发送的时候、包的内容包括对方的ip 地址、自己的地址、序列数。

回送的时候包括双方地址,还有时间等。

总的来说ping 的功能比较简单,只能确认目标主机的存活状态,而对于其上运行的服务和开放的端口无法查明。

参数说明:-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.-a Resolve addresses to hostnames.-n count Number of echo requests to send.-l size Send buffer size.-f Set Don't Fragment flag in packet.-i TTL Time To Live.-v TOS Type Of Service.-r count Record route for count hops.-s count Timestamp for count hops.-j host-list Loose source route along host-list.-k host-list Strict source route along host-list.-w timeout Timeout in milliseconds to wait for each reply.实验步骤:本机IP地址为172.20.1.178/16,Windows实验台IP地址为172.20.3.178/16。

计算机网络常用命令实验报告

计算机网络常用命令实验报告

计算机网络实验报告专业:计算机科学与技术系(班):计算机17-6姓名:魏士博(5011213617)课程名称:计算机网络实验项目:实验一常用网络命令指导老师:邬欢欢1、实验目的(1)掌握常用网络命令的使用方法;(2)熟悉和掌握网络管理、网络维护的基本内容和方法2、实验内容Windows环境下常用的网络命令的使用。

1.Ping 命令(1)Ping命令的格式如下:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list(2)通常用ping命令来测试某两台计算机之间是否连通:(3)利用ping命令测试网络状况的主要步骤如下:2.ipconfig命令该命令显示所有当前的 TCP/IP 网络配置值。

ipconfig命令格式如下:ipconfig [/? | /all | /release [adapter] | /renew [adapter]3.Arp命令该命令显示和修改“地址解析协议 (ARP)”缓存中的项目。

ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址。

计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。

如果在没有参数的情况下使用,则 arp 命令将显示帮助信息。

该命令格式如下:arp[-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]Net命令许多 Windows 2000 网络命令都以词 net 开头。

ping命令实验报告

ping命令实验报告

实验报告
实验步骤:
一、
1、关闭windows防火墙。

2、利用ping命令向几个站点发送信息,例如:“ping
192.168.31.127”。

3、使用命令提示符arp /a 显示ARP表项、出现结果即所有曾
有过联系的主机都会有显示。

二、使用命令提示符arp /d 删除记录,再次显示表项(arp /a),则arp
/a命令后,输出的结果为“No ARP Entries found”。

如图:
三、使用ping命令执行ping 出现
由于在机房ping 时出现的IP地址为61.135.169.125
所以,现在直接ping IP地址出现的结果为
使用arp /s将百度IP改错,则无法打开百度网页。

改回来后又可以重新登录百度网页。

四、利用arp /s命令增加一条错误的IP地址与MAC地址映射信息,再通
过ping命令判断该计算机是否能够正常发送信息。

PING实验报告

PING实验报告沈阳工程学院学生实验报告实验室名称:信息工程系软件实验室实验课程名称:计算机网络实验项目名称:icmp协议应用——ping解析班级:姓名:学号:实验日期:2012年04月28日实验台编号:23 指导教师:批阅教师(签字):成绩:篇二:网络编程实验_ping实验报告网络编程-ping程序设计实验指导书一.实验目的(1)熟悉原始套接字编程。

(2)了解网络的结构。

(3)了解网络传输底层协议。

二.实验要求ping程序是用于测试网络连通性的程序。

要求在windows环境下实现基本的ping程序功能.在命令提示符下输入:ping ***.***.***.*** 其中***为目的主机的ip地址,不要求支持域名,对是否带有开关变量也不做要求。

不带开关变量时,要求返回4次响应。

返回信息的格式:reply from ***.***.***.*** 或request timeout (无法ping通的情况)三.实验原理1、ping的工作原理ping 程序是用来探测主机到主机之间是否可通信,如果不能ping 到某台主机,表明不能和这台主机建立连接。

ping 使用的是icmp协议,它发送icmp 回送请求消息给目的主机。

icmp协议规定:目的主机必须返回icmp回送应答消息给源主机。

如果源主机在一定时间内收到应答,则认为主机可达。

icmp协议通过ip协议发送的,ip协议是一种无连接的,不可靠的数据包协议。

因此,保证数据送达的工作应该由其他的模块来完成。

其中一个重要的模块就是icmp(网络控制报文)协议。

当传送ip数据包发生错误--比如主机不可达,路由不可达等等,icmp协议将会把错误信息封包,然后传送回给主机。

给主机一个处理错误的机会,这也就是为什么说建立在ip层以上的协议是可能做到安全的原因。

icmp数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。

而前 16bit 就组成了icmp所要传递的信息。

计算机实验报告p ing命令检验两台计算机之间的网……

目录目录 (1)一、用p ing命令检验两台计算机之间的网络连通性,并分析结果。

(1)二、如何查看IP配置 (2)三、如何查看本机TCP/IP参数设置 (3)四、在局域网内通过设置网络共享,实现两台计算机之间的文件传递 (4)一、用p ing命令检验两台计算机之间的网络连通性,并分析结果。

1.用ping命令检验两台计算机之间的网络连通性,通常按一下顺序:(1)Ping127.0.0.1环回地址。

(一)显示上图(一),则表示ping通,那么TCP/IP协议安装,运行.如果ping不通,就表示TCP/IP 协议的安装或运行存在某些最基本的问题(2)Ping本地IP地址(二)出现上图(二),表示ping通,如果ping不通则表示本地配置或安装存在问题。

出现此文时,局域网用户可先断开网络电缆,然后重新发送该命令。

如果网线断块后该命令正确,则表示局域网内另一台计算机可能配置了相同的IP地址。

(3) Ping局域网内其他IP地址(三)该ping命令从用户计算机发出,经过网卡及网络电缆达到其他计算机,再返回。

收到应答即出现图(三)则表明本地网络IP地址和子网页吗正确。

目标主机可达。

二、如何查看IP配置首先需要进入命令提示符:单击开始—〉程序—〉附件—〉命令提示符(或者开始—〉运行—〉输入cmd然后回车),在窗口中输入ipconfig按回车键即可看到目前各个连接的IP地址,见图(四)。

默认网关等项目,如果需要更详细的信息(比如DNS地址,MAC地址),可以使用ipconfig /all,见图(五).(四)(五)三、如何查看本机TCP/IP参数设置右击桌面“网上邻居”图标,在弹出的快捷菜单中选择“属性”,打开“网络连接”窗口。

右击网卡所在“本地连接”图标,在弹出的快捷菜单中选择“属性”,打开如图(六)所示的“本地连接属性”对话框。

在“此地连接使用下列项目”列表框中“Internet协议(TCP/IP)”,双击或点击“属性”按钮,打开如图(七)所示的“Internet协议(TCP/IP)属性”对话框,即可查看本机TCP/IP参数设置。

#计算机网络安全实验报告六(ping)

遵义师范学院计算机和信息科学学院实验报告(2012—2013学年第一学期)课程名称:网络安全实验班级:计科一班学号:10410901036姓名:陈志军任课教师:蒲晓川计算机和信息科学学院《网络安全扫描》实验报告实验名称实验6-1 Ping主机扫描实验指导教师蒲晓川网络安全防实验类型实验学时 2 实验时间11.29范一、实验目的和要求1.了解和学习Ping命令扫描实现的基本原理。

2.学习和掌握Windows Ping命令的操作使用及其在主机扫描中的使用。

3.学习和掌握Ping扫描子网主机。

二、实验仪器和器材计算机一台Vmware虚拟机三、实验内容及步骤1、Windows Ping命令重要参数使用。

(1)设置发送Ping 探测报文的数量,发送ICMP报文数据包,检测当前网络状况,如图1.1所示:(2)连续发送ICMP探测报文1、通过使用“-t”参数实现连续发送ICMP探测报文。

如图1.2所示:图1.2 连续发送ICMP探测报文2、使用Ctrl+Break命令,查看ping统计信息。

如图1.3所示:图1.3 用Ctrl+Break命令查看ping统计信息3、使用Ctrl+C命令,可以结束发送ICMP Echo Request报文。

如图1.4所示:(3)配置Ping探测报文的TTL值,发送TTL值为1的ICMP报文。

如图1.5所示:(4)配置Ping探测报文大小。

如图1.6所示:(5)禁止对Ping探测报文分片。

如图1.7所示:(6)设置Ping命令的请求超时时间。

Ping命令的默认回应时间是1000毫秒,用“-w 时间值”参数可以修改回应时间。

如图1.8所示:图1.8设置Ping命令的超时等待时间2、利用Ping命令进行主机扫描(1)扫描内部实验网的目标主机。

如图2.1所示:图2.1 Ping目标主机扫描结果(2)、Ping外网测试。

如图2.2所示:图2.2 Ping师院教务处网站、(3)、Ping域名。

大学生ping命令实验心得

大学生ping命令实验心得一、实验目的1.掌握ping命令的基本用法,了解ping命令的原理。

2.学会使用ping命令进行网络故障排查和网络性能测试。

3.提高自己的网络编程能力,为以后的学习和工作打下基础。

二、实验内容1.ping命令的基本用法2.ping命令的原理3.ping命令的高级用法4.ping命令在网络故障排查和网络性能测试中的应用三、实验步骤1.ping命令的基本用法(1)查询本机IP地址在Windows系统中,打开命令提示符,输入“ipconfig”命令,回车,即可查看本机IP地址。

在Linux系统中,打开终端,输入“ifconfig”或“ipaddr”命令,回车,即可查看本机IP地址。

(2)查询目标主机IP地址在Windows系统中,打开命令提示符,输入“ping目标主机名”或“ping目标主机IP地址”,回车,即可查看目标主机IP地址。

在Linux系统中,打开终端,输入“ping目标主机名”或“ping目标主机IP地址”,回车,即可查看目标主机IP地址。

(3)测试网络连通性在Windows系统中,打开命令提示符,输入“ping目标主机名”或“ping目标主机IP地址”,回车,即可测试网络连通性。

在Linux系统中,打开终端,输入“ping目标主机名”或“ping目标主机IP地址”,回车,即可测试网络连通性。

2.ping命令的原理ping命令是网络诊断中最常用的一个工具,它通过发送ICMP报文并接收ICMP报文来检测网络的连通性。

当ping 命令发送一个ICMP报文给目标主机时,如果目标主机能够正常响应,说明网络是连通的;如果目标主机无法响应或者响应超时,说明网络可能存在问题。

ICMP(InternetControlMessageProtocol)是一种网络层协议,用于在IP主机、路由器之间传递控制消息。

ICMP报文可以分为两种类型:差错报告报文和查询报文。

其中,差错报告报文主要用于报告网络中的错误情况,如目的不可达、超时等;查询报文主要用于获取网络中的一些信息,如目的主机是否可达、路由是否通畅等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机与信息技术学院设计性实验报告(1)了解Linux下Socket通信的原理,了解ping程序的工作原理。

(2)了解基于原始套接字的编程方法;理解并掌握IP报头格式和ICMP报头格式。

(3)掌握常见协议,如IP、TCP报头的结构和各字段的功能;二、实验仪器或设备一台装有Linux操作系统的计算机。

三.总体设计(设计原理、设计方案及流程等)(1)设计原理:ping程序是用来探测主机到主机之间是否可通信,如果不能到某台主机,表明不能和这台主机建立连接。

使用的是ICMP协议,它发送请求消息给目的主机。

ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。

如果源主机在一定时间内收到应答,则认为主机可达。

ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。

因此,保证数据送达的工作应该由其他的模块来完成。

其中一个重要的模块就是ICMP(网络控制报文)协议。

ICMP数据报的数据发送前要经过两级封装:首先是添加ICMP报头形成ICMP IP报头形成IP数据报,如下图:ICMP数据报的格式如下:(2)、设计方案:1)PING利用ICMP协议包来侦测另一个主机是否可达。

原理是用类型码为0的ICMP发请求,收到请求的主机则用类型码为8的ICMP回应。

PING程序来计算间隔时间,并计算有多少个包被送达。

2)实验中用到的结构体:Struct timeval{Int tv_sec; //指定秒数Int tv_usec; //微秒数};Struct sockaddr_in{ //用来保存套接字地址信息Short int sin_family;Unsigned short int sin_port;Struct in_addr sin_adr;Unsigned char sin_zero[8];};Struct sockaddr{ //功能同上,用来保存套接字地址信息Unsigned short sa_family;Char sa_data[14];};Struct in_addr //定义32位IP地址{_u32 s_addr;};3)实验中用到的重要函数:a)设置套接字的属性setsockopt(int s,int level,int optname,void *optval,socklen_t *optlen) 其中参数s为一个套接字,参数level是进行套接字选项操作的层次,可以取通用套接字,IP层套接字,TCP层套接字,参数optname是套接字选项的名称。

参数optval是待设置的套接字选项的值,参数optlen是该选项的长度。

b)发送套接字函数int sendto(int s,const void * buf,int len,unsigned flags,const struct sockaddr *to ,int tolen)其中:s是传送数据的socket;Buf是缓冲器指针,用来存放要传送的信息;Len是Buf的大小;Flags一般为0;To为接收端网络地址;Tolen为接收端网络地址的长度;c)接收套接字函数int recvfrom(int s,const void * buf,int len,unsigned flags,const struct sockaddr * from ,int fromlen)参数意义同上d)地址转换函数char * inet_ntoa(struct in_addr in)将函数值为in的网络字节顺序形式的二进制IP地址转换成以“.”分隔的字符串形式,执行成功返回结果字符串指针,参数无效返回NULL(3)流程图:四.实验步骤(包括主要步骤、代码分析等)(1)ICMP报头校验和算法unsigned short cal_chksum(unsigned short *addr,int len){int nleft=len;int sum=0;unsigned short *w=addr;unsigned short answer=0;/*把ICMP报头二进制数据以2字节为单位累加起来*/while(nleft>1){sum+=*w++;nleft-=2;}/*若ICMP报头为奇数个字节,会剩下最后一字节。

把最后一个字节视为一个2字节数据的高字节,这个2字节数据的低字节为0,继续累加*/if( nleft==1){*(unsigned char *)(&answer)=*(unsigned char *)w;sum+=answer;}sum=(sum>>16)+(sum&0xffff);sum+=(sum>>16);answer=~sum;return answer;}(2)设置ICMP报头int pack(int pack_no){int i,packsize;struct icmp *icmp;struct timeval *tval;icmp=(struct icmp*)sendpacket;icmp->icmp_type=ICMP_ECHO;icmp->icmp_code=0;icmp->icmp_cksum=0;icmp->icmp_seq=pack_no;icmp->icmp_id=pid;packsize=8+datalen;tval= (struct timeval *)icmp->icmp_data;gettimeofday(tval,NULL); /*记录发送时间*/icmp->icmp_cksum=cal_chksum( (unsigned short *)icmp,packsize); /*校验算法*/ return packsize;}(3)发送三个ICMP报文void send_packet(){int packetsize;while( nsend<MAX_NO_PACKETS){nsend++;packetsize=pack(nsend); /*设置ICMP报头*/if( sendto(sockfd,sendpacket,packetsize,0,(struct sockaddr *)&dest_addr,sizeof(dest_addr) )<0 ){perror("sendto error");continue;}sleep(1); /*每隔一秒发送一个ICMP报文*/}}(4)剥去ICMP报头int unpack(char *buf,int len){int i,iphdrlen;struct ip *ip;struct icmp *icmp;struct timeval *tvsend;double rtt;ip=(struct ip *)buf;iphdrlen=ip->ip_hl<<2; /*求ip报头长度,即ip报头的长度标志乘4*/icmp=(struct icmp *)(buf+iphdrlen); /*越过ip报头,指向ICMP报头*/len-=iphdrlen; /*ICMP报头及ICMP数据报的总长度*/if( len< 8)/*小于ICMP报头长度则不合理*/{printf("ICMP packets\'s length is less than 8\n");return -1;}/*确保所接收的是我所发的的ICMP的回应*/if( (icmp->icmp_type==ICMP_ECHOREPLY) && (icmp->icmp_id==pid) ) {tvsend=(struct timeval *)icmp->icmp_data;tv_sub(&tvrecv,tvsend); /*接收和发送的时间差*/rtt=_sec*1000+_usec/1000; /*以毫秒为单位计算rtt*//*显示相关信息*/printf("%d byte from %s: icmp_seq=%u ttl=%d rtt=%.3f ms\n",len, inet_ntoa(from.sin_addr),icmp->icmp_seq, ip->ip_ttl, rtt);}else return -1;}(5)接收所有ICMP报文void recv_packet(){int n,fromlen;extern int errno;signal(SIGALRM,statistics);fromlen=sizeof(from);while( nreceived<nsend){ alarm(MAX_WAIT_TIME);if( (n=recvfrom(sockfd,recvpacket,sizeof(recvpacket),0,(struct sockaddr *)&from,&fromlen)) <0){if(errno==EINTR)continue;perror("recvfrom error");continue;}else printf("receive successful!\n");gettimeofday(&tvrecv,NULL); /*记录接收时间*/if(unpack(recvpacket,n)==-1)continue;nreceived++;}}(6)计算发送和接收数据报的时间差void tv_sub(struct timeval *out,struct timeval *in){if( (out->tv_usec-=in->tv_usec)<0){--out->tv_sec;out->tv_usec+=1000000;}out->tv_sec-=in->tv_sec;}(7)进行数据统计:void statistics(int signo){printf("\n--------------------PING statistics-------------------\n");printf("%d packets transmitted, %d received , %%%d lost\n",nsend,nreceived, (nsend-nreceived)/nsend*100);close(sockfd);exit(1);}五.结果分析与总结(1)实验总结:教师签名:年月日。

相关文档
最新文档