基于UDP网络安全协议课程设计

合集下载

计算机网络课程设计利用java实现UDP协议

计算机网络课程设计利用java实现UDP协议

计算机网络课程设计利用java实现UDP协议实现UDP协议系别计算机与通信工程学院专业计算机科学与技术学号4110415姓名张振指导教师王聪xx年7月4日1、需求分析程序是如何通过网络进行相互通信的呢?各个孤立的工作站或主机用物理链路相连在一起,组成数据链路,从而达到资源共享和通信的目的,就形成网络。

通信是人与人之间同过某种媒体进行的信息交流与传递。

网络通信一般指网络协议。

当今网络协议有很多,其中基本最常用的就是TCP/IP 协议族。

UDP协议就是属于TCP/IP协议族中的协议。

在网络中它与TCP协议一样用于处理数据包。

在OSI模型中,UDP协议在第四层传输层,处于IP协议的上一层。

与TCP相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

本文利用Java语言网络编程的思想,编写UDP协议程序,实现UDP协议在网络中所要完成的功能。

在Java语言为实现程序的相互通信提供了许多有用的抽象应用程序接口(API, Application Programming Interface),这类应用程序接口被称为套接字(sockets)。

因此,本文UDP协议的编程所需要用到的接口就是套接字。

2、实验环境开发环境: 个人PC+win8、1+myeclipse103、实验原理以及相关内容3、1 UDP简介UDP 是User Datagram Protocol的简称,中文全称是用户数据包协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

在网络中它与TCP协议一样用于处理数据包。

在OSI模型中,UDP协议在第四层传输层,处于IP协议的上一层。

与TCP相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

UDP用来支持那些需要在计算机之间传输数据的网络应用。

包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

java版基于UDP协议网上聊天程序课程设计

java版基于UDP协议网上聊天程序课程设计

湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称网络协议分析指导教师李建设职称副教授学生姓名专业班级网络工程学号题目基于UDP协议网上聊天程序成绩起止日期2013 年11 月25 日~2013 年12 月13 日目录清单56课程设计任务书2013 —2014学年第1 学期学院(系、部)计算机与通信学院专业网络工程班级102课程名称:网络工程学生姓名:设计题目:基于UDP协议网上聊天程序指导教师:李建设完成期限:自2013 年11 月25 日至2013 年12 月13 日共 3 周容及任务一、设计内容实现一个基于UDP协议的简单的聊天程序,包括服务器和客户端。

1.支持多人聊天。

2.客户端具有图形化用户界面。

二、设计任务课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。

)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。

三、设计要求1.按功能要求开发系统,能正确运行。

程序代码书写规范,有充足的注释。

2.课程设计所使用的编程语言任选,但建议使用C或C++;3.绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作内容2013-11-25~2013-11-3选题2013-12-1~2013-12-3 系统分析和设计;2013-12-4~2013-12-8 熟悉软件开发工具、编码系统、系统测试2013-12-9~2013-12-13 撰写并提交课程设计说明书(含电子文档)、源程序等。

指导教师(签字):年月日系(教研室)主任(签字):年月日课程设计说明书课程名称:网络协议分析设计题目:基于UDP协议网上聊天程序专业:班级:学生姓名: 学号:指导教师:李建设2013年12 月13 日目录1 课程设计简介 (4)1.1 课程设计的目的 (4)1.2 课程设计内容 (4)2课程设计实现过程 (5)2.1 协议原理 (5)2.2 客户机/服务器模式 (7)2.3 关键技术 (8)2.4 流程图 (10)2.5 系统结构图 (11)2.6 程序调试及界面效果图 (11)2.7 源代码 (15)3设计总结 (22)4参考文献 (23)1 课程设计简介1.1 课程设计的目的开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台或两台以上的计算机之间信息的交流。

计算机网络-基于UDP设计模拟停等协议实验报告

计算机网络-基于UDP设计模拟停等协议实验报告
实验内容:
概述本次实验的主要内容,包含的实验项等。
1)基于UDP设计一个简单的停等协议,实现单向可靠数据传输(服
务器到客户的数据传输)。
2)模拟引入数据包的丢失,验证所设计协议的有效性。
3)改进所设计的停等协议,支持双向数据传输;
4)基于所设计的停等协议,实现一个C/S结构的文件传输应用。
5)基于UDP设计一个简单的GBN协议,实现单向可靠数据传输(服
首先进入一个循环,一次循环需要进行如下工作:
接收分组,将分组的数据缓存到datagramBuffer对应的位置(因为到达的数据可能是乱序的)
然后发送数据分组对应seq的ACK,告知发送方自己已经成功接收。之后更新滑动窗口的位置,更新的规则同发送方一样。之后进行下一次循环。
因为是乱序的,所以打包时不但要记录窗口的头位置,还要记相对偏差来标示这是哪个seq的数据(共2字节)。
务器到客户的数据传输)。
6)模拟引入数据包的丢失,验证所设计协议的有效性。
7)改进所设计的GBN协议,支持双向数据传输;
8)将所设计的GBN协议改进为SR协议。
实验过程:
GBN的原理与实现
原理:
GBN是属于传输层的协议,它负责接收应用层传来的数据,将应用层的数据报发送到目标IP和端口.
滑动窗口:假设在序号空间内,划分一个长度为N的子区间,这个区间内包含了已经被发送但未收到确认的分组的序号以及可以被立即发送的分组的序号,这个区间的长度就被称为窗口长度。(随着发送方方对ACK的接收,窗口不断的向前移动,并且窗口的大小是可变的)
GBN一个分组的发送格式是: Base(1Byte) + seq(1Byte) + data(max 1024Byte)

网络协议编程案例教学计划

网络协议编程案例教学计划
实现步骤
02
1. 服务器端创建套接字并绑定到指定的IP地址和端 口号;
03
2. 服务器端监听来自客户端的连接请求;
案例分析:实现简单聊天室功能
01 3. 客户端创建套接字并连接到服务器端的套接字 ;
02
4. 客户端发送消息给服务器端;
03 5. 服务器端接收消息并将其广播给所有连接的客 户端;
案例分析:实现简单聊天室功能
IP协议
网络协议,负责路由选择和逻辑地址 寻址,实现不同网络之间的通信。
UDP协议
用户数据报协议,提供无连接的、不 可靠的数据传输服务,适用于实时性 要求较高的应用。
ICMP协议
控制报文协议,用于在IP主机和路由 器之间传递控制消息,实现网络诊断 和错误报告等功能。
常见网络协议简介
FTP协议
文件传输协议,用于在网络上 进行文件的上传和下载等操作 。
06
案例三:基于HTTP协议的编程实践
案例背景及需求分析
背景介绍
HTTP协议是互联网上应用最为广泛的协议之一,它规定了Web浏览器和Web服务器之间通信的规则 。通过学习和实践HTTP协议编程,可以深入了解网络通信原理,掌握Web开发的核心技能。
需求分析
本案例要求实现一个简单的Web服务器,能够处理HTTP请求并返回相应的响应。具体需求包括:解 析HTTP请求报文,提取请求行、请求头和请求体信息;根据请求内容返回相应的HTML文件或处理结 果;实现基本的路由功能,根据不同的URL路径返回不同的内容。
网络协议编程案例教学计

汇报人:XX
20XX-01-12
• 课程介绍与目标 • 网络协议基础知识 • 编程环境与工具准备 • 案例一:基于TCP协议的编程实践 • 案例二:基于UDP协议的编程实践 • 案例三:基于HTTP协议的编程实践 • 课程总结与展望

IP网络与协议课程设计 (2)

IP网络与协议课程设计 (2)

TCP/IP网络与协议课程设计简介本课程设计主要以TCP/IP网络协议为重点,通过模拟实现TCP/IP协议的部分功能,加深对TCP/IP协议的理解和掌握。

实验环境•操作系统:Ubuntu 18.04 LTS•编程语言:C语言实验内容实验一:基于UDP协议的数据传输实验目的•了解UDP协议的特点和使用场景。

•学习使用UDP协议发送和接收数据包。

实验步骤1.了解UDP协议的相关知识。

2.编写UDP客户端程序,实现向指定IP地址和端口发送数据。

3.编写UDP服务端程序,接收来自客户端的数据,并在终端输出数据内容。

实验效果客户端程序通过UDP协议向服务端发送数据,服务端接收到数据,并在终端输出数据内容。

实验总结通过本实验,加深了对UDP协议的理解,学习了使用UDP协议进行数据传输的基本操作。

实验二:基于TCP协议的数据传输实验目的•了解TCP协议的特点和使用场景。

•学习使用TCP协议进行数据传输,并掌握TCP连接建立和断开的过程。

实验步骤1.了解TCP协议的相关知识。

2.编写TCP客户端程序,实现向指定IP地址和端口建立连接并发送数据。

3.编写TCP服务端程序,接收来自客户端的连接请求并接收数据,并在终端输出数据内容。

4.实现TCP连接的断开。

实验效果客户端程序通过TCP协议向服务端发送数据,服务端接收到数据,并在终端输出数据内容。

完成数据传输后,正常断开TCP连接。

实验总结通过本实验,加深了对TCP协议的理解,学习了使用TCP协议进行数据传输的基本操作,并掌握了TCP连接建立和断开的过程。

实验三:基于HTTP协议的网页浏览器实验目的•了解HTTP协议的特点和使用场景。

•学习使用HTTP协议请求和接收网页数据。

实验步骤1.了解HTTP协议的相关知识。

2.实现一个简易的网页浏览器,支持HTTP协议,能够请求和接收网页数据。

3.实现网页的解析和渲染,能够在终端中正常显示网页内容。

实验效果在终端中输入网址后,浏览器能够根据HTTP协议请求网页数据,并在终端中正常显示网页内容。

04第4章基于UDP协议的程序设计

04第4章基于UDP协议的程序设计

UDP数据包格式
源和目的端口号 数据报长度(包含报头和数据的总长度) 校验和(不是必须的)
UDP协议的主要特性
① 是无连接协议,可靠性不如TCP协议; ② 不需要维护连接状态,可同时向多个客户 机发送相同的信息; 控制算法调节; ⑤ 广播和多播;
主要特性是广播和多播
为一些应用层协议提供服务
面向连接的TCP
“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须 等线路接通了、对方拿起话筒才能相互通话。 TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往 网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
UdpClient udpServer = new UdpClient(8000);
byte[] getBytes = udpServer.Receive(ref myHost);
string getString = Encoding.Unicode.GetString(getBytes, 0, getBytes.Length); Console.WriteLine("接收信息:{0}", getString); if (getString == "quit") break; string sendString = "你好,多加保重!"; Console.WriteLine("发送信息:{0}", sendString); byte[] sendBytes = Encoding.Unicode.GetBytes(sendString);


udpServer.Send(sendBytes, sendBytes.Length, "127.0.0.1", 8001);

java版基于UDP协议网上聊天程序课程设计

java版基于UDP协议网上聊天程序课程设计

工业大学课程设计资料袋计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称网络协议分析指导教师建设职称副教授学生专业班级网络工程学号题目基于UDP协议网上聊天程序成绩起止日期2013 年11 月25 日~2013 年12 月13 日目录清单56课程设计任务书2013 —2014学年第1 学期学院(系、部)计算机与通信学院专业网络工程班级102课程名称:网络工程学生:设计题目:基于UDP协议网上聊天程序指导教师:建设完成期限:自2013 年11 月25 日至2013 年12 月13 日共 3 周容及任务一、设计容实现一个基于UDP协议的简单的聊天程序,包括服务器和客户端。

1.支持多人聊天。

2.客户端具有图形化用户界面。

二、设计任务课程设计说明书(纸质+电子版),容包括:设计容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。

)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。

三、设计要求1.按功能要求开发系统,能正确运行。

程序代码书写规,有充足的注释。

2.课程设计所使用的编程语言任选,但建议使用C或C++;3.绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作容2013-11-25~2013-11-3选题2013-12-1~2013-12-3 系统分析和设计;2013-12-4~2013-12-8 熟悉软件开发工具、编码系统、系统测试2013-12-9~2013-12-13 撰写并提交课程设计说明书(含电子文档)、源程序等。

指导教师(签字):年月日系(教研室)主任(签字):年月日课程设计说明书课程名称:网络协议分析设计题目:基于UDP协议网上聊天程序专业:班级:学生: 学号:指导教师:建设2013年12 月13 日目录1 课程设计简介 (4)1.1 课程设计的目的 (4)1.2 课程设计容 (4)2课程设计实现过程 (5)2.1 协议原理 (5)2.2 客户机/服务器模式 (7)2.3 关键技术 (8)2.4 流程图 (10)2.5 系统结构图 (11)2.6 程序调试及界面效果图 (11)2.7 源代码 (15)3设计总结 (22)4参考文献 (23)1 课程设计简介1.1 课程设计的目的开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台或两台以上的计算机之间信息的交流。

基于UDP网络通信系统的服务端程序设计课程设计报告

基于UDP网络通信系统的服务端程序设计课程设计报告

长沙理工大学计算机与通信工程学院《网络协议编程》课程设计报告院 系 计算机与通信工程学院 专 业 网络工程 班 级 网络1101班 学 号 201158080110 学生姓名 赵思雨 指导教师 谢晓巍 课程成绩 完成日期 2014年9月24日 课程设计成绩评定院系计算机与通信工程专业网络工程班级网络1101班学号 201158080110学生姓名赵思雨指导教师谢晓巍指导教师对学生在课程设计中地评价指导教师成绩指导教师签字年月日课程设计答辩组对学生在课程设计中地评价答辩组成绩答辩组长签字年月日课程设计综合成绩注:课程设计综合成绩=指导教师成绩×60%+答辩组成绩×40%课程设计任务书计算机与通信工程学院网络工程专业基于UDP网络通信系统地服务端程序设计学生姓名:赵思雨指导老师:谢晓巍摘要随着网络技术地发展及人们生活地需求,网络聊天已越来越受到人们地青睐 .网络聊天已经成为人们工作生活中传递信息、交流感情地重要工具,给人们带来了很大地方便. 本课题是开发一个基于UDP地局域网聊天系统,运用软件工程地设计流程,综合运用数据库编程技术、Windows程序设计技术、网络通讯技术,此网络聊天工具采用客户端/服务器(C/S)模式,客户端采用UDP与服务器连接,客户端与客户端之间通过UDP互相通讯.服务器端具有服务器端口设置,此聊天工具能实现多人聊天功能,适用于局域网使用地网络聊天工具,其操作简单,灵活性好,运行也比较稳定.关键词网络通讯;客户端/服务器模型;用户数据报协议;套接字1 引言自进入信息化社会以来,人们地生活发生了翻天覆地地变化,所有这一切地实现都要归功于计算机网络.自从计算机网络出现以来,网络发展越来越迅速,其重要性更是不可估量.现在,网络已经进入到我们生活地各个角落,大到网上理财、网上会议、网上战争,小到上网购物、查找资料,网上聊天等,可以说网络把我们地世界变“小”了,即使在天涯海角,我们也可以随时联系.一个最简单且应用最广泛地例子——网上聊天,就是最好地证明.本课程设计将基于UDP协议和局域网环境,使用Java语言实现一个即时网络通讯程序. 1.1背景介绍随着计算机网络信息技术地日益发展和成熟,人们地生活因为网络而变得更多姿多彩,基于网络地通讯技术也如同雨后春笋般涌现到网络世界中.TCP协议和UDP协议是网络通讯地基本协议.而对于普通地信息交流,UDP协议则因为更方便简单,所以常常采用UDP协议开发这类即时通讯程序.1.2课程设计地目地(1)理解UDP协议地基本功能和工作原理.(2)培养运用理论知识解决实际问题地能力.(3)理解UDP协议在Java编程语言中地具体体现.(4)运用所学地知识,学会分析程序,并从实际上实现即时通讯地要求.1.3课程设计地基本任务本次课程设计是基于UDP协议地通讯程序,所以其基本任务就是要实现地是服务器和客户端地通讯,即服务器对端口进行监听,客户端发送数据给服务器,服务器接收.实现了这个过程,就达到了本次课程设计地目地.2 设计原理2.1 UDP协议原理UDP协议地全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接地协议.在OSI模型中,在第四层——传输层,处于IP协议地上一层.UDP有不提供数据包分组、组装和不能对数据包进行排序地缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达地.UDP用来支持那些需要在计算机之间传输数据地网络应用.包括网络视频会议系统在内地众多地客户/服务器模式地网络应用都需要使用UDP协议.UDP协议从问世至今已经被使用了很多年,虽然其最初地光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行地网络传输层协议.UDP是OSI参考模型中一种无连接地传输层协议,它主要用于不要求分组顺序到达地传输中,分组传输顺序地检查与排序由应用层完成,提供面向事务地简单不可靠信息传送服务.UDP 协议基本上是IP协议与上层协议地接口.UDP协议适用端口分别运行在同一台设备上地多个应用程序.与所熟知地TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议地顶层.根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议.UDP协议地主要作用是将网络数据流量压缩成数据包地形式.一个典型地数据包就是一个二进制数据地传输单位.每一个数据包地前8个字节用来包含报头信息,剩余字节则用来包含具体地传输数据.UDP是无连接地,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放)因此减少了开销和发送数据之前地时延.UDP使用地是尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂地连接状态表.UDP是面向报文地.发送方地UDP对应程序交下来地报文,在添加首部后就向下交付给IP层.UDP对应用层交下来地报文,既不合并,也不拆分,而是保留这些报文地边界.UDP是定义用来在互连网络环境中提供数据报交换地计算机通信地协议.此协议默认是IP下层协议.此协议提供了向另一用户程序发送信息地最简便地协议机制,不需要连接确认和保护复制,所以在软件实现上比较简单,需要地内存空间比起TCP相对较小.UDP包头由4个域组成,其中每个域各占用2个字节.(1)源端口号(16位):UDP数据包地发送方使用地端口号.(2)目标端口号(16位):UDP数据包地接收方使用地端口号.UDP协议使用端口号为不同地应用保留其各自地数据传输通道.UDP和rap协议正是采用这一机制,实现对同一时刻内多项应用同时发送和接收数据地支持.(3)数据报长度(16位).数据报地长度是指包括报头和数据部分在内地总地字节数.理论上,包含报头在内地数据包地最大长度为65535字节.不过,一些实际应用往往会限制数据包地大小,有时会降低到8192字节.(4)校验值(16位).UDP协议使用包头中地校验值来保证数据地安全.2.2客户端/服务器模式客户机一方,UDP应用程序功能如下:(1)打开通信信道(申请一套接字),并连接到服务器在主机地保留端口,该端口对应服务器地UDP进程.(2)向服务器发出请求报文,等待接收应答.(3)从服务器方收到最终应答结果,或在不再请求时关闭信道并终止客户机进程.服务器一方,UDP应用程序动作如下:(1)打开通信信道(申请一套接字),通知本地主机在某一保留端口接收客户机请求.(2)等待客户请求到达指定端口.(3)接收到请求,启动一新进程处理用户请求,同时释放旧进程以响应新地客户请求,一旦服务完成,关闭新进程与客户地通信链路.(4)继续等待客户机请求.(5)如果不想响应客户机请求,关闭服务器进程3.设计步骤此次设计是编写一个基于UDP地即时通讯程序,要求双方能够进行即时通讯,实现聊天和传输文件地功能.本课程设计主要负责地是通讯程序客户端地设计.其具体设计如下.3.1 聊天模块设计流程图图1-1 聊天模块流程图3.2详细设计根据UDP协议地基本特性以及Java语言编程特点,然后对比设计流程图,在Eclipse 编程环境下编写出实现该即时聊天系统地程序,具体步骤如下:1.打开Eclise创建一个Java工程,命名为UDPChat.2.在Java工程目录下创建一个package,命名为UDPChat.3.在此package目录下创建一个类,类名为Client,创建完之后弹出一个编辑窗口,在此编辑环境下编写客户端程序,其聊天模块服务器端核心程序如下:public class Server {public static void main(String[] args) {new UDPServer().start()。

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

《网络安全协议》课程设计题目基于UDP协议的分析和改进班级学号姓名指导老师2014年07 月 01日目录前言 (3)第1章UDP协议的概述 (3)1.1UDP协议 (3)1.2UDP协议的数据报格式 (4)1.3针对UDP协议的攻击 (5)第2章需求分析 (5)2.1UDP协议的优缺点 (5)2.1.1UDP协议的优势: (5)2.1.2 UDP 协议的不足: (6)2.2与TCP协议的比较 (6)2.2.1TCP协议的拥赛控制 (6)2.2.2TCP协议的往返时延 (6)第3章UDP协议的改进 (7)3.1设计目标 (7)3.2模块的设计概述 (7)3.3总体设计 (7)3.3.1体系结构 (7)3.3.2报文结构 (8)第4章协议的实现机制 (9)4.1协议实现采用的方法 (9)4.1.1建立连接 (9)4.1.2关闭连接 (10)4.1.3差错检测 (10)4.1.4确认技术 (11)4.1.5序列号 (11)4.1.6 超时重发 (11)第5章安全性分析 (11)5.1协议的功能 (11)5.2协议存在的安全隐患 (12)第6章小结 (12)参考文献 (13)2前言2 1 世纪将是一个以网络为核心的信息时代, 一般把I n ter net 定义为一个技术名词, 指遵守T CP / I P 协议, 用各种计算机物理连接方式集合在一起的计算机网络及单机的总和。

T CP/ I P I n ter ne t 协议族已经成为计算机工业中开放系统互连的事实上的标准。

在T CP/ I P 协议族中, 在数据链路层、网络层,传输层和应用层存在很多的已知安全缺陷,选择其中一个存在安全缺陷的协议—UDP协议,针对此协议进行优化。

用户数据报协议U DP 提供应用程序之间传送数据报的基本机制基于目。

前U DP 通信的不足: 不可靠的无连接服务, 在参考T CP/ I P 协议及I SO 7 层协议的基础上, 设计了一套基于U DP 的可靠数据传输。

第1章UDP协议的概述1.1UDP协议UDP 是User Datagram Protocol的简称,中文名是用户数据报协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。

在TCP/IP模型中,UDP为网络层(network layer)以下和应用层(application layer)以上提供了一个简单的接口。

1.2 UDP数据报的格式UDP数据报是UDP协议的数据传输的基本单位,格式见下图:31.端口(两个)源端口(16bit):指源主机上运行的进程使用的端口地址。

目的端口(16bit):指目的主机上运行的进程使用的端口地址。

UDP使用端口对给定主机上的多个目标进行区分。

源端口是可选域,当其有意义时,指的是发送应用程序的UDP端口。

如果不使用它,则在此域中填0。

目的端口在有特定的目的网络地址时有意义,指目标应用程序的UDP端口。

2. 长度UDP数据报的总长度(首部+数据),用八进制表示(这表明最小的数据报长度是8)。

UDP数据报总长度也可以通过下式进行计算:UDP数据报总长度=IP总长度-IP首部长度43. 校验和用于校验整个UDP数据报出现的差错。

它是一种简单的数学运算,即对IP头、UDP头和数据中信息包头的数位取反之和,再取反得到的。

在计算校验和时要在UDP数据报之前增加12B的伪首部(临时加上),其中第三字段全0,第四字段为IP首部中的协议字段(17:UDP)。

1.3针对UDP协议的攻击UDP Flood是日渐猖厥的流量型DoS攻击(拒绝服务攻击),原理也很简单。

常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。

100k pps的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。

由于UDP协议是一种无连接的服务,在UDP Flood攻击中,攻击者可发送大量伪造源IP地址的小UDP包。

但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。

正常应用情况下,UDP包双向流量会基本相等,而且大小和内容都是随机的,变化很大。

出现UDP Flood的情况下,针对同一目标IP的UDP包在一侧大量出现,并且内容和大小都比较固定。

第2章需求分析2.1UDP协议的优缺点2.1.1UDP协议的优势:(1)系统开销小、速度快;(2)对于绝大多数居于消息传递的应用程序来说,基于帧的通信(UDP)比基于流的通信(TCP)更为直接和有效:(3)对应用部分实现系统冗余、人物分担提供了极大易实现及可操作性:(4) 对等的通信实体、应用部分可方便的根据需要构造成客户/ 服务器模型及5分布处理模型, 大大加强应用在可操作性及维护性的能力;( 5) 可实现完全图模型的网状网络拓扑结构, 可大大增强系统的容错性。

2.1.2 UDP 协议的不足:(1)依赖IP协议传送报文;(2)不确认报文是否到达,不对报文进行排序也不进行流量控制,对于顺序错误或丢失的包,不做纠错或重传;(3)没有建立初始化连接。

2.2与TCP协议的比较2.2.1TCP协议的拥赛控制随着网络带宽时延乘积 ( B D P ) 的增加,通常的 T C P 协议开始变的低效。

这是因为它的A M I D ( A d d i t i v e I n c r e a s e M u i t i p l i c a t i v e D e c r e a s e ,即当 T C P发送方感受到端到端路径无拥塞时就线性的增加其发送速度,当察觉到路径拥塞时就乘性减小其发送速度,简称“和式增加,积式减少”)算法虽然减少了T C P 拥塞窗口,但不能快速的恢复可用带宽。

理论上的流量分析表明 T C P 在 B D P 增加到很高的时候比较容易受数据包丢失的影响。

2.2.2TCP协议的往返时延T C P 拥塞控制的不公平的R T T ( R o u n d — T r i p T i m e ,往返时延,表示从发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时延) 也成为在分布式数据密集应用中的严重问题。

拥有不同 R T T 的并发T C P 流将不公平地分享带宽。

尽管在 B D P 小的网络中可以使用通常的T C P 实现来相对平等的共享带宽,但在拥有大量 B D P 的网络中,通常的基于T C P的程序就必须承受严重的不公平的问题。

这个 R T T 基于的算法严重的限制了其在广域网分布式应用的效率例如互联网上的网络数据备份。

综上所述,一直到今天,对标准的T C P的提高一直都不能在带宽的利用效率和公平性方面达到一个令人满意的程度 ) ,这对运行在低速网络中的应用影6响尤为严重。

考虑到上面的背景,需要一种在低速网络中支持高效利用可用带宽的数据传输协议。

为此,本文设计了一个应用程序级别的基于 U D P 的数据传输协议。

第3章UDP协议的改进3.1设计目标基于 U D P 的可靠传输协议主要目标是效率、稳定。

应该利用所有的可用带宽,即使带宽变化的很剧烈,以保证在低速网络情况下,能够为需一定带宽支持的应用尽可能提供其所需的传输速率。

稳定性要求不能像 T C P 那样遇到丢包时产生传输速率的大幅波动,分组发送速率应该一直快速会聚可用带宽。

3.2模块的设计概述本协议是数据传输是单向的,有两个部分:发送方和接收方。

发送方根据流量控制发送 ( 和重传)数据,触发和处理所有的控制事件,如 R T T 估计、超时检测和重传。

接收者接收数据分组和控制数据报,并根据接收到的数据报发送控制数据报。

接收程序使用一个固定 U D P 端口来发送和接收。

本协议将应用层数据封装成固定的大小进行传输,和 T C P 相似的是,称这个固定的数据报大小叫做 M S S( 最大分组大小,适宜于快速传输大块数据流。

M S S可以通过应用程序来设置,M S S的选择对传输效率会有影响。

通过滑动窗口的流水技术来进行流量控制,在参数合适事能够充分利用当前可用带宽。

考虑到系统开销,协议并没有引入如流数据加密或身份认证等安全机制,它依赖于应用程序提供的授权和底层提供的安全机制。

然而,由于 U D P 是无连接的,实现可靠数据传输时,应该检查所有达到的数据报是否是预期的数据报。

3.3总体设计3.3.1体系结构从计算机网络层次体系的角度来看,基于 U D P的可靠数据传输协议的层次结7构如图 l 所示。

因此,本协议是在原 T C P / I P 协议的传输层的 U D P 协图1 基于UDP的可靠传输协议的层次为保证可靠数据传输而实现的,加入了基于 U D P的可靠数据传输协议而形成的一个五层体系结构。

这样就可以利用 T C P / I P的U D P协议实现一种基于 U D P的面向连接可靠数据传输机制。

3.3.2报文结构协议有两类数据报:应用数据报和控制数据报。

它们数据报类型域来区分的。

4字节 4字节 1字节图2 应用数据报格式数据报里含有四个域:序列号,是四个字节的无符号整数,每个非重传的应用数据报都有一个相对应的序列号,且每个非重传的应用数据报都序号增加l;时间戳,是一个四字节的无符号整数。

数据报类型域里有数据报对应的值D A T A ,紧跟在这些数据后面的是应用程序数据。

4字节 4字节 1字节 4字节图3 协议连接握手报文图 34字节 4字节 1字节8图4 应答报文图 4 是应答 ( A C K ) 报文,序列号域填写的是希望接收到的下一报文的序列号。

时间戳填入引起此应答的数据报文的时间戳。

4字节 4字节 1字节图5 关闭连接报文确认报文和关闭连接报文不包含三个域以外的控制信息,图中的类型域所填的值是三个宏定义。

对于应用数据报和控制数据报来说都不需要增加报文长度域,因为可以从U D P协议头中得到实际的数据报大小。

数据报大小信息能被用来得到数据报有效载荷和控制数据报中的控制信息字段大小。

第4章协议的实现机制4.1协议实现采用的方法U D P是一个简单的面向数据报的运输层协议,它把应用程序交给它的数据添加上简单的包头就传给 I P 层发送出去,没有可靠性保证。

基于U D P的可靠数据传输协议是一个面向连接的可靠数据传输协议,在分析它的技术实现问题时,使用了以下实现可靠数据传输所必需的关键技术,并在其中做出了选择。

4.1.1建立连接作为一种面向连接的协议,在利用协议进行数据通信之前,首先必须在通信的双方之间建立一条连接。

在的实现中,参考了下图中T C P中的 3次握手方式。

9图6 TCP三次握手协议但是由于协议是单工的,所以在第三个包开始已经传输应用数据了。

相关文档
最新文档