计算计网络课程设计__UDP文件传输程序长春大学
课程设计说明书
题目名称 UDP文件传输程序
院(系) 计算机科学技术学院
专业(班级)
学生姓名
指导教师
起止日期 2012-12-29~2013-1-6
目录
1设计目的 3
2系统描述 3
3数据结构 4
4软件设计 6
6
9
9
服务器端 9
9
2..日志函数代码 10
11
13
15
客户端 25
25
2. 制作包函数代码 26
27
30
5命令解析函数代码 40
42
5运行结果 44
6设计总结 46
1设计目的
UDP是TCP/IP协议族为传输层设计的两个协议之一,它在进程与进程的通信过程中,提供了有限的差错校验功能,是一种无连接的,不可靠的协议。UDP在一个较低的水平上完成进程之间的通信,在收到分组的时候没有流量控制机制也没有确认机制,适用于可靠性比较高的局域网。由于UDP采取了无连接的方式,因此协议简单,在一些特定的应用中协议运行效率高。UDP适合一些实时的应用,如IP电话,视频会议,它们要求源主机以恒定的速率发送数据,并且在网络出现拥塞时,可以丢失一些数据,但是延迟不能太大。基于这些特点,流式多媒体通信、多播等应用在传输层采用的就是UDP协议。
因为UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。
2系统描述
本系统实现了文件下载和文件上传两种类型的传输功能,辅助有服务记录和断点续传的功能。它们都是基于socket编程实现的。
系统任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数据包的确认(停等协议)。如果一个数据包的大小小于512字节,则表示传输结束。如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包(丢包处理)。通信的双方都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。大部分的错误将会导致连接中断,错误由一个错误的数据包引起。这个包不会被确认,也不会被重新发送,因此另一方无法接收到。如果错误包丢失,则使用超时机制。错误主要是由下面三种情况引起的:不能满足请求,收到的数据包内容错误,而这种错误不能由延时或重发解释,对需要资源的访问丢失(如硬盘满)。
初始连接时候需要发出WRQ(请求写入)或RRQ(请求读取),收到一个确定应答,一个确定可以写出的包或应该读取的第一块数据。通常确认包包括要确认的包的包号,每个数据包都与一个块号相对应,块号从1开始而且是连续的。因此对于写入请求的确定是一个比较特殊的情况,因此它的包的包号是0。如果收到的包是一个错误的包,则这个请求被拒绝。
在断点续传时,当发送方发出数据包后,网线被拔出之后,无论接受方接收到数据包没有,发送方都不会接收到确认帧,此时发送方会重复的发送未被确认的数据包,接收方也会等待这一个或者下一个数据包的来临,当是数据包丢失时会等待此数据帧来临,而当是确认帧丢失时,则会等待下一个数据包。这样故障恢复后,接收方可能会接收到两个相同的数据包(确认帧丢失情况),所以接收会判断接收到的新数据包的编号是否与上一个相同,不相同则写入文件,但无论是否相同,都会发送确认帧,使发送方发送下一个数据包。这样就能保证发送文件与接收文件大小一致。为了防止系统长时间无响应,系统设置了超时结束机制,这与断点续传是一对矛盾。当把超时时间设置的比路由重启的时间和网线滑落手动接上的时间略长就能很好的解决这个矛盾了。在本系统中服务器超时设为60s客服端设为30s,这是考虑到服务器一般会比客服端更加繁忙。
3数据结构
本系统采用简单包的形式传递数据,TFTP支持一下五种类型的包:
Opcode operation(Opcode)
1 RRQ:Read request
2 WRQ:Write request
3 DATA:Data
4 ACK:Acknowledgment
5 ERROR:Error
各个数据包的帧结构如下:
Figure 3: RRQ/WRQ包
RRQ和WRQ包(代码分别为1和2)的格式如上所示。ASCII码字符,以0结束。 ascii","octet"或"mail
计算计网络课程设计 UDP文件传输程序 来自淘豆网m.daumloan.com转载请标明出处.