Ping命令实现.docx
文本预览下载声明
课程实践报告任务描述Ping的用途就是用来检测网络的连同情况和分析 HYPERLINK /s?wd=%E7%BD%91%E7%BB%9C%E9%80%9F%E5%BA%A6tn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank 网络速度,但它是通过什么来显示连通呢。这首先要了解Ping的一些参数和返回信息。 使用Ping检查连通性有五个步骤: 1. 使用ipconfig /all观察本地网络设置是否正确; 2. Ping HYPERLINK /s?wd=tn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank , HYPERLINK /s?wd=tn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank HYPERLINK /s?wd=%E5%9B%9E%E9%80%81%E5%9C%B0%E5%9D%80tn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank 回送地址Ping HYPERLINK /s?wd=%E5%9B%9E%E9%80%81%E5%9C%B0%E5%9D%80tn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank 回送地址是为了检查本地的 HYPERLINK /s?wd=TCP%2FIP%E5%8D%8F%E8%AE%AEtn=SE_PcZhidaonwhc_ngpagmjzrsv_dl=gh_pc_zhidao \t _blank TCP/IP协议有没有设置好; 3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误; 4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略) 5. Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。工作基础Socket接口是TCP/IP网络的API,它包含许多函数,用来支持进程间通信Socket 译成“套接字”,应用进程要想利用这套函数通信,必须将自己关联到一个套接字上。电话系统的插座邮政系统的邮箱是可以被命名和寻址的通信端点IP地址+端口号TCP/IP的Socket有三种类型流式套接字(SOCK_STREAM):提供面向连接的、可靠的数据传输服务。这种服务保证数据按照发送顺序正确到达接收方。但要像打电话一样的使用。数据报式套接字(SOCK_DGRAM):提供无连接的、不可靠的数据传输服务,使用方式类似于邮政,数据可能丢失、重复或顺序混乱。原始套接字(SOCK_RAW):该接口允许对较低层协议(如IP,ICMP)直接访问。程序设计由上面的执行结果可以看到,ping命令执行后显示出被测试系统主机名和相应IP地址、返回给当前主机的ICMP报文顺序号、ttl生存时间和往返时间rtt(单位是毫秒,即千分之一秒)。要写一个模拟ping命令,这些信息有启示作用。要真正了解ping命令实现原理,就要了解ping命令所使用到的TCP/IP协议。?ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方。ICMP协议是IP层的一个协议,但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报。由于IP层协议是一种点对点的协议,而非端对端的协议,它提供无连接的数据报服务,没有端口的概念,因此很少使用bind()和connect()函数,若有使用也只是用于设置IP地址。头文件和定义函数以及变量计算发送和接收的时间统计数据结果校验和函数ICMP头部校验打包和拆包计算时间差函数发送报文函数接收目的主机的回复函数设置ICMP头部设计主函数程序实现总结在生活中,一旦断网,相信很多人第一件事就是调出终端,ping一下自己的路由,当然大多数是ping一下百度。。。深入一点点看,PING是什么。PING: Packet Internet Groper, 因特网包探测器。ping发送的是ICMP报文,ICMP全称是:Internet Control Message Protocol,中文名称叫因特网控制消息协议。这样翻译,更通俗一些。也可以说因特网信报协议之类。利用的是IP地址的唯一性,向目标IP地址发送一个
显示全部