面试题之TCP与UDP的区别

一、简介

UDP协议和TCP协议都是传输层协议。下面简单先介绍一下TCP和UDP的概念:

  • TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据(有点类似于打电话必须先建立连接)。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
  • UDP(User Datagram Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地(在网络不稳定的时候可能发生丢包)。由于UDP在传输数据报前不用建立连接,且没有超时重发等机制,所以数据传输效率比TCP高。

二、区别

以下是TCP和UDP的区别:

TCP和UDP的区别

区别

TCP

UDP

概念

(Transmission Control Protocol)

传输控制协议

(User Datagram Protocol )

用户数据报协议

是否面向连接

面向连接(发送数据之前需要先建立连接)

无连接(发送数据之前不需要建立连接)

数据模式

字节流模式(一连串无结构的字节流)

数据报模式

是否支持广播和多播

每一条TCP连接只能有两个端点,只能是一对一通信

支持一对一、一对多、多对一和多对多交互通信

是否提供可靠传输服务

可靠传输,使用流量控制和拥塞控制

尽最大努力交付,不保证可靠性;不存在流量控制和拥塞控制;

功能

存在建立连接(三次握手)、关闭连接(四次挥手)、保证可靠,在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源

 

性能

性能稍微差一点

性能比TCP高

优点

可靠,稳定,保证数据顺序

快,比TCP稍安全(因为不存在握手、确认、窗口、重传、拥塞控制等机制,所以不容易被攻击)

缺点

慢,效率低,占用系统资源高,易被攻击

不可靠(网络不稳定很容易发生丢包),不稳定,不保证数据顺序

适用场景

整个数据要准确无误的传递给对方,如浏览器、邮件发送,文件传输等

对网络质量要求不高的时,要求数据尽快传输时,也就是实时性稍微高一点的场景,如qq语音、实时视频会议等

发布了197 篇原创文章 · 获赞 86 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/103751658
今日推荐