计算机网络课设ping,计算机网络课程设计ping工具.doc

计算机网络课程设计ping工具

摘 要

关键词:PING命令,IP/ICMP协议SOCKET编程图1.1 功能模块图

初始化模块:该模块用于定义及初始化各个全局变量,为winsock加载winsock体。功能控制模块:该模块是被其他模块调用,其功能包括解析参数、计算ICMP数据报文检验和、清除SOCKET,ICMP包数据以及接受缓冲区。数据报解读模块:数据报解析模块提供了解读IP选项和解读ICMP报文的功能。Ping测试模块:该模块是本程序的核心模块,调用其他模块实现其功能,进而实现Ping的功能。

详细设计

2.1 Ping主模块

Ping()函数是本程序的核心部分,它基本是调用其他模块的函数来实现最终功能,其主要布骤包括:定义及初始化各个全局变量、打开socket动态库、设置接收和发送超时值、域名地址解析、分配内存、创建及初始化ICMP报文、发送ICMP请求报文、接收ICMP 应答报文以及解读应答报文和输出Ping结果,最后释放占用的资源其流程如图所示。

先主要考虑实现ping 单一主机的情况,当ping 同一网段内的多台主机时只须循环调用ping 单一主机时的情况即可

图2.1 主模块流程图

2.2功能控制模块

功能控制模块主要是为其他模块提供可调用的函数,该模块主要包括参数获取功能、计算ICMP数据报文检验和、清除SOCKET,ICMP包数据以及接受缓冲区、占用资源释放功能和显示用尸帮助功能。该模块一共包含三个函数来实现。,流程如图2.2所示。

图2.2 功能控制模块

1.2 基本思路及所涉及的相关理论

1.2.1、设计基本思路

在PING的工作原理下,PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。为了实现直接对IP和ICMP包进行操作,RAW模式的SOCKET编程探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。当传送IP数据包发生错误ICMP协议将会把错误信息封包,然后传送回给主机。PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping 使用的是ICMP协议,它发送回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。、RAW模式的SOCKET编程? Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。?Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。?? 任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.??? 应用程序调用Windows Sockets的API实现相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值