TCP与UDP区别(面试)
1.TCP
1.1 TCP的优点
可靠,稳定。
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
1.2 TCP的缺点
慢,效率低,占用系统资源高,易被攻击。
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
2.UDP
2.1 UDP的优点
快,比TCP稍安全。
UDP没有TCP的三次握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。
2.2 UDP的缺点
不可靠,不稳定 。
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。
3.TCP与UDP区别
TCP | UDP |
---|---|
面向连接 | 面向非连接 |
可靠(保证数据正确性) | 不可靠(可能丢包) |
效率低(慢) | 效率高(快) |
保证数据顺序 | 不保证数据顺序 |
占用系统资源高 | 占用系统资源低 |
面向字节流 | 面向报文 |
传输大量数据 | 传输少量数据 |
全双工可靠信道 | 不可靠信道 |
浏览器、文件传输 | 微信视频、语音 |
4.总结
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
2、TCP提供可靠的服务。通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
5.应用场景
5.1 什么时候应该使用TCP?
当对网络通讯质量有要求的时候使用TCP,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、 QQ文件传输 。
5.2 什么时候应该使用UDP?
当对网络通讯质量要求不高的时候使用UDP,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 (实时传递)
有些应用场景对可靠性要求不高会用到UPD,比如长视频,要求速率
TCP与UDP区别(面试)相关推荐
- 大剑无锋之TCP和UDP区别【面试推荐】
TCP与UDP区别总结: 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失, ...
- TCP与UDP区别及34连接
一.TCP与UDP区别 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不 ...
- TCP和UDP区别,以及适用情况
TCP和UDP区别 共同点: 同为传输层协议 不同点: TCP: 有连接,可靠 (三次握手,四次挥手) UDP: 无连接,不保证可靠 TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高 ...
- 【亡羊补牢】计算机网络灵魂之问 第8期 tcp和udp区别
这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! ...
- 海康摄像头直播视频上传到流媒体服务器平台后如何降低延迟?(附TCP及UDP区别介绍)
近期有位开发者为了用我们的国标GB28181流媒体服务器进行测试,在自己的现场环境安装了海康的有线摄像头,通过4g转wifi来连接,上传视频到平台之后,打开视频最长需要10分钟左右才能显示,大多数时候 ...
- TCP和UDP区别以及TCP的三次握手和四次挥手
TCP和UDP的概念 TCP: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议 UDP: Internet 协议 ...
- tcp和UDP 区别
TCP/IP模型 物理层 : 比特流与电子信号之间的转换 数据链路层:互联设备之间传送和识别数据帧 网络层:负责路由以及把分组报文发送给目标网络或主机.网络地址管理和路由选择 传输层:管理两个网络终端 ...
- 一文详解 TCP与UDP区别
计算机与其他网络设备相互通信,通信的双方在发送和接收数据包时必须基于相同的规则(例如:如何找到通信目标.如何发起通信.如何结束通信等规则都需要事先确定),我们将这种规则称为协议(Protocol). ...
- Python网络编程—(TCP、UDP区别)
tcp套接字和udp套接字编程区别 1.流式套接字是以字节流方式传输数据,数据报套接字以数据报形式传输 2.tcp套接字会有粘包,udp套接字有消息边界不会粘包 3.tcp套接字保证消息的完整性,ud ...
最新文章
- 程序员单身比例有多高?【2019开发者图鉴】告诉你
- 独家 | 一文带你盘点最新热门技术话题,技术圈潮人必读!
- Intellij Idea生成serialVersionUID的方法
- luatex plain 从零构建
- 巴菲特将退休并把公司交给网红接管?被一封信恶搞...
- SLF4J 与Log4J
- pytorch 画loss曲线_Pytorch练习amp;#8211;绘制Loss曲线 - 易采站长站
- HTML动态分页函数
- C语言读取wav文件中特定内容6,c读取wav文件,头文件后面的所有数据
- 跨境电商:YouTube视频营销必看攻略
- 你小子代码写成这样,老夫也无可奈何
- 物流项目管理的团队建设 (zt)
- 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。
- Hyper-v集群高可用性配置
- 并发中的同步锁(synchronized)
- 301、404、200、304等HTTP状态
- influx配置文件详解
- STM32入门笔记(02):F103C8T6 舵机PWM控制实验(SPL库函数版)
- Hive系列之HSQL转换成MapReduce过程
- Linux服务器之间文件同步 inotify+Unison