广工计算机网络课设基于UDP的ping

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

《计算机网络》课程设计

学院___ _计算机学院_______ 专业______软件工程_______ 年级班别______12级4班_______ 学号91

学生姓名______ 林炳城_ __ ___ 指导教师____ 梁路 ________ 成绩

目录

计算机网络课程设计任务书

一、设计环境

操作系统:win8

开发环境:

IDE:eclipse

二、课程设计的目的

本次课程设计的目的在掌握计算机网络理论的基础上,了解网络技术,掌握计算机网络相关设计方法和思想,希望能通过本次的课程设计,达到巩固和综合应用计算机网络原理和知识,本次课程设计主要是编程实现基于UDP的ping,使用java语言编程,编写一个实验程序、仿真模拟Ping命令,通过观察实验结果,从而判定本次程序设计是否成功完成任务。

三、理论基础

UDP简介

UDP 是User Datagram Protocol的简称,中文名是用户数据包协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

UDP协议全称是用户数据报协议[1] ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP 有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。

与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

ping简介

Ping是Windows下的一个命令在Unix和Linux下也有这个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第

一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。

四、基本要求

编程实现PING的服务器端和客户端,实现操作系统提供的ping命令的类似功能。

服务器端PingServer功能:

可以显示用户通过客户端发送来的消息内容(包含头部和payload);

能够模拟分组的丢失;能够模拟分组传输延迟;

将用户发送来的请求request在延迟一段随机选择的时间(小于1s)后返回给客

户端作为收到请求的响应reply;

通过如下命令行启动服务器:java PingServer port。

port为PingServer的工作端口号客户端PingClient功能:

启动后发送10个request。发送一个request后,最多等待1秒以便接收

PingServer返回的reply消息。如果在该时间内没有收到服务器的reply,

则认为该请求或对该请求的reply已经丢失;在收到reply后立即发送下一个request。

请求消息的payload中至少包含关键字PingUDP、序号、时间戳等内容。如:

PingUDP SequenceNumber TimeStamp CRLF 其中:CRLF表示回车换行符

(0X0D0A);TimeStamp为发送该消息的机器时间。

为每个请求计算折返时间(RTT),统计10个请求的平均RTT、最大/小RTT。

通过如下命令行启动:java PingClient host port。

host为PingServer所在的主机地址

port为PingServer的工作端口号

五、设计思想

UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包,在OSI模型中,在第四层----传输层,处于IP协议的上一层,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知是否安全完整的到达目的地。

这个课设通过调用java JDK中包下的DatagramSocket和DatagramPacket类,可以实现对用户数据报文的控制,DatagramSocket类用于创建接收和发送UDP的Spcket实例,调用DatagramPacket类用于处理报文,因为它可以将Byte数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成Byte数组。

通过调用DatagramSocket和DatagramPacket类来实现操作系统提供的ping命令的类似功能。

相关文档
最新文档