协议系列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是一种面向连接 ...
随机推荐
- SAE开发一个应用(不仅仅是建站)
参考http://jingyan.baidu.com/user/npublic/?un=944615045 http://sae.sina.com.cn/ 激活sae账户 登陆新浪云计算官方网站,网址 ...
- Java--调试--单步调试,断言,单元测试
单步调试:主要查看变量内容的变化 1.设置断点位置,设置在可能出现问题的代码 2.以Debug as方式运行 程序 3.F5 --> step into 进入方法内部进行调试 F6 ...
- SignalR技术
Asp.net SignalR快速入门 一.前言 之前半年时间感觉自己有点浮躁,导致停顿了半年多的时间没有更新博客,今天重新开始记录博文,希望自己可以找回初心,继续沉淀.由于最近做的项目中用到Sign ...
- 发展合作-ASP.Net传递页面之间的值
在合作开发中,在页面串传值的时候,遇到了一些困难.在网上搜罗了一下,发现好多的传值方式,能够简单地分下面三种. 一. URL传值 原页面的值放到目标页面的URL中.然后通过QueryString方法获 ...
- Galaxy (hdu 5073 数学)
Galaxy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total S ...
- MySQL和Oracle开发差异
1) 数据类型差异 Oracle MySQL 注释 单独创建序列来实现 自动增长的数据类型 varchar2 varchar number tinyint,smallint,mediumint,in ...
- 索尼 LT26I刷机包 X.I.D 增加官方风格 GF A3.9.4 各方面完美
ROM介 FX_GF_A系列是具有官方风格的.稳定的.流畅的.省电的.新功能体验的.最悦耳音效体验的ROM. FX_GF_A更新日志 ☆ GF_3.9.4 更新信息 ☆ 更新播放器 ☆ 更新adsp数 ...
- OWIN与Katana
OWIN与Katana详解 前言 我胡汉三又回来了,!!!!, 最近忙成狗,实在没空写博文,实在对不起自己,博客园上逛了逛发现 我大微软还是很给力的 asp.net core 1.0 .net c ...
- c++ 计算程序运行时间
转载 http://blog.csdn.net/trustbo/article/details/10582287 以前经常听人提起如何计算程序运行时间,给出一系列函数,当时没有注意,随便选了clock ...
- 树莓派安装 dig命令
apt-get install dnsutils