协议系列UDP协议
所述上部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协议的更多相关文章
- TCP协议与UDP协议的区别
TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...
- (转)TCP协议与UDP协议的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...
- IP地址、端口、TCP协议、UDP协议
最近在看<疯狂java讲义>,第17章网络编程里提到IP地址.端口.TCP协议.UDP协议这几个概念.以前上课时学过,现在重温了一遍.在这里,用自己的语言简单的讲解一下吧. IP地址:每一 ...
- TCP/IP协议、UDP协议、 Http协议
开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化 ...
- DNS使用的是TCP协议还是UDP协议(转)
原文链接:DNS使用的是TCP协议还是UDP协议 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情 ...
- DNS使用的是TCP协议还是UDP协议
原文:http://benbenxiongyuan.iteye.com/blog/1088085 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP ...
- DNS使用的是TCP协议还是UDP协议简析
DNS使用的是TCP协议还是UDP协议简析 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况 ...
- 转!!DNS域名解析使用的是TCP协议还是UDP协议?
原文地址:https://segmentfault.com/a/1190000006100959 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP ...
- TCP协议与UDP协议
网络通信协议规定了网络通信时,数据必须采用的格式.常见的协议有TCP协议,UDP协议. TCP协议 :(Transmission Control Protocol)传输控制协议. TCP是一种面向连接 ...
随机推荐
- Knockout应用开发指南 第六章:加载或保存JSON数据
原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...
- java api例子网站
http://www.programcreek.com/java-api-examples/ http://www.apihome.cn/api/list/ http://www.docjar.com ...
- hdu1025 Constructing Roads In JGShining's Kingdom (nlogn的LIS)
题目链接 第一次写nlogn复杂度的LIS,纪念一下. 题目意思是说.有两条平行线.两条平行线都有n个城市,都是从左到右标记为1--n,一条线上是富有城市,一个是贫穷城市.输入n.接下来有n行,p,r ...
- hdu4336压缩率大方的状态DP
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 【VMware混合云】掀起你的盖头来
作者:范军 (Frank Fan) 新浪微博:@frankfan7 微信:frankfan7 VMware混合云服务(vCHS)预计在2013年8月23日正式面向用户推出.目前开放服务的四个数据中 ...
- 树上点对统计poj1741(树的点分治)
给定一棵树,边上有权值,要统计有多少对点路径的权值和<=k 分治算法在树的路径中的应用 这个论文里面有分析. 任意两点的路径,要么过根结点,要么在子树中.如果在子树中,那么只要递归处理就行了. ...
- Amazon AWS创建RHEL 7实例
在AWS上登录 如果没有账号的话先注册,参考 http://blog.banban.me/blog/2014/06/09/li-yong-awsmian-fei-zhang-hu-da-jian-vp ...
- PHP 类属性 类静态变量的访问
php的类属性其实有两种,一种是类常量,一种是类静态变量.两种容易引起混淆. 如同静态类方法和类实例方法一样,静态类属性和实例属性不能重定义(同名),但静态属性可以和类常量同名. <?php c ...
- android 设置默认启动network mode
network mode常见类型 WCDMA preferred : 0 GSM only : 1 WCDMA only : 2 GSM UMTS : 3 CDMA : 4 ... (参考RILCon ...
- 呈现怎样的香蕉饼路线Android系统
无话可说,该系统的第一版,Android有的还可以,路由设置确实有闪光现象背.与其他的稳定版本发布,被能够机顶盒和路由组合.其次是SSD,还是很不错的. 硬件 watermark/2/text/aHR ...