Ping课程设计报告

合集下载

计算机网络实验报告(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之间。

ping课程设计Linux

ping课程设计Linux

ping课程设计Linux一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握Linux操作系统的基本概念、命令和操作,了解Linux的历史和发展,理解开源软件的重要性。

2.技能目标:学生能够熟练使用Linux命令行界面,进行文件操作、权限设置、软件安装等基本操作,能够配置和管理Linux系统。

3.情感态度价值观目标:学生能够理解并尊重开源软件的版权和许可协议,培养良好的信息安全意识,能够合理使用计算机资源。

通过以上三个方面的教学,希望学生能够掌握Linux基本知识,提高计算机操作技能,增强信息安全意识,培养良好的职业道德和价值观。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Linux概述:介绍Linux操作系统的历史、发展和特点,理解开源软件的概念和意义。

2.Linux基本命令:学习Linux命令行界面的使用,掌握文件操作、目录切换、文本编辑等基本命令。

3.Linux文件权限:了解文件权限的概念和作用,学习使用权限设置和权限管理命令。

4.Linux软件管理:学习Linux系统的软件安装、升级和卸载,掌握软件包管理工具的使用。

5.Linux系统管理:学习Linux系统的用户管理、服务管理和系统监控,了解系统配置和优化方法。

6.Linux网络配置:掌握Linux系统的网络配置和网络管理,学习使用网络命令和工具。

7.Linux安全防护:了解Linux系统的安全防护措施,学习使用防火墙、病毒防护和数据备份等工具。

三、教学方法本课程的教学方法采用讲授法、讨论法、案例分析法和实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解和演示,系统地传授Linux操作系统的知识,帮助学生建立系统的知识结构。

2.讨论法:教师引导学生进行问题讨论和经验交流,培养学生的思考能力和团队协作能力。

3.案例分析法:教师通过分析实际案例,让学生了解Linux操作系统在实际应用中的方法和技巧。

ping实验报告1

ping实验报告1

学生实验报告学院:信息工程系课程名称: ping实验专业班级: XXX姓名: XXX学号: 1905010XX一、实验综述1、实验目的及要求实验目的:1.了解常用网络命令的工作原理 2.学会ping、ipconfig、traceRt、Netstat、ARP等常用命令 3.学会配置网络接口IP的属性(IP地址、子网掩码、默认网关)实验条件/要求:1.能够接入Internet的局域网 2.服务器端Windows2012的操作系统,客户机端Windows7操作系统2.实验环境装有cisco packet tracer student的电脑3、实验仪器、设备或软件命令提示符二、实验过程(实验步骤、记录、数据、分析)1.通过ping检测网络的连通情况和分析网络速度2.网络接口为自动获取IP地址方式,运行ipconfig命令查看自己正在使用的网络参数,包括:接口类型、IP 地址、子网掩码、默认网关、Mac地址、DNS服务器IP 地址等信息。

3.为网络接口配置IP地址、子网掩码、默认网关、DNS 服务器IP地址信息,观察可能带来什么问题。

注意:实验室的上网方式是通过校园网的,所以访问内访及学校网络之外的网络必须登入。

在本机上,如果按上边的设置好,会登入超时。

如果不是配置自动获取IP,当自己配置一个IP地址时候,有可能找不到正确的IP配置,那么就不会连上网路。

4.用ping命令查看网络的可连接性。

注意选择合适的访问对象及观察相关参数的影响,5.用tracerRT命令查看网络的可连接性。

注意选择合适的访问对象6.用ARP命令观察ARP调整缓存的变化情况,也可以用ARP-d或-s修改ARP调整缓存。

7.运行netstat命令查看主机的网络连接状态信息三、思考题1.IP地址、子网掩码默认网关、DNS服务器IP地址等设置的原则是什么?①一个主机的合法IP地址格式如下;<网络号.主机号>;子网掩码是一个32为IP地址②默认网关是主机所致向上一级网络设备的IP地址③子网掩码是根据你划分网段的大小而定的④DNS把域名转换成网络可以识别的IP地址2.网络命令可以查看一个域名对应的IP地址是什么?Ping、tracert命令可以查看3.如果一台主机不能上网,试分析可能的原因有哪些?①网线没有接好②网卡驱动没有配置③连接网络④IP地址、子网掩码,对应的默认网关没有正确配置⑤DNS服务出现问题、4.你的计算机平时能正常上网,某天突然不能上网了,你能否查出是什么原因造成的?通过ping命令来检查。

计算机网络课程设计(ping)

计算机网络课程设计(ping)

计算机网络课程设计Ping程序设计(后附源码)四川大学黄昊1143041195一.设计目标二.ICMP包结构三.校验和计算四.代码实现a)ICMP封包b)ICMP包转换成字节数组c)域名解析、选择IPv4地址d)原始套接口e)计算校验和五.运行结果六.总结一、设计目标本程序设计实现基本的ping程序功能,包括域名解析,ICMPv4回显包发送,统计丢失率等功能。

二、ICMP包结构ICMP包包含在IP包结构之内,是去除IP包头的部分,C#提供的Raw Socket功能可以实现包装ICMP结构,但自动包含IP包头等结构。

ICMP包由1Byte类型、1Byte SubCode、2字节校验和、2字节标示符、2字节序号,若干字节数据组成。

其结构图如下:4Byte类型号8 、子代码表示ICMP回显功能,默认标示符45、序号0、Data小节可填充数据,本程序填充了ASCII码‘a’十六进制61,填充24字节,所以整个包大小共32字节。

三、校验和计算对于ICMP包中的校验和,首先将校验和填0之后再整体计算。

计算时,按照2字节为一个单位累加,最后将所有溢出结果再次做加法,最后整体取反,返回一个2字节长的校验和。

具体计算方法伪代码如下:Int32 cksum = 0;for (int i = 0; i < 16; i++){cksum += ConvertToUInt16(packet, i * 2);}cksum = (cksum >> 16) + (cksum & 0xffff);cksum += (cksum >> 16);return (ushort)(~cksum);四、代码实现a)实现难度1:封装ICMP包。

为了方便操作与计算,在C#中,创建了一个ICMP包的结构体。

为了使包的逻辑结构与实际发送的结构一样,借助了C#提供的一个机制,叫非托管内存布局,使用StructLayoutAttribute属性,其中参数LayoutKind.Sequential指定了整个结构体的数据堆放方式为顺序堆放,保证内存中数据的连续性。

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。

ping的简单实现课程设计

ping的简单实现课程设计

ping的简单实现课程设计一、教学目标本课程的教学目标是使学生掌握ping命令的基本使用方法,理解其工作原理,能够通过ping命令诊断网络连接问题。

具体包括:1.了解ping命令的作用和基本语法。

2.掌握如何使用ping命令检测网络连接。

3.理解ping命令的响应结果的含义。

4.能够独立操作计算机,运行ping命令。

5.能够分析ping命令的输出结果,判断网络连接状态。

6.能够根据实际情况,选择合适的ping命令参数。

情感态度价值观目标:1.培养学生对网络通信技术的兴趣和好奇心。

2.培养学生解决问题的能力和团队合作精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.ping命令的基本概念和语法。

2.ping命令的使用方法,包括如何检测网络连接。

3.ping命令的响应结果的解读。

4.如何在实际情况下,选择合适的ping命令参数。

三、教学方法本课程的教学方法包括:1.讲授法:讲解ping命令的基本概念、语法和原理。

2.实验法:引导学生实际操作ping命令,检测网络连接。

3.讨论法:分组讨论ping命令的输出结果,培养学生解决问题的能力。

四、教学资源本课程的教学资源包括:1.教材:《计算机网络基础》相关章节。

2.多媒体资料:PPT课件,网络连接检测的实验视频。

3.实验设备:计算机、网络环境。

以上是本课程的教学设计,希望能够帮助学生更好地掌握ping命令的使用,提高网络故障排除的能力。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和理解能力。

2.作业:布置相关的ping命令练习题,要求学生独立完成,通过作业的质量和完成时间评估学生的掌握程度。

3.实验报告:学生在实验过程中,需要撰写实验报告,描述实验过程、结果和收获,通过实验报告评估学生的实际操作能力和问题解决能力。

Ping命令的模拟实现课程设计

Ping命令的模拟实现课程设计

课程设计IV课程设计设计说明书Ping命令模拟实现学生姓名学号班级成绩指导教师计算机科学与技术系2011年9月9日课程设计IV课程设计评阅书题目Ping命令模拟实现学生姓名学号指导教师评语及成绩成绩:教师签名:年月日答辩教师评语及成绩成绩:教师签名:年月日教研室意见总成绩:室主任签名:年月日注:指导教师成绩60%,答辩成绩40%,总成绩合成后按五级制记入。

课程设计任务书2011—2012学年第一学期专业:学号:姓名:课程设计名称:课程设计IV课程设计设计题目:Ping命令模拟实现完成期限:自2011 年8 月29 日至2011 年9 月9 日共 2 周设计依据、要求及主要内容(可另加附页):1. 了解并掌握ICMP协议。

2. 了解Ping命令的使用,其常用格式为Ping XXX.XXX.XXX.XXX。

3. Ping命令执行原理及实现步骤。

4. 模拟ping命令的实现过程。

5. 对此次课程设计的总结指导教师(签字):教研室主任(签字):批准日期:年月日摘要随着计算机技术及网络技术的迅速发展,个人、家庭或宿舍中拥有多台计算机已变得十分的普遍,将多台计算机组建成网络可以提高资源的利用率和协同工作的效率,所以网络技术无论在教学还是在现实生活中都变得异常的重要。

在实际学习中,由于资源设备的限制,提供完善的实验环境存在一定的难度,所以提供一种模拟的组建网络的平台具有很强的现实意义。

根据Ping命令的运行的运行原理,对他进行的模拟实现,相应的其他网检查网络状态命令。

关键词:计算机;网络;Ping目录一.课题内容 (5)1.1课程设计目的 (5)1.2课程设计要求 (5)1.3 实验步骤和注意事项 (5)二. Ping命令及ICMP协议简介 (6)2.1. Ping命令简介 (6)2.2.ICMP协议简介 (6)三.实现原理和步骤 (10)3.1.实现原理 (10)3.2.实现步骤 (10)3.3.注意事项 (13)总结 (14)参考文献: (15)1.课题内容1.1课程设计目的PING程序是我们使用的比较多的用于测试网络连通性的程序。

计算机网络ping实验报告

计算机网络ping实验报告

课程设计课程名称《计算机网络课程设计》题目名称____PING程序设计____ 学生学院____自动化学院____ 专业班级_________ 学号学生姓名_____________ 指导教师_____________200 9 年12 月30 日摘要本说明书主要包括了ping程序设计的设计目的、ping程序的工作原理以及设计方案,重点介绍了ping程序的源代码,并且附带了实验结果以及总结等。

关键字:ping 程序设计目录1 实验设计目的及要求 (3)1.1 设计目的 (3)1.2 设计要求 (3)2 实验内容 (3)2.1 定义数据结构 (3)2.2 程序实现 (3)2.3 程序要求 (3)3 ping工作原理及设计方案 (3)3.1 设计思路 (3)3.2 设计方案 (4)3.3 ping源程序 (4)4 实验结果 (7)5 总结 (7)6 参考文献 (7)1 实验设计目的及要求1.1设计目的PING程序是我们使用的比较多的用于测试网络连通性的程序。

PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。

由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。

课程设计中选取PING程序的设计,其目的是希望同学们通过PING程序的设计,能初步掌握TCP/IP网络协议的基本实现方法,对网络的实现机制有进一步的认识。

1.2设计要求RAW模式的SOCKET编程PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP 协议来工作。

为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。

熟悉SOCKET的编程,包括基本的系统调用如SOCKET、BIND等;2实验内容2.1定义数据结构需要定义好IP数据报、ICMP包等相关的数据结构;2.2程序实现在WINDOWS环境下实现PING程序;2.3程序要求在命令提示符下输入:PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ其中ΧΧΧ为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。

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所要传递的信息。

ping程序设计与实现课程设计

ping程序设计与实现课程设计

ping程序设计与实现课程设计一、课程目标知识目标:1. 学生能理解ping程序的工作原理,掌握网络诊断的基本方法。

2. 学生能描述IP协议、ICMP协议的基本概念及其在ping程序中的应用。

3. 学生了解计算机网络的通信原理,掌握如何利用ping程序检测网络连通性。

技能目标:1. 学生能运用所学知识,独立编写简单的ping程序。

2. 学生通过实践操作,提高问题分析及解决能力,具备基本的网络诊断技巧。

3. 学生掌握使用编程工具(如:IDE、编译器等)进行代码编写、调试和优化。

情感态度价值观目标:1. 学生培养对计算机网络的兴趣,激发学习编程的热情。

2. 学生在学习过程中,培养团队协作、沟通表达的能力,增强自信心。

3. 学生通过本课程的学习,认识到网络技术在实际应用中的重要性,培养对网络安全的责任感。

分析课程性质、学生特点和教学要求,本课程旨在让学生掌握ping程序的设计与实现,结合实际操作,提高学生的编程能力和网络诊断技巧。

课程目标具体、可衡量,有助于教师进行教学设计和评估。

通过本课程的学习,学生将具备基本的网络编程知识和技能,为今后的学习和工作打下坚实基础。

二、教学内容1. 网络基础知识回顾:IP协议、ICMP协议、网络层通信原理。

2. ping程序工作原理:发送ICMP请求、接收ICMP回复、计算往返时间(RTT)。

3. 编程语言基础:C语言或Python语言的基本语法,重点掌握数据类型、控制结构、函数定义。

4. ping程序设计与实现:- 环境搭建:安装编程工具、配置网络环境。

- 代码编写:根据ping程序工作原理,编写发送和接收ICMP请求的代码。

- 调试与优化:调试代码,处理异常情况,优化程序性能。

5. 实践操作:分组进行实际操作,组内讨论、分析问题,相互协作完成ping 程序编写。

6. 网络诊断技巧:运用ping程序检测网络连通性,分析网络延迟、丢包等问题。

教学内容安排和进度:第一课时:网络基础知识回顾,介绍ping程序工作原理。

ping命令的设计与实现

ping命令的设计与实现

设计报告课程计算机网络设计名称《ping命令的设计与实现》专业班级计科094 同组人姓名同组人学号实验日期2013-04-10 指导教师成绩2013 年 04 月 10 日设计目的和要求1、实验目的:Ping命令向目的主机发送ICMP ECHO—REQUEST请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。

2.实验要求:利用ICMP数据包,测试主机的连通性,通过课程设计,使学生熟悉ICMP报文结构,使学生对ICMP有更深的理解。

要求:输出参考系统自带ping程序,命令行运行:ping ip二、设计说明设计分析:使用原始套接字可以读写ICMP分组,利用原始套接字发送ICMP回显请求,并接收ICMP 回显应答,通过icmp_send()发送ICMP回显示请求包,icmp_recv()接收ping目的主机的回复,并使用终端信号处理函数SIGINT处理信号,建立两个线程,一个用于发送数据,另一个用于接收响应数据,主程序等待两个线程运行完毕后再进行下一步动作。

最后,主程序讲发送数据和接收的数据进行统计,并将结果打印出来。

系统运行环境:虚拟机:Fedora14(linux操作系统) gcc设计中的重点和难点:ICMP数据包的打包和解包,以及从CRC16校验算法的分析实现输入和输出条件:在linux系统下运行ping 在出现4个响应包后按Ctrl+c键停止发送。

三、系统详细设计《Ping命令的设计与实现》Ping命令向目的主机发送ICMP ECHO—REQUEST请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。

协议格式图1.1中已经对ICMP协议的报文格式进行了说明。

Ping 的客户端方式的类型为8,代码值为0,表示ICMP的回显请求。

类型为0,代码为0是,是ICMP回显应答。

检验和为16为的crc16 的算法。

0 7 8 15 16 31图1.1 ICMP报文的数据格式图1.2所示为ping所使用的类型和代码格式。

Ping 计算机网络课程设计.doc

Ping 计算机网络课程设计.doc

计算机网络课程设计报告设计名称 Ping程序的设计与实现专业班级同组人姓名指导教师成绩一、设计目的和要求1、实验目的利用ICMP数据包、C语言实现Ping命令程序,能实现基本的Ping操作,发送ICMP回显请求报文,用于测试—个主机到只一个主机之间的连通情况。

通过本程序的训练,使学生熟悉ICMP报文结构,使学生对ICMP有更深的理解,掌握Ping程序的设计方法,掌握网络编程的方法和技巧,从而编写出功能更强大的程序。

2、实验要求:输出参考系统自带ping程序,命令行运行:ping ip;二、设计说明1.设计思路由于Ping程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。

为了实现直接对IP和ICMP包进行操作,实验中使用RA W模式的socket编程。

首先定义IP数据报首部,在IP数据报的基础上定义ICMP数据报首部,并初始化一些全局变量。

接着自定义填充ICMP数据报字段函数FillICMPData()、校验和函数checksum()、解读ICMP报首部函数DecodeICMPHeader()、释放资源函Cleanup()。

最后主函数通过调用这些函数来实现Ping命令功能。

2.设计方案IP头与ICMP头的设置分别参照RFC791及RFC792的标准,包含所有必要信息。

主程序设置main()函数,主函数用库函数实现套接字编程用于数据包发送及接收,其中,数据包发送调用sendto(),数据包接收调用recvfrom( ),由于发送数据包时可能会遇到阻塞或者目标主机不通,造成超时,因此需要在发送数据包后调用一个函数判断是否超时,此处调用库函数setsockopt()来实现超时判断;其次,校验和函数采用移位方法进行计算。

3. 系统运行环境:VC++ 6.0,Window XP操作系统平台4. 设计中的难点和重点首先遇到的问题就是套接字文件的问题。

套接字所需要的文件有头文件Winsocket2.h、库文件WS2_32.LIB、动态库W32_32.DLL。

计算机网络ping命令实验报告

计算机网络ping命令实验报告

课程实验报告
实验课程网络及其计算实验
实验名称 ping命令实验
实验地点
实验时间
学生班级
学生学号
学生姓名
XXXX年 XX 月 XX 日
实验目的:
(1)掌握ping命令及常用参数的用法。

实验器材:
一台连网的Windows操作系统的PC机。

实验内容:
使用ping命令及各常用参数去ping一些站点,观察并分析结果。

实验结果(附数据和图表):
打开运行窗口,快捷键windows键+R,输入cmd
ping命令
1.输入ping /?(得到ping命令使用方法)
2.ping+网址
3.ping -t +网址Ctrl+C时停止
4.ping -n count 衡量网络速度
5.ping -l size
实验结果分析及结论:
Ping命令基于ICMP协议,在源站点执行,向目的站点发送ICMP回送请求报文,目的站点在收到报文后向源站点返回ICMP回送回答报文,源站点把返回的结果信息显示出来。

该命令用于测试站点之间是否可达,若可达,则可进一步判断双方的通信质量包括稳定性等。

实验心得体会和建议:
通过本次实验简单的了解了ping命令的使用方法以及地址问题,注意到网络之间的安全性,对网络有了更深刻的认识。

在解决实验中发生的问题时,更让人具有成就感和继续学习的渴望。

实验评价及结论:
实验指导老师签字:年月日。

ping程序的设计实现分析范文

ping程序的设计实现分析范文

滁州学院课程设计报告课程名称:计算机网络课程设计设计题目:ping程序的设计与实现系别:计算机与信息工程学院专业:计算科学与技术组别:第五小组起止日期:2011年12月1日~2011年12月8日指导教师:计算机科学与技术系二○一一年制课程设计任务书一.Ping 程序运行原理在网络层,除了IP协议之外,还有一些控制协议,如ICMP,ARP, DHCP等。

1.ping的基础知识原始套接字原始套接字是允许访问底层传输协议的一种套接字类型。

使用原始套接字操作IP数据报,可以进行路由跟踪,Ping等。

另外,使用原始套接字需要知道许多下层协议结构的知识,所以下面讨论ICMP,IP, UDP, TCP格式。

原始套接字有两种类型,第一种类型是在IP头种使用预定义的协议,如ICMP;第二种类型是在IP头种使用自定义的协议。

下面使用创建原始套接字的方法。

创建套接字的函数是socket()或者WSASocket(),只不过要将套接字类型指定为SOCK_RAW,代码如下:SOCKET sraw = ::socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);创建原始套接字时socket函数的第三个参数protocol值将成为IP头中得协议域的值。

IPPROTO_ICMP指定要使用ICMP。

原始套解释提供管理下层传输的能力。

他们可能会被恶意利用,因此,仅Administrator组的成员能够创建SOCK_RAW类型的套接字。

任何人在Windows NT下都可以创建原始套接字,但是没有Administrator权限的人不能用它来做任何事情,因为bind函数将会失败,出错码WSAEACCES..在上面的套接字创建代码种,我们使用ICMP,也可以使用IIGMP, UDP, IP或者原始IP,对应的宏定义分别是IPPROTO_IGMP, IPROTO_UDP, IPPROTO_IP或者IPPROTO_RAW。

各种命令ping的实验报告

各种命令ping的实验报告

各种命令ping的实验报告实验报告:各种命令ping的实验一、实验目的本实验旨在通过对不同命令ping的使用进行实验,了解并比较各种命令ping 的功能和使用方法,深入了解网络通信中的ping操作。

二、实验原理Ping是一种用于检测网络连接是否正常的工具,它通过发送ICMP回显请求报文到目标IP地址,并等待目标返回ICMP回显应答报文,从而判断网络连接是否正常。

Ping命令一般用于测试网络的连通性、测量网络延迟和丢包率等。

三、实验内容1. 常用命令pinga. 在命令提示符窗口中输入ping命令,后跟目标IP地址或域名,例如:ping 。

b. 默认情况下,ping命令会发送4个ICMP回显请求报文,并等待每个请求的回应。

实验中可以通过参数“-n”来指定发送的请求报文数量,例如:ping -n10 。

c. ping命令默认情况下会一直发送ICMP回显请求报文直到手动停止。

可以通过参数“-w”来指定等待回应的超时时间,例如:ping -w 2000 。

d. ping命令默认情况下会显示每个ICMP回显请求报文的往返时间,可以通过参数“-t”来持续显示往返时间,例如:ping -t 。

2. 扩展命令pinga. ping命令还有一些扩展命令可以使用,例如:ping -a ,该命令可以显示目标IP地址对应的主机名。

b. ping命令还可以通过参数“-l”来指定发送的ICMP回显请求报文的数据长度,例如:ping -l 1000 。

c. ping命令还可以通过参数“-f”来设置“不分段”标志,从而可以测试网络是否支持传输大的数据包,例如:ping -f -l 1472 。

四、实验步骤1. 打开命令提示符窗口。

2. 输入常用命令ping,后跟目标IP地址或域名,例如:ping 。

3. 分别尝试常用命令ping的不同参数,观察结果。

4. 输入扩展命令ping,观察结果。

五、实验结果1. 使用常用命令ping可以检测目标IP地址或域名的连通性,并测量网络延迟和丢包率等信息。

Ping程序设计代码及报告

Ping程序设计代码及报告

实验报告
课程计算机网络课程设计实验名称Ping程序的设计与实现专业班级08级信管(2)班
姓名
学号**********
实验日期2011年11月8日
System.gc();
end=System.currentTimeMillis();
}
public long duration()//计算响应时间的方法
{
return(end-start);
}
public void reset()//重置开始和结束时间
{
start=0; end=0;
}
}
四. 视图如下:
五.实验总结
通过这次实验, 我掌握了Java网络编程中对应的相关基础知识, 知道了ICMP协议以及跟踪运行Java网络包了解网络编程实现的细节问题, 并了解了Ping命令的功能。

我认识了ping 作为一种通信命令, 是IP协议的一部分, 利用他可以检查网络是否能够连通, 它也可以帮助我们分析网络故障。

通过这次实验,我掌握了Java网络编程中对应的相关基础知识,知道了ICMP 协议以及跟踪运行Java网络包了解网络编程实现的细节问题,并了解了Ping命令的功能。

我认识了ping作为一种通信命令,是IP协议的一部分,利用他可以检查网络是否能够连通,它也可以帮助我们分析网络故障。

ping的实现课程设计

ping的实现课程设计

ping的实现 课程设计一、课程目标知识目标:1. 理解ping命令的基本工作原理,掌握其网络诊断功能;2. 学习并掌握使用ping命令检测网络连通性的方法;3. 了解ping命令的参数设置及其作用。

技能目标:1. 学会运用ping命令进行简单的网络故障排查;2. 能够通过ping命令的结果,分析网络延迟、丢包等问题;3. 培养学生对网络故障的敏感度,提高解决问题的能力。

情感态度价值观目标:1. 培养学生对计算机网络知识的兴趣,激发探索精神;2. 培养学生团队合作意识,学会在网络环境中与他人共同解决问题;3. 强化网络安全意识,让学生明白网络诊断工具的正确使用方法。

课程性质:本课程为计算机网络基础课程,旨在帮助学生掌握网络诊断的基本方法,提高实际操作能力。

学生特点:学生为初中年级,对计算机网络知识有一定的了解,具备基本的计算机操作能力。

教学要求:通过本章节的学习,要求学生能够熟练运用ping命令进行网络诊断,并具备一定的网络故障排查能力。

将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容1. 理论知识:- 计算机网络基础知识回顾,重点强调TCP/IP协议;- ping命令的工作原理,介绍ICMP协议的作用;- ping命令的参数及其功能解释,如:-t、-a、-n、-l等。

2. 实践操作:- 演示如何使用ping命令检测网络连通性;- 指导学生使用ping命令检测本地网络中的设备;- 实践案例:分析ping命令返回结果,判断网络延迟、丢包等问题。

3. 教学大纲:- 第一课时:计算机网络知识回顾,介绍ping命令及其工作原理;- 第二课时:ping命令的参数介绍,演示如何使用ping命令;- 第三课时:实践操作,学生分组进行网络诊断,分析ping命令结果;- 第四课时:总结与拓展,讨论网络故障排查的其他方法,强化网络安全意识。

教材关联:教学内容与课本第三章“网络诊断与故障排除”相关,结合课本案例,使学生更好地掌握网络诊断技巧。

ping实验报告

ping实验报告
实验报告
学生姓名
学号:
一、实验室名称:
二、实验项目名称:基于ICMP协议的ping程序
三、实验原理:
ping程序使用ICMP协议实现。首先Ping向目标发送一个ICMP响应-请求(type=8),当目标主机得到请求后,返回ICMP响应-应答,根据返实验目的:
1)理解ICMP协议
2)了解IP协议
3)了解ping程序的功能
五、实验内容:
六、实验器材(设备、元器件):
PC机、可利用的程序运行网络环境(可自己搭建,也可直接连接internet)。
七、实验结论:
通过使用ping程序,向目标主机发送一个icmp请求后,主机得到相应,切根据返回的信息判断了目标主机的存在
八、总结及心得体会:
对ICMP协议与IP协议定义有了进一步的理解认识
且了解了ping程序的功能,且能熟练使用ping程序
九、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计课程名称_计算机网络题目名称_PING程序设计2012年12月25日摘要为了深入理解并全面掌握ping命令的使用,以下结合ping程序的原理对其功能进行了深入探讨.由此可见Internet中的某台主机能ping通并不能肯定该主机就能被访问,而ping不通也并不意味着就不能被访问,同时也发现ping命令对网络也存在一些安全隐患.在Window 系统下使用Win32进行网络编程实现采用WSA通过IP/ICMP进行实现Ping目的主机的功能。

使用VisualStudio2008控制台进行建立的工程,使用Window Socket API 2版本。

自己定义IP、ICMP结构体,建立目的地址和原始套接字,调用Win32库函数进行发送、接收数据包。

采用ICMP的时间截请求和回答差错报文。

本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,以及考虑到运行中会出现的一些异常处理。

关键词:Window网络编程,Socket,TCP/IP,ICMP报文目录一、实验目的 (1)二、实验内容和要求 (2)1、RAW模式的SOCKET编程 (3)2、具体内容 (3)三、实验主要仪器设备和材料 (3)四、实验方法及原理 (3)1. ICMP报文组成结构: (3)2. RAW模式的SOCKET编程实现Ping的具体原理 (4)2. 1创建原始套接字 (4)2.2设置套接字选项 (5)2.3创建并填充相应协议头 (5)五、实验流程图 (6)六、实验具体步骤 (6)1. 定义IP结构体 (7)2. 定义ICMP结构体 (7)3. 定义目的地址 (7)4. 定义原始套接字 (7)5. 发送数据包 (7)6. 接收数据包 (7)7. 解析数据包 (8)8. 校验和的实现 (8)9. 打印相关信息 (8)10. 循环工作实现块 (8)11. 信息统计 (8)12. 相关异常处理 (9)13. 相关引用到的头文件及宏 (11)七、实验测试结果以及使用说明 (111)八、参考文献 (123)九、附录:源代码 (134)一、实验目的PING程序是我们使用的比较多的用于测试网络连通性的程序。

PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。

由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。

课程设计中选取PING程序的设计,其目的是希望同学们通过PING程序的设计,能初步掌握TCP/IP网络协议的基本实现方法,对网络的实现机制有进一步的认识。

二、实验内容和要求1、RAW模式的SOCKET编程PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP 协议来工作。

为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。

熟悉SOCKET的编程,包括基本的系统调用如SOCKET、BIND等;2、具体内容1)定义数据结构需要定义好IP数据报、ICMP包等相关的数据结构;2)程序实现在WINDOWS环境下实现PING程序;3)程序要求在命令提示符下输入:PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ其中ΧΧΧ为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。

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

返回信息的格式:REPL Y FROM ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ或REQUEST TimeOut (无法PING通的情况)。

三、实验主要仪器设备和材料联网Win7操作系统计算机、VisualStudio2008 Win32控制台程序四、实验方法及原理ping的原理: Ping命令的主要作用是检测网络上主机的状态。

要是在几年前,我们还可以下如此断言,如果不能Ping通某台主机,那么也就无法Telnet或者FTP到这台主机,但随着互联网的安全意识的增加,出现了访问控制清单的路由器和防火墙,由于ICMP报文是在IP数据包中被传输的,而到达一台主机不仅取决于IP层是否到达,还取决于使用何种协议和端口。

譬如金山公司的金山网镖就可以禁止其他机器Ping通这台主机。

所以在现在的情况下,即时Ping不通某台机器,但也有可能FTP登陆到这台机器,或者通过HTTP来浏览这台机器上的Web页面1.ICMP报文组成结构:在网络中,一般用ICMP来传递差错报文以及其他应注意的信息.ICMP一般被认为是和IP协议同一层的协议,IMCP报文通常被IP层或者更高层的协议(如:TCP或者UDP)使用,ICMP对于互联网以及其他基于IP协议的网络的正常运行起着非常重要的作用.有许多重要的网络程序都是基于ICMP协议上的,最为著名如Ping和Tracert等.2.RAW模式的SOCKET编程实现Ping的具体原理其中PING程序设计使用了RAW模式的SOCKET编程,程序使用ICMP的封装机制,通过IP协议来工作。

2.1创建原始套接字要使用原始套接字,必须经过创建原始套接字、设置套接字选项和创建并填充相应协议头这三个步骤,然后用send、WSASend函数将组装好的数据发送出去。

接收的过程也很相似,只是需要用recv或WSARecv函数接收数据。

我们可以用socket或WSASocket函数来创建原始套接字,因为原始套接字能直接控制底层协议,因此只有属于“管理员”组的成员,才有权创建原始套接字。

下面是用socket函数创建原始套接字的代码。

SOCKET sock;Sock=socket (AF_INET, SOCK_RAW, IPPROTO_UDP);上述创建原始套接字的代码使用的是UDP协议,如果要使用其它的协议,比如ICMP、IGMP、IP等协议,只需要把相应的参数改为IPPROTO_ICM、IPPROTO_ IGMP、IPPROTO_IP就可以了。

另外,IPPROTO_UDP、IPPROTO_IP、IPPROTO_RAW 这几个协议标志要求使用套接字选项IP_HDRINCL,而目前只有Windows 2000和Windows XP提供了对IP_HDRINCL的支持,这意味着在Windows 2000以下平台创建原始套接字时是不能使用IP、UDP、TCP协议的。

2.2设置套接字选项创建了原始套接字后,就要设置套接字选项,这要通过setsocketopt函数来实现,setsocketopt函数的声明如下:int setsocketopt (SOCKET s,int level,int optname,const char FAR *optval,int optlen );在该声明中,参数s是标识套接口的描述字,要注意的是选项对这个套接字必须是有效的。

参数Level表明选项定义的层次,对TCP/IP协议族而言,支持SOL_SOCKET、IPPROTO_IP和IPPROTO_CP层次。

参数Optname是需要设置的选项名,这些选项名是在Winsock头文件内定义的常数值。

参数optval是一个指针,它指向存放选项值的缓冲区。

参数optlen指示optval缓冲区的长度2.3创建并填充相应协议头这一步就是创建IP和TCP协议头的数据结构,根据相关协议的定义进行编写即可,下面是一个TCP协议头的数据结构。

发送接收数据包的实现原理:Sendto()-使用指定的 SocketFlags,将指定字节数的数据发送到指定的终结点。

适用于已连接的数据报或流式套接口发送数据。

对于数据报类套接口,必需注意发送数据长度不应超过通讯子网的IP包最大长度。

IP包最大长度在WSAStartup()调用返回的WSAData的iMaxUdpDg元素中。

如果数据太长无法自动通过下层协议,则返回WSAEMSGSIZE错误,数据不会被发送。

请注意成功地完成sendto()调用并不意味着数据传送到达。

endto()函数主要用于SOCK_DGRAM类型套接口向to参数指定端的套接口发送数据报。

对于SOCK_STREAM类型套接口,to和tolen参数被忽略;这种情况下sendto()等价于send()。

为了发送广播数据(仅适用于SOCK_DGRAM),in参数所含地址应该把特定的IP地址INADDR_BROADCAST(winsock.h中有定义)和终端地址结合起来构造。

通常建议一个广播数据报的大小不要大到以致产生碎片,也就是说数据报的数据部分(包括头)不超过512字节。

如果传送系统的缓冲区空间不够保存需传送的数据,除非套接口处于非阻塞I/O方式,否则sendto()将阻塞。

对于非阻塞SOCK_STREAM 类型的套接口,实际写的数据数目可能在1到所需大小之间,其值取决于本地和远端主机的缓冲区大小。

可用select()调用来确定何时能够进一步发送数据。

Recvfrom()-接收一个数据报并保存源地址。

对于SOCK_STREAM类型的套接口,最多可接收缓冲区大小个数据。

如果套接口被设置为线内接收带外数据(选项为SO_OOBINLINE),且有带外数据未读入,则返回带外数据。

应用程序可通过调用ioctlsocket()的SOCATMARK命令来确定是否有带外数据待读入。

对于SOCK_STREAM类型套接口,忽略from和fromlen参数。

对于数据报类套接口,队列中第一个数据报中的数据被解包,但最多不超过缓冲区的大小。

如果数据报大于缓冲区,那么缓冲区中只有数据报的前面部分,其他的数据都丢失了,并且recvfrom()函数返回WSAEMSGSIZE错误。

若from非零,且套接口为SOCK_DGRAM 类型,则发送数据源的地址被复制到相应的sockaddr结构中。

fromlen所指向的值初始化时为这个结构的大小,当调用返回时按实际地址所占的空间进行修改。

如果没有数据待读,那么除非是非阻塞模式,不然的话套接口将一直等待数据的到来,此时将返回SOCKET_ERROR错误,错误代码是WSAEWOULDBLOCK。

用select()或WSAAsynSelect()可以获知何时数据到达。

如果套接口为SOCK_STREAM类型,并且远端“优雅”地中止了连接,那么recvfrom()一个数据也不读取,立即返回。

如果立即被强制中止,那么recv()将以WSAECONNRESET 错误失败返回。

五、实验流程图--另付图六、实验具体步骤1.定义IP结构体//IP格式typedef struct iph{UCHAR iph_VerLen;//版本-4byteUCHAR ip_TOS;//区分服务-8byteUSHORT ip_Length;//首部长度-4byteUSHORT ip_ID;//标识-16byteUSHORT ip_Flags;//标志-3byteUCHAR ip_TTL;//生存数据(数据报在网络上的存活时间,每通过一个路//由器,该数值减一UCHAR ip_Protacol;//协议(TCP/IP协议类型,比如:ICMP为,IGMP为,TCP为,UDP为等)USHORT ip_Checksum;// 头部检验和ULONGip_Source;//源IP地址ULONGip_Destination; //目的IP地址}IPHDR;2.定义ICMP结构体//ICMP格式typedef struct icmph{unsigned char icmp_Type;//类型-8byteunsigned char icmp_Code;//代码-16byteunsigned short icmp_Checksum;//检验和-16byteunsigned short icmp_Id;//识别号unsigned short icmp_Sequence;//报文序列号unsigned long icmp_Timestamp;//时间截}ICMPHDR, *PICMPHDR;3.定义目的地址//目标主机地址SOCKADDR_IN addrdest;addrdest.sin_family=AF_INET;//是地址家族,AF_INET,代表TCP/IP协议族addrdest.sin_addr.S_un.S_addr = inet_addr(ip);//存储IP地址,使用in_addr这个数据结addrdest.sin_port = htons(0);//存储端口号(使用网络字节顺序)4.定义原始套接字SOCKET sk = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);//使用RAWsocket模式。

相关文档
最新文档