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开发TCP和UDP的区别是什么?优缺点对比总结...相关推荐

  1. python中参数的传递

    一.函数的参数传递本质上就是∶从实参到形参的赋值操作.Python中"一切皆对象",所有的赋值操作都是'引用的赋值".所以,Python中参数的传递都是"引用传 ...

  2. python中参数是什么_python中parameter是什么

    parameter:形参,指的是函数中的参数名称:def add(x,y):>>>>>>>>>>>>>此处x,y为形参. ...

  3. python中每个模块都有一个名称、通过特殊变量_【有书共读01】《python学习手册》读书笔记十八...

    第24章  高级模块话题 本章研究一些模块相关的高级概念, 1.数据隐藏技巧 2.通过__future__模块启用新的语言特性 3.__name__使用模式变量 4.过渡性模块重载 5.由名称字符串的 ...

  4. python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题

    如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_ ...

  5. python 中参数*args, **kwargs

    python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs ...

  6. python中表示类的公有成员_在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。...

    在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员. 更多相关问题 [填空题] 汽车板金的一般修理工艺是:校正.敲平.().().焊接及点焊. [填空题] 汽车照明系统主要由() ...

  7. python中文件读写位置的作用-Python中文件的读写

    1.Python中的open()函数 Python中提供了open()内置函数,在默认情况下可以对文件对象进行操作. open()函数将文件名作为唯一必不可少的参数,并返回一个文件对象.如果只指定一个 ...

  8. python中参数(带星号的参数)

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  9. python函数默认参数位置_二十二、Python函数参数类型(位置、关键字、默认、不定长参数)...

    调用函数时可使用的参数类型 在调用Python函数时可使用的参数类型主要有以下几种: 必要参数(位置参数) 关键字参数 默认参数 不定长参数 必要参数(位置参数) 在Python中, 必要参数必须以正 ...

最新文章

  1. 数字证书及在WCF中的应用
  2. C语言 | C语言中main函数:int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
  3. Visual stuidio 快捷键的修改、查询
  4. C言语实现半隐式Euler解常微分方程(附完整源码)
  5. Hadoop源代码分析(二)
  6. 笨办法学 Python · 续 练习 13:单链表
  7. SYN flood***的原理及其防御 (一)
  8. c-free显示运行程序错误怎么办_Mac电脑没声音了怎么办?解决Mac上声音问题
  9. 深信服智安全 SCSA---1
  10. mysql 取首字母_MySQL中获取拼音首字母的方法
  11. 深入理解“智慧城市”
  12. X-VECTORS: ROBUST DNN EMBEDDINGS FOR SPEAKER RECOGNITION论文翻译
  13. 情景式领导力学习(2) - 实践案例及思考
  14. gyb的常用lazyCopy
  15. 常见网络故障及其解决办法
  16. 易乐游装在云服务器_新手搭建云服务器详细过程
  17. 香橙派Zero2电视盒子开发板连接HDMI如何修改分辨率
  18. node-addon-api 的简单使用,c++数值、字符串、对象、数组转化为js可用数据。
  19. 累计薅走数百万,EOS Dapps已成黑客提款机?
  20. 重新启动遇到错误导致系统安装无法继续

热门文章

  1. 半导体二极管的直流电阻和动态电阻如何区别?
  2. 新建一个spyder窗口
  3. 一起因网线问题引起的网络故障的解决过程
  4. 极光推送配置(Android Studio),亲测有效
  5. TextView文本折叠Three
  6. Docker使用自定义网络实现容器互联
  7. 【技巧】如何让普通用户可以杀掉自己用户的会话
  8. 【MyBatis框架】MyBatis入门程序第一部分
  9. Emmet:HTML/CSS代码快速编写规范(转发)
  10. Nginx http和反向代理配置实例介绍