之前一直基本都是在关注TCP协议,写的程序都是基于TCP协议的。今天想来谈谈对另一种传输协议-UDP(User Data Protocol)的理解。
相对于TCP,UDP只提供了一种保证,那就是:收到的数据会是完整的。但它不能保证数据是不是真的按照期望能被收到,也不能保证数据是不是只接收一次,更不能保证收到的信息顺序和发出的时候的次序是一致的。
这是UDP的缺点,但也刚刚好造就了它的一个优点。因为它基本不提供什么保证,在打开数据连接和关闭连接方面的时间消耗几乎可以忽略,比较适合用于那些对连接开销很在意的情景,同时也适合简单对安全传输要求不高的数据交互场合。
通常UDP会用在客户端向服务端申请一个比特的信息,如果服务器没有回复请求则会继续申请。用得最为广泛的UDP软件是我们最为熟悉的DNS系统。因为客户端一般只要发送一个很简端的请求,并收到一个很简短的回答,UDP就很适合这种情景。另外,流式音频和视频中要求尽快的传输数据,对于少量的信息包的丢失尚可容忍,而不能容忍由于严格处理丢包而带来的开销,所以这种情况用UDP会更加合适。
下面是总结一下TCP和UDP的适用场合,作为一个参考。
TCP协议更适用于下面的场合,如果:
(1)需要一个可靠地数据传输,以保证数据完整无缺的到达目的地。
(2)协议中需要多个请求和服务器的答复。
(3)需要发送比较多的数据。
(4)能够容忍由于建立或关闭连接带来的性能开销。
UDP协议更适用于下面的场合,如果:
(1)不大关心信息包是否被收到或者不大在乎信息包的被接收的次序。
(2)协议中的内容只包括简短的基本请求和回答。
(3)希望尽快建立网络链接。
(4)传输的数据量少。UDP的信息包的大小限制为64KB以内。
分享到:
相关推荐
java编写的关于UDP协议的程序,对于理解udp协议和udp通讯很有裨益。
掌握TCP、UDP协议的原理,理解TCP和UDP协议的分组格式。
Java中实现UDP协议编程详细文档,详解了在Java中使用UDP协议编程的相关类,给出一个UDP的服务端和客户端交互通信的例子,服务端循环等待客户端发送的信息,并对其进行回应,客户端向服务端发送信息,并接收服务端的...
自己利用UDP协议编写的两个源代码,一个做客户端,一个做服务器,实现信息的传输,有利于帮助理解UDP协议。
本实验利用Ethereal捕获发生在ping过程中的UDP报文,通过观察Ethereal全过程加强对UDP协议的理解,并掌握UDP报文格式,掌握UDP请求报文和应答报文的区别。熟悉Ethereal软件的应用。捕获UDP一个数据包,分析其数据链...
UDP 协议是无连 接的协议,是 TCP/IP 协议的一种分层协议。通过本设计进一步掌握利用 Visual C++ 进行程序设计的能力和运用面向对象程序设计的思想和方法, 初步掌握开发 一个小型实用系统的基本方法,...
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
计算机网络课程设计报告-基于UDP协议的聊天程序.doc 一、问题描述 本课程设计是是基于UDP协议的网络聊天程序设计,UDP协议是无连接的协议,是TCP/IP协议的一种分层协议。通过本设计进一步掌握利用Visual C++进行程序...
就是基本的udp通信 我试了 还可以吧 能很快理解的
通过java网络编程深入理解UDP协议通信,与TCP的区别等等 源码包每一行都有注释,在代码里面每一个类都有详细的注释来解释这个类的功能这个方法的功能,调用哪一个类的哪一个功能等等。 压缩包包含实验报告(实验原理...
使用VC++编写的基于UDP协议的点对点聊天器,可以让大家对UDP有更深刻的理解..利于VC++编程爱好者学习
大家都经常听到 Http 协议、TCP/IP协议,UDP协议等等很多协议,这都是一些既熟悉又陌生的词,很多同学不理解这些协议是做什么的?好吃吗?不用协议行不行?这些协议有什么区别?今天我们就来聊聊这个话题~
1.掌握linux下socket编程相关的各种系统调用 socket bind connect listen accept read, recvfrom write, sendto close 2.理解tcp与udp通讯机制的区别
本文对该通信标准进行深入的研究并进行改进,提出在UDP/ IP协议上实施M odbus协议,随后从实时性和可靠性两个方面分析了M odbus /UDP协议栈的优点,然后结合实验室开发的一个测控终端组建测试系统对该协议栈进行实验...
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做...
MFC工程通信经典实例,基于SOCKET UDP协议,有助于学习和理解UDP协议原理.
利用C#中Socket进行UDP通信,通过一个简单例子,可以快速理解这些知识。
基于UDP协议的文件传输软件,用MFC编写了简单界面,内有注释易理解,实现了消息互传和小文件传输
对网络传输的PPT 对与网络的理解 英文版
UDP通信协议简介TCP HTTP UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。 TCP HTTP UDP三者的关系: