1、 计算机网络课程设计报告计算机网络课程设计报告 编程实现基于编程实现基于 UDP 的的 PING 学学 院院 计算机学院计算机学院 专专 业业 学学 号号 学生姓名学生姓名 指导教师指导教师 2017 年年 6 月月 计算机网络课程设计计算机网络课程设计 一一 程序开发的基础知识程序开发的基础知识 1. PING 的相关知识 Ping是 Windows、Unix 和 Linux系统下的一个命令。ping也属于一个 通信协议,是 TCP/IP 协议的一部分。利用“ping”命令可以检查网络是否连 通, 可以很好地帮助我们分析和判定网络故障。 应用格式: Ping空格 IP 地址。 PING (P
2、acket Internet Groper),因特网包探索器,用于测试网络连接量 的程序。Ping发送一个 ICMP(Internet Control Messages Protocol)即因特网信 报控制协议;回声请求消息给目的地并报告是否收到所希望的 ICMPecho (ICMP 回声应答) 。它是用来检查网络是否通畅或者网络连接速度的命令。 作为一个生活在网络上的管理员或者黑客来说,ping 命令是第一个必须掌握 的 DOS 命令, 它所利用的原理是这样的: 利用网络上机器 IP 地址的唯一性, 给目标 IP 地址发送一个数据包, 再要求对方返回一个同样大小的数据包来确 定两台网络机器是
3、否连接相通,时延是多少。 ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒 木马会强行大量远程执行 ping命令抢占你的网络资源,导致系统变慢,网速 变慢。 严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。 通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它, 保护你的电脑。 2. UDP 的相关知识 UDP 是 User Datagram Protocol的简称,全称是用户数据报协议 ,在 网络中它与 TCP 协议一样用于处理数据包,是一种无连接的协议。在 OSI 模型中,在第四层传输层,处于 IP 协议的上一层。UDP 有不提供数据 包分组
4、、 组装和不能对数据包进行排序的缺点, 也就是说, 当报文发送之后, 是无法得知其是否安全完整到达的。UDP 用来支持那些需要在计算机之间传 输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的 网络应用都需要使用UDP协议。 UDP协议从问世至今已经被使用了很多年, 虽然其最初的光彩已经被一些类似协议所掩盖, 但是即使是在今天 UDP 仍然 不失为一项非常实用和可行的网络传输层协议。 与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP (网际协议)协议的顶层。根据 OSI (开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。UDP 协议的主要作
5、用是将网络数据流量压缩成数据包的 形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的 前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。 3. Socket 通信机制相关知识 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连 接的一端称为一个 socket。 建立网络通信连接至少要一对端口号(socket)。socket 本质是编程接口 (API),对 TCP/IP 的封装,TCP/IP 也要提供可供程序员做网络开发所用的接 口,这就是 Socket 编程接口;HTTP 是轿车,提供了封装或者显示数据的具 体形式;Socket 是发动机,提供了网络通
6、信的能力。 Socket 的英文原义是“孔”或“插座”。 作为 BSD UNIX 的进程通信机制, 取后一种意思。通常也称作“套接字“,用于描述 IP 地址和端口,是一个通信 链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在 Internet 上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一 个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket 正 如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间, 每个插座有一个编号,有的插座提供 220 伏交流电, 有的提供 110 伏交流 电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就 可以得到不同的服务。 二二 设计思路设计思路 本程序是通过基于 UDP 的 socket 的网络编程,来实现客户端和服务器端 的信息传输,包括客户端发送请求给服务器端、服务器端回应客户端,以致实 现 PING 的效果。 具体的思路是通过调用 java JDK 中 包下的 DatagramSocket