所述上部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. Apache James使用的方法及相关心得(转)

    经过一番的辛苦努力,终于把James 配置搞定啦,好记性不如烂笔头啊,赶紧记下我的成功经过,以备以后查阅! 首先要做的就是配置域名的MX 记录啦: 先添加一条A记录: mail.abc.com 指向 ...

  2. Java设计模式之认识阶段

    设计模式是什么? 设计模式(Design pattern)是一套被重复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 其本质就是继承与接口的组合应用. 为什么要用设计模? 使用设计模式是为了 ...

  3. Django中的一些同步Model和数据库的命令

    1 最简单而又令人兴奋的命令: manage.py syncdb 创建了指定app中的model相应的数据库表,假设是第一次使用此命令,会提示是否创建超级用户,输入username,Email和pas ...

  4. cf 323A A. Black-and-White Cube 立体构造

    A. Black-and-White Cube time limit per test 1 second memory limit per test 256 megabytes input stand ...

  5. windows phone (13) 样式继承

    原文:windows phone (13) 样式继承 在上一遍文章中已经介绍到可以在Resources集合中定义样式,我们也可以在一个样式上引用其他的样式,这就是继承的概念,使用方法是将引用的样式放置 ...

  6. Android在 Alertdialog对话框中点击消失?

    在开发的时候遇到一个问题.就是一触摸对话框边缘外部,对话框会自己主动消失.这个问题非常纠结啊,查找了一下发现从Android 4.0開始.AlertDialog有了变化.就是在触摸对话框边缘外部.对话 ...

  7. uva103(最长递增序列,dag上的最长路)

    题目的意思是给定k个盒子,每个盒子的维度有n dimension 问最多有多少个盒子能够依次嵌套 但是这个嵌套的规则有点特殊,两个盒子,D = (d1,d2,...dn) ,E = (e1,e2... ...

  8. win8/win10/win2012r2 存储池 冗余分析

    StorageSpace:a. Simple,相当于RAID0,无冗余,不考虑b. Two-way Mirror,双重镜像,至少2块盘,性能单盘,可以坏一块盘c. Three-way Mirror,三 ...

  9. 10令人惊叹的模型的影响HTML5应用程序及源代码

    HTML5已经越来越流行起来了.尤其是移动互联网的发展,更是带动了HTML5的迅猛发展,我们也是时候学习HTML5了,以防到时候落伍.今天给大家介绍10款效果惊艳的HTML5应用.方便大家学习,也将应 ...

  10. js你真的了解offsetWidth吗

    offsetWidth是什么? 答:它可以获取物体宽度的数值 那么就只是这样吗! html部分 <div id="div1"></div> <styl ...