tcp和udp分别适合什么时候用 TCP和UDP你要知道的123

UDP协议是TCP协议的兄弟,UDP和TCP都是用来承载用户数据,但他们的区别是明显的。本文将对UDP的基本概念、特性、应用场景及运行机制进行探究。如果你想了解TCP,请参考我之前的文章TCP和UDP,你要知道的123 (TCP篇)

基本概念

  • 面向无连接
  • UDP(User Datagram Protocol),用户数据报协议,如果您看过我之前的关于TCP运行机制的文章,应该知道TCP就像一位绅士,他在传输数据前需要经过“三次握手”,而UDP则非常的直率,一上来就直奔主题(传输数据)。所以我们称TCP是面向连接的协议,而UDP是面向无连接的协议。
  • 使用端口进行通信
  • 这点和TCP是一致的,UDP也使用端口进行数据通信,比如DNS使用的就是UDP的53端口。但要注意的是TCP和UDP的端口是独立的,比如TCP的53端口正在使用,并不会影响UDP使用53端口。

UDP特性

UDP的速度比TCP快。TCP带来了可靠性的同时,也增加了额外的网络开销(比如每次建立连接都需要三次握手,每个报文的收发都需要通信双方确认)。这时候UDP的优势就突显出来了,使用UDP协议传输数据,不需要事先建立任何连接,可以保证开销最小化,

UDP并不保证传输数据的可靠性,打个比方,A主机传给B主机的数据,并不一定保证能送达。这时候你也许会有个疑问,数据都不能保证可靠性,我们为啥还需要UDP?

应用场景

TCP的确提供了更好的可靠性保障,但在网络世界,带宽开销可谓寸土寸金。像下载软件、文字/语音聊天、视频等都是UDP一展身手的场景,因为这些场景,就算传数据没有送达,通常也不会有重大影响,比如视频卡的时候重新刷新一下就好了,再比如发送通信消息,如果发送失败,重新再发送一次也不会损失什么。

image.png

我们看到UDP报文的首部为8个字节(byte),我们主要关注前面4个字节,源端口号和目的端口号。前面提到两台主机的程序之间都是通过端口号进行通信,源端口号表示发送主机的端口号,16位表示最大可以使用65536个端口(2的16次方),端口范围是从0-65535。目的端口是通信主机的端口,范围和源端口一样。要注意的是0-1024是系统保留端口,我们尽量不要使用。另一个要注意的地方是端口是会重复利用的,比如65535端口使用以后,系统会检测当前哪些端口已经关闭,系统会对这些端口进行重复使用。

运行机制

tcp和udp分别适合什么时候用 TCP和UDP你要知道的123(1)

image.png

这是一个典型的udp通信例子,我们看到某主机的8410端口一直在给IP为175打头的主机的1109端口发送报文,在他们之前没有任何确认报文,也没有事先建立连接,这样的效率是TCP不能比拟的。

UDP运行的核心就2个:

  1. 通信前无需建立连接;

2.通信时无需确认。

这就是UDP快的秘诀,曾记得这么一句话,世上武功,唯快不破。所以UDP虽然看上去不那么可靠,但有它的用武之地。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页