1
课 程 设 计
课程名称 计算机网络
A ___
题目名称 编程实现基于
UDP
的
ping ( java )
学生学院 计算机学院
专业班级_ _
学 号
学生姓名 _
指导教师 _
2
2014 年 1 月 5 日
目 录
一、设计环境.................................................................................5
二、课程设计的目的.......................................................................5
三、理论基础.................................................................................5
四、 基本要求................................................................................6
五、设计思想.................................................................................6
六、源程序....................................................................................7
七、测试情况...............................................................................10
八、改进的基于 UDP 的 ping 编程..................................................16
九、总结.....................................................................................23
3
计算机网络课程设计任务书
设计题目 编程实现基于 UDP 的 PING (Java)
已知技术参
数和设计要
求
1.编程实现 PING 的服务器端和客户端,实现操作系统提供的 ping 命令的
类似功能。
2.服务器端 PingServer 功能:
2.1 可以并发地为多个用户服务;
2.2 显示用户通过客户端发送来的消息内容(包含头部和 payload);
2.3 能够模拟分组的丢失;能够模拟分组传输延迟;
2.4 将用户发送来的请求 request 在延迟一段随机选择的时间(小于 1s)后返
回给客户端,作为收到请求的响应 reply;
2.5 通过如下命令行启动服务器:java PingServer port。
port 为 PingServer 的工作端口号
3.客户端 PingClient 功能:
3.1 启动后发送 10 个 request。发送一个 request 后,最多等待 1 秒以便接
收 PingServer 返回的 reply 消息。如果在该时间内没有收到服务器的
reply,则认为该请求或对该请求的 reply 已经丢失;在收到 reply 后立
即发送下一个 request。
3.2 请求消息的 payload 中至少包含关键字 PingUDP、序号、时间戳等内
容。如:PingUDP SequenceNumber TimeStamp CRLF
其中:CRLF 表示回车换行符(0X0D0A);TimeStamp 为发送该消息的机
器时间。
3.3 为每个请求计算折返时间(RTT),统计 10 个请求的平均 RTT、最大/小
RTT。
3.4 通过如下命令行启动:java PingClient host port。
host 为 PingServer 所在的主机地址;port 为 PingServer 的工作端口号
设计内容与
步骤
1.学习 ICMP,了解 ping 命令的工作机理;
2.学习 Java UDP Socket 通信机制;
3.了解 Java 多线程程序设计;
4.服务器 PingServer 程序设计;
5.客户端 PingClient 程序设计。
6.调试与演示
设计工作计
划与进度安
排
1.ping 命令工作机制学习 2 小时
2.Java UDP Socket 通信机制 2 小时
3.Java 多线程程序设计 4 小时
4.PingServer 程序设计 6 小时
5.PingClient 程序设计 12 小时
6.调试与演示 4 小时
6.课程设计说明书 10 小时
4
一、设计环境
java JDK 1.7
二、课程设计的目的
本次设计的目的就是在掌握计算机网络理论的基础上,了解网络技术,掌握
网络相关设计方法和思想,通过本次课程设计,达到巩固和综合应用计算机网
络原理的知识,本次课程设计主要是基于 UDP 的 ping,使用 java 语言编程,编
写一个实验程序,用 java 语言编程运行、仿真,通过观察实验结果,从而判定
本次程序设计是否成功完成任务。一人一题有利于锻炼我们的独立思考以及解
决问题的能力。
三、理论基础
3.1 UDP 的相关介绍
UDP 就是用户数据报协议,是与 TCP 相对应的协议,都是用来处理数据包
的,它是面向无连接的协议,它不与对方建立连接,而是直接就把数据包发送
过去,UDP 使用于一次只传送少量数据、对可靠性要求不高的应用环境,UDP
有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文
发送之后,是无法得知其是否安全完整到达目的地的。
在选择使用协议的时候,选择 UDP 必须要慎重,在网络质量令人十分不满
意的环境下,UDP 协议数据包丢失会比较严重,但是由于 UDP 的特性,它不属
于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视
频和普通数据在传送时使用 UDP 比较多,因为它们即使偶尔丢失了一两个数据
包,也不会对接收结果产生太大影响,比如我们聊天用的 ICQ 和 OICQ 就是使
用 UDP 协议。
3.2 ping 的相关介绍
Ping 是 Windows 系列自带的一个可执行命令,利用它可以检查网络是否能
够连通,用好它可以很好地帮助我们分析判定网络故障,应用格式:ping IP 地
址,该命令还可以加许多参数使用,Ping 是 DOS 命令,一般用于检测网络通与
不通,也叫时延,其值越大,速度越慢。
Ping 指的是端对端连通,通常用来作为可用性检查,但是某些病毒木马会
强行大量远程执行 ping 命令来抢占你的网络资源,导致系统变慢,网速变慢,
严禁 ping 入侵作为大多数防火墙的一个基本功能提供给用户进行选择,通常情
5
- 1
- 2
前往页