使用Adobe AIR 2.0 Beta所新支持的UDP协议

这里提到的网络协议UDP其实是相对于TCP来说的。许多Flash/Flex/AIR开发者对与网络协议理解并不是非常清楚和明白。我们这里当然不打算去深入分析这两种协议的底层区别,但是为了明白AIR2.0支持UDP协议的动机以及UDP协议能够让我们多做哪些事,我们还是需要介绍一下UDP协议的TCP协议这两种网络传输协议的区别的。

 

TCP协议的中文名称是 传输控制协议 。而UDP协议的中文名称是 用户数据报协议

TCP协议是互联网发展过程中非常重要的一个协议,当使用TCP协议作为底层协议时,他能够保证你发送的数据按照一定的时序到达目的地,并且目的地会根据TCP协议的控制数据来校验数据的完整性和正确性。同时TCP协议在网络流量比较拥堵的时候,可以控制数据的流量来防止丢包的发生。需要了解,TCP协议是一个非常严谨的协议,他能够保证数据在恶劣介质的网络(比如wifi,grps连接等)上传送的时候保证数据安全到达。

然而,TCP协议这种严谨性同时带来了一个问题,由于对数据完整性和正确性的苛刻要求,TCP协议不得不在协议自身中加入大量控制内容。这些控制内容可以用于检验数据包的时序,完整性,正确性等。由于这些数据的加入,导致发送端和接收端的计算量加大,并且,由于这些控制数据的加入,使得传输数据的体积也加大了很多。加重了对网络的负载。这些问题最后都指向一个致命的问题:数据的延迟性被增大了。

对于网络游戏,视频聊天,语音聊天这种应用,由于用户对数据实时性的要求很高,而对数据完全正确性的要求又有所降低。(比如,聊天的时候,如果有个别数据包丢失或者有误,充其量你就得到一些声音不清楚,不会影响聊天的体验。) UDP协议就诞生在这种需求下。

所以,总结起来,UDP协议被广泛的使用在对网络数据传输实时性很高而对数据准确性要求不是非常高的场合。而当今网络传输物理介质的高速提升(光纤)也降低了数据包丢失的几率。当网络状态很好的时候,UDP协议的这两个缺点又可以很大程度上被克服。因此,UDP协议现在被广泛运用在很多应用中。

 

riadevID: 
您给予的分值: None 平均分: 8.4 ( 7 票)

说人家不懂装懂的才是不懂装懂啊

回去翻网络课本去吧

一楼很容易打击人家

一楼很容易打击人家的积极性,如果有异议也可以换用另一种说话方式啊,、!

不懂装懂

“UDP协议就诞生在这种需求下” ?????

TCP/IP协议时基于UDP的, 就是在UDP的基础上加了正确性校验。

关于协议的用语

说UDP诞生在这种需求下的确不合适,主要是诞生这个词可能不太合适。但UDP的出现确实克服TCP的一些笨重的特性。
我上文也说了,TCP协议比UDP协议多了时序,校验等功能。但是TCP/IP协议并不是基于UDP的,实际上TCP早于UDP投入实际使用。
具体参考
http://en.wikipedia.org/wiki/User_Datagram_Protocol
http://en.wikipedia.org/wiki/Transmission_Control_Protocol

顺便再补充一下
TCP和UDP的本质不同在于TCP是一个有连接的协议,意味着这个协议要求双方不断确认自己还和对方保持连接,无论传输什么内容,TCP都要求对方发送收到的确认。
而UDP则根本不管对方是否确认,发出去了就完事了,丢了也好,没丢也好。都不关我的事了。

TCP和UDP同属传输协议层,在网络协议中,属于位于介质层协议之上,应用程序协议层之下的。没有从属或者包含关系。

发表新评论

  • 网页地址和电子邮件地址将会被自动转换为链接。
  • 行和段被自动切分。
  • 您可以使用下面的标签来高亮显示您的评论内容: <code>, <blockcode>. 可以使用"[foo]".旁边显示标签样式 "<foo>" PHP代码可以用这样的区块来包含<?php ... ?> or <% ... %>

更多格式化选项信息

验证区域
系统验证:请回答下面的问题