TCP和UDP的区别

  1. 连接:TCP 是面向连接的传输层协议,传输数据前先要建立连接;UDP 是不需要连接,即刻传输数据。
  2. 首部开销:TCP 首部长度较长,首部在没有使用「选项」字段时是 20 个字节,如果使用了「选项」字段则会变长的;UDP 首部只有 8 个字节,并且是固定不变的,开销较小。
  3. 传输方式:TCP是基于字节流传输数据的,消息之间没有边界,若数据过大在TCP层面就会进行按MSS大小进行分片,一片数据组成一个TCP报文;UDP按包进行传输,不会对数据分片,这就是说应用层一次交给UDP多长的数据,UDP就将其组成一个UDP报文交给IP层,若报文过长超过MTU大小,则IP层会进行分片,一片丢失则对于接收端整个UDP报文就丢失了,这也是UDP丢包率高的原因之一。
  4. 可靠性:TCP通过重传等机制保证数据的可靠交付和按序到达,而UDP不保证可靠交付数据。
  5. 流量/拥塞控制:TCP会通过流量控制和拥塞控制应对网络和服务器的波动;而UDP没有这些机制,有数据就发,大量的UDP数据可能会导致网络信道拥塞,因此部分运营商可能会对UDP进行限制,导致UDP丢包率进一步增加。
  6. 通信对象:TCP是一对一通信,UDP 支持一对一、一对多、多对多的交互通信。
  7. 应用场景:TCP用于要保证数据可靠交付的场景,如FTP文件传输、HTTP网络通信等;UDP不保证可靠交付,但是简单高效,通常用于对时效性有要求但是丢包率容忍度高的场景,如音视频媒体直播,或者用于数据量小的场景,如DNS协议等,或者作为基础的传输协议在这上面做功能封装,如QUIC协议就是基于UDP开发的。

在这里插入图片描述
在这里插入图片描述

引申阅读:数据包在哪些层面可能会丢失?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s服务发现之第二弹Service详解

创建 Service Kubernetes Servies 是一个 RESTFul 接口对象,可通过 yaml 文件创建。 例如,假设您有一组 Pod: 每个 Pod 都监听 9376 TCP 端口每个 Pod 都有标签 appMyApp apiVersion: v1 kind: Service metadata:name: my-service spec:s…

Modbus TCP/BACnet IP/MQTT物联网网关IOT-810介绍及其典型应用

伴随着计算机技术以及互联网的发展,物联网这个概念已经逐渐进入我们的日常生活,例如智能泊车,智能家居,智能照明,智能楼宇等。智能楼宇是将传统的楼宇自控系统与物联网技术相融合,把系统中常见的传感器、设…

设计模式 ~ 观察者模式

概念 观察者模式是一种设计模式,也被称为发布-订阅模式或事件模式; 用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新; ~ 如:DOM事件、vue …

AVLTree深度剖析(单旋)

前言 二叉树搜索树是存在一定的缺陷问题的,当我们要插入的数据是有序,或者说接近于有序,,二叉搜索树及有可能退化为单支树,查找元素相当于在顺序表当中搜索元素,效率低下 --------------------------------…

Python对Excel不同的行分别复制不同的次数

本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制;并将所得结果保存为新的Excel表格文件的方法。 这里需要说明,在我们之前的文章Pyt…

【C++】list的使用及底层实现原理

本篇文章对list的使用进行了举例讲解。同时也对底层实现进行了讲解。底层的实现关键在于迭代器的实现。希望本篇文章会对你有所帮助。 文章目录 一、list的使用 1、1 list的介绍 1、2 list的使用 1、2、1 list的常规使用 1、2、2 list的sort讲解 二、list的底层实现 2、1 初构…

等保测评包过是真的吗?安全吗?

最近有小伙伴在问,等保测评包过是真的吗?安全吗?哪位大哥来解答一下? 等保测评包过是真的吗?安全吗? 【回答】:等级保护采用备案与测评机制,而非认证机制,因此不存在“包…

【C语言】杨氏矩阵中寻找元素

题目名称: 杨氏矩阵 题目内容: 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从下到上递增的(杨氏矩阵的定义),请编写程序在这样的矩阵中查找某个数字是否存在。 形如这样的矩阵就是杨氏…

Windows bat隐藏运行窗口的几种方案

文章目录 一、背景二、测试数据三、隐藏bat运行窗口方案1. 使用VBScript脚本2. 使用mshta调用js或vbs脚本3. 将bat编译为exe程序4. 使用任务计划程序 一、背景 有些程序在执行批处理脚本时,可能会看到dos窗口,或者看到窗口一闪而过。如果批处理脚本执行…

【AUTOSAR】:车载以太网

车载以太网 References参考文献车载以太网的物理连接MACPHYPHY的主从关系100BASE-T1回音消除车载以太网的应用层协议References参考文献 汽车软件通信中间件SOME/IP简述100BASE-T1以太网:汽车网络的发展车载以太网的物理连接 MAC MAC(Media Access Control介质访问)一般集成…

【VirtualBox】安装 VirtualBox 提示 needsthe Microsoft Visual C++ 2019

概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 一、开发环境 开发环境:windows10虚拟机:VirtualBox 7.0.8 二、报错 ubun…

23.JavaWeb-集群+Nginx+JMeter

1.集群概念 平时用的服务是的并发量是有限的,像tomcat只有不到500的并发量,不能满足高并发的需求,因此就采用了集群的方法,用多个服务器 当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而…