所述上部TCP虽然该协议提供了一个可靠的传输,但也有一个缺点。发送速度慢。是否有协议它可以以高速传送?这部分是将要讨论UDP协议,它提供了更加快了传输速度。而且在可靠性为代价,这是一个无连接的传输协议。比TCP,UDP更多类似,我们用手机发送短信。仅管发,但是,我们不能保证对方收到,建立连接,也没有确认环节。

图2-2-4-1为UDP协议报文结构。比起TCP,UDP报文的结构相对简单,仅仅有源port、目的port、报文长度、校验和四个字段。当中源port跟校验和是可选的,因为UDP不用接收端回复确认信息,所以源port不是必须的,假设不须要验证数据的准确性,校验和也是能够忽略的。

报文长度单位是字节。最小长度为8字节。报文结构的简单也就决定了它仅仅能简单的发送数据。发出后基本就没能力对其进行管理,同一时候也缺乏拥塞控制,它不像TCP能检測拥塞程度。进而调整发送数据包的大小。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3lhbmd6aGl6aG91/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图2-2-4-1 UDP协议报文格式

那么UDP一般适用哪些场景呢?虽说其是不可靠的传输协议,但UDP具有TCP望尘莫及的速度优势,同一时候UDP把安全和排序(UDP不能保证数据发送和接收的顺序,在网络非常拥挤的情况下。用UDP协议接收端接收到的数据顺序可能与发送端发送的顺序不同)功能交给了应用层来完毕,系统开销非常小,这些都是UDP的优势。所以UDP适用于一次仅仅传少量数据、对可靠性要求不要的应用程序里。比如我们熟悉的QQ。常常会用消息框来骚扰我们,这里用的就是UDP协议。我们不一定能收到。

以上讨论了UDP协议的特点,那么简单的列出它跟TCP协议两者的对照。

两者各有所长、各有所短,在实际运用中要依据不同通信环境要求来确定要使用哪种协议数据传输。

TCP协议

UDP协议

是否连接

面向连接

面向非连接

传输可靠性

可靠

不可靠

速度

系统开销

是否保证数据顺序

应用场合

大量数据。可靠传输

少量数据,容许接收不到

是否全双工

是否能检測拥塞程度

不能

跟IP协议不同,IP协议提供从机器到机器的点对点寻址方式,而TCP协议跟UDP协议则是提供port的寻址,在用IP协议找到点后,就用这两个协议找相应的port。

它们能够将进程与port绑定。当数据到来时发往相应的port的进程的缓冲区里。依据port段,TCP一般将port分为三种:知名port(1-1023)、暂时port(1024-5000)、预留port(5001-65355)。知名port固定分配给一些服务,比如21port分给FTP,80port分给HTTP。暂时port通常是应用程序在执行时使用的port,如socketclient建立连接时须要port,会随机从暂时port分配一个。

喜欢研究java的同学能够交个朋友,以下是本人的微信号:

版权声明:本文博客原创文章。博客,未经同意,不得转载。

协议系列UDP协议的更多相关文章

  1. TCP协议与UDP协议的区别

    TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  2. (转)TCP协议与UDP协议的区别

    TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  3. IP地址、端口、TCP协议、UDP协议

    最近在看<疯狂java讲义>,第17章网络编程里提到IP地址.端口.TCP协议.UDP协议这几个概念.以前上课时学过,现在重温了一遍.在这里,用自己的语言简单的讲解一下吧. IP地址:每一 ...

  4. TCP/IP协议、UDP协议、 Http协议

    开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化 ...

  5. DNS使用的是TCP协议还是UDP协议(转)

    原文链接:DNS使用的是TCP协议还是UDP协议 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情 ...

  6. DNS使用的是TCP协议还是UDP协议

    原文:http://benbenxiongyuan.iteye.com/blog/1088085 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP ...

  7. DNS使用的是TCP协议还是UDP协议简析

    DNS使用的是TCP协议还是UDP协议简析   DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况 ...

  8. 转!!DNS域名解析使用的是TCP协议还是UDP协议?

    原文地址:https://segmentfault.com/a/1190000006100959 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP ...

  9. TCP协议与UDP协议

    网络通信协议规定了网络通信时,数据必须采用的格式.常见的协议有TCP协议,UDP协议. TCP协议 :(Transmission Control Protocol)传输控制协议. TCP是一种面向连接 ...

随机推荐

  1. hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)

    HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包 ...

  2. HDU 4380 Farmer Greedy 计算几何+bitset

    枚举直线,对于直线的某个点在直线的左端还是右端,能够状压出一个数.用bitset记录. 然后三角形就是3个bitset&一下 #include <cstdio> #include ...

  3. POJ1201 差分约束

    给定ai,bi, ci 表示区间[ai,bi]内至少有ci个点, 要求对于所有给定的ai,bi,ci,  至少多少个点才能满足题目的条件 重做这一题学到的一点是, 可以设变量来表示一些东西,然后才能找 ...

  4. Windows Phone开发(39):漫谈关键帧动画上篇

    原文:Windows Phone开发(39):漫谈关键帧动画上篇 尽管前面介绍的几种动画会让觉得很好玩了,但是,不知道你是否发现,在前面说到的一系列XXXAnimation中,都有一个共同点,那就是仅 ...

  5. js中escape的用法----前端页面简单加密

    escape() 方法,它用于转义不能用明文正确发送的任何字符.比如,电话号码中的空格将被转换成字符 %20,从而能够在 URL 中传递这些字符. http://localhost:8080/a?na ...

  6. 对于Hadoop的MapReduce编程makefile

    根据近期需要hadoop的MapReduce程序集成到一个大的应用C/C++书面框架.在需求make当自己主动MapReduce编译和打包的应用. 在这里,一个简单的WordCount1一个例子详细的 ...

  7. 瑞丽的SQL-SQL Server的表旋转(行列转换)

    所谓表旋转,就是将表的行转换为列,或是将表的列转换为行,这是从SQL Server 2005開始提供的新技术.因此,如果希望使用此功能,须要将数据库的兼容级别设置为90.表旋转在某些方面也是攻克了表的 ...

  8. Unreal Engine 4 创建Destructible Mesh(可破坏网格)

    Unreal Engine 4的物理引擎用的是PhysX. 支持网格破坏.布料.物理粒子等,非常强大.曾经须要编码才干完毕的工作,在Unreal Engine 4 中仅仅须要拖拖拽拽就完毕了,非常方便 ...

  9. ImportError with IronPython in C#

    I was using IronPython to execute python code inside my C# implementation lately, and I encountered ...

  10. Hdu-1565 电网接入(1) (国家压缩dp获得冠军

    正方形格通路(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...