协议系列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是一种面向连接 ...
随机推荐
- MYSQL正在使用select发现现场记录方法,包括一个逗号分隔的字符串
首先,我们创建一个逗号分隔字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR ...
- windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码
原文:windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码 关于silverlight和wp7(windows phone 7)是默认不支持gb2312 ...
- XML解析中的namespace初探
原文:XML解析中的namespace初探 初学者在解析XML文件的时候最容易遇到的问题恐怕就是XML的namespace了,本文旨在对namespace做一个简要的介绍. namespace的意义无 ...
- J2SE基础:1.类和对象基础
什么是对象 在Java语言,全部的人,事物或者模块都是一个对象. 同样的对象具有一些同样的特性. 狗,猫,蛇3个对象(动物的对象) 苹果,梨,桔子3个对象(水果的对象) 什么是类 能够将现实生活中的对 ...
- 【前段开发】行内元素和块级元素总结(HTML CSS)
块级元素 <address> information on author <blockquote> long quotation <button> push but ...
- URAL 1728. Curse on Team.GOV(STL set)
题目链接:space=1&num=1728" target="_blank">http://acm.timus.ru/problem.aspx?space= ...
- Linux如何用QQ?Linux下QQ使用的几种方案
在linux下如何使用QQ?在ubuntu11.10中如何使用QQ?或许有初涉linux的人这样问,我们可以看看ubuntusoft总结出来的几种在linux系统下用QQ的方法.前面的几种主要的方法都 ...
- 小猪的Android入门之路 Day 4 - part 1
小猪的Android入门之路 Day 4 - part 1 Android事件处理机制之--基于监听的事件处理机制 本节引言: 在開始本个章节前,我们先回想下,如今我们已经知道了android的一些相 ...
- 领域驱动设计(DDD)部分核心概念的个人理解(转)
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...
- python常用类型的内置函数列表
1.list.append(obj) 向列表中加入一个对象obj fruits = ['apple', 'pear', 'orange'] >>> fruits.ap ...