在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Python开发TCP和UDP的区别是什么?优缺点对比总结:UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口号信息。TCP 是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手。UDP 速度快、操作简单、要求系统资源较少;TCP 在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。
UDP 概念:
UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口号信息。
优点:UDP 速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送
缺点:UDP 传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠。
TCP 概念:
TCP 是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手
优点:TCP 在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。
缺点:TCP 相对于 UDP 速度慢一点,要求系统资源较多。
TCP与UDP区别:
1.、基于连接vs无连接
TCP是面向连接的协议,而UDP是无连接的协议。这意味着当一个客户端和一个服务器端通过TCP发送数据前,必须先建立连接,建立连接的过程也被称为TCP三次握手。
2、 可靠性
TCP提供交付保证,这意味着一个使用TCP协议发送的消息是保证交付给客户端的,如果消息在传输过程中丢失,那么它将重发。UDP是不可靠的,它不提供任何交付的保证,一个数据报包在运输过程中可能会丢失。
3、有序性
消息到达网络的另一端时可能是无序的,TCP协议将会为你排好序。UDP不提供任何有序性的保证。
4、速度
TCP速度比较慢,而UDP速度比较快,因为TCP必须创建连接,以保证消息的可靠交付和有序性,他需要做比UDP多的事。这就是为什么UDP更适用于对速度比较敏感的应用。TCP适合传输大量数据,UDP适合传输少量数据。
5、重量级vs轻量级
TCP是重量级的协议,UDP协议则是轻量级的协议。一个TCP数据报的报头大小最少是20个字节,UDP数据报的报头固定是8个字节。TCP报头中包含序列号,ACK号,数据偏移量,保留,控制位,窗口,紧急指针,可选项,填充项,校验位,源端口和目的端口。而UDP报头只包含长度,源端口号,目的端口号,校验和。
6、流量控制和拥塞控制
TCP有流量控制和拥塞控制。UDP没有流量控制和拥塞控制。
7、TCP是面向字节流,UDP是面向报文的
TCP是字节流的协议,无边界记录。
UDP发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识别接收到的数据报的记录边界。
8、TCP只能单播,不能广播和组播;UDP可以广播和组播
TCP应用场景:效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认,重发,排序等操作,相比之下效率没有UDP高。举几个例子:文件传输、邮件传输、远程登录。
UDP应用场景:效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、QQ视频,网络语音电话(即时通讯,要求速度高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重传机制)、广播通信。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
除了python人工智能还可以用哪些编程语言实现?
关注人工智能技术方面的朋友看到这个标题肯定会说,人工智能首选编程语言就是python。是的,不可否认python因为简单易学,而且它可以无缝的与数据结构和其他常用的AI算法同时使用。很多机遇python的类库都可以在AI中得到广泛的使用。所以大家公认python是人工智能首选语言,但是除了python之外,人工智能还可以用哪些编程语言实现呢?
9322
2019-06-20 18:04:49
Python开发中字典和 json的区别
Python开发中字典和 json的区别:字典是一种数据结构,json是一种数据的表现形式,字典的 key 值只 要是能 hash 的就行,json 的必须是字符串。
10758
2019-06-27 14:09:52
Python可以干什么?Python胶水语言由来
Python是面向对象的编程语言,编译速度快,具有丰富和强大的库,被称为“胶水语言”,Python胶水语言由来,Python灵活运用能把用其他语言编写的各种模块联结在一起,擅于利用这些库就可以完成绝大部分工作。用Python从web开发到数据科学、机器学习等,Python在现实世界中的应用有无限可能。
6906
2019-09-29 10:47:44
为什么大家都学Python编程?学Python开发优势
在招聘网站上不难发现很多公司的招聘信息,某些岗位招聘要求有Python编程经验优先。近年国家政策大力扶持,python进入学校的课堂,各大高校相继开设人工智能专业;学python编程可以高效解决工作中遇到的问题,提高工作效率。
5193
2020-02-07 15:46:32
Python初学者为什么要选择Jupyter?
相信学习过编程的你,对于编译器肯定是不陌生的,一定使用过 Pycharm、VScode 等知名 IDE 工具,但今天本文要讲解的并不是这些,而是一款在 IT 界享誉盛名的神级 Web 编辑器——Jupyter,那么,Python初学者为什么要选择Jupyter呢?简单来讲,它不用安装,不用激活,功能强大,方便迭代更新!下面我们一起来了解一下Jupyter的起源、核心特点以及优势。
10201
2020-08-18 11:46:59