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区别(面试)相关推荐

  1. 大剑无锋之TCP和UDP区别【面试推荐】

    TCP与UDP区别总结: 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失, ...

  2. TCP与UDP区别及34连接

    一.TCP与UDP区别 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不 ...

  3. TCP和UDP区别,以及适用情况

    TCP和UDP区别 共同点: 同为传输层协议 不同点: TCP: 有连接,可靠  (三次握手,四次挥手) UDP: 无连接,不保证可靠 TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高 ...

  4. 【亡羊补牢】计算机网络灵魂之问 第8期 tcp和udp区别

    这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! ...

  5. 海康摄像头直播视频上传到流媒体服务器平台后如何降低延迟?(附TCP及UDP区别介绍)

    近期有位开发者为了用我们的国标GB28181流媒体服务器进行测试,在自己的现场环境安装了海康的有线摄像头,通过4g转wifi来连接,上传视频到平台之后,打开视频最长需要10分钟左右才能显示,大多数时候 ...

  6. TCP和UDP区别以及TCP的三次握手和四次挥手

    TCP和UDP的概念 TCP: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议 UDP: Internet 协议 ...

  7. tcp和UDP 区别

    TCP/IP模型 物理层 : 比特流与电子信号之间的转换 数据链路层:互联设备之间传送和识别数据帧 网络层:负责路由以及把分组报文发送给目标网络或主机.网络地址管理和路由选择 传输层:管理两个网络终端 ...

  8. 一文详解 TCP与UDP区别

    计算机与其他网络设备相互通信,通信的双方在发送和接收数据包时必须基于相同的规则(例如:如何找到通信目标.如何发起通信.如何结束通信等规则都需要事先确定),我们将这种规则称为协议(Protocol). ...

  9. Python网络编程—(TCP、UDP区别)

    tcp套接字和udp套接字编程区别 1.流式套接字是以字节流方式传输数据,数据报套接字以数据报形式传输 2.tcp套接字会有粘包,udp套接字有消息边界不会粘包 3.tcp套接字保证消息的完整性,ud ...

最新文章

  1. 程序员单身比例有多高?【2019开发者图鉴】告诉你
  2. 独家 | 一文带你盘点最新热门技术话题,技术圈潮人必读!
  3. Intellij Idea生成serialVersionUID的方法
  4. luatex plain 从零构建
  5. 巴菲特将退休并把公司交给网红接管?被一封信恶搞...
  6. SLF4J 与Log4J
  7. pytorch 画loss曲线_Pytorch练习amp;#8211;绘制Loss曲线 - 易采站长站
  8. HTML动态分页函数
  9. C语言读取wav文件中特定内容6,c读取wav文件,头文件后面的所有数据
  10. 跨境电商:YouTube视频营销必看攻略
  11. 你小子代码写成这样,老夫也无可奈何
  12. 物流项目管理的团队建设 (zt)
  13. 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。
  14. Hyper-v集群高可用性配置
  15. 并发中的同步锁(synchronized)
  16. 301、404、200、304等HTTP状态
  17. influx配置文件详解
  18. STM32入门笔记(02):F103C8T6 舵机PWM控制实验(SPL库函数版)
  19. Hive系列之HSQL转换成MapReduce过程
  20. Linux服务器之间文件同步 inotify+Unison

热门文章

  1. linux jre环境变量配置
  2. 内边框直角,外边框圆角
  3. 新机介绍:小米 Redmi Note 11E标准版和Pro版
  4. HttpOnly 标志——保护 Cookie 免受 XSS
  5. acer云桌面计算机,云电脑室快速操作指导(acer)整理素材.docx
  6. 送给自己人生的第一份生日礼物——Java小游戏!
  7. 判断一个数是否能被3或5整除
  8. SVN版本控制分支、合并功能使用
  9. Mysql的课后习题 40T
  10. Unity FSM(有限状态机)