TCP与UDP的区别

news2024/11/16 9:42:21

一、TCP协议

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,具有下面这些特征

1)面向连接

是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。

2)仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

3)面向字节流

TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

4)可靠传输

TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

5)提供拥塞控制

当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

6)TCP提供全双工通信

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。

二、UDP协议

UDP协议全称是用户数据报协议,是一种无连接的协议,具有下面这些特征

1)面向无连接

UDP协议在发送数据之前不需要建立连接,想发数据就可以开始发送了。并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。具体来说就是:
1)在发送端,应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,然后就传递给网络层了
2)在接收端,网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,不会任何拼接操作

2)有单播,多播,广播的功能

UDP 不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能。

3)UDP是面向报文的

发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文

4)不可靠

1)首先不可靠性体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。
2)收到什么数据就传递什么数据,并且也不会备份数据,发送数据也不会关心对方是否已经正确接收到数据。UDP只会把想发的数据报文一股脑的丢给对方,并不在意数据有无安全完整到达。
3)UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的缺点就是在网络条件不好的情况下可能会导致丢包,优点就是在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。

5)头部开销小

UDP 的头部开销小,只有八字节,相比 TCP 的至少二十字节要少得多,在传输数据报文时是很高效的

在这里插入图片描述

三,TCP与UDP的区别

UDPTCP
是否连接无连接面向连接
是否可靠不可靠传输,不使用流量控制与拥塞控制可靠传输,使用流量控制与拥塞控制
连接对象个数支持一对一、一对多,多对一和多对多交互通信只能是一对一通信
传输方式面向报文面向字节流
首部开销首部开销小,仅占8个字节首部最小20字节,最多60字节
使用场景适用于实时应用(IP电话、视频会议、直播等)适用于要求可靠传输的应用,例如文件传输

四、总结

1)TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
2)虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
3)对数据准确性要求高,速度可以相对较慢的,可以选用TCP

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浏览器DOM(上)——节点

文档对象模型是用来描述文档,这里的文档,是特指 HTML 文档。同时它又是一个“对象模型”,这意味着它使用的是对象这样的概念来描述 HTML 文档,DOM 也是使用树形的对象模型来描述一个 HTML 文档。 DOM API 大致会包含 4 个部分。 …

【MySQL数据库原理】MySQL 数据库环境变量设置问题完整解决与数据库删除测试

目录 1、环境变量与终端问题2、数据库删除测试1、环境变量与终端问题 在上一篇文章中提到mysql专用终端会失效的问题,通常使用一段时间之后,点击会出现闪退的情况,主要原因是没有配置好环境变量。 因此,要解决上述问题就需要配置环境变量,这样就可以在Windows终端失效m…

域名解析设置方法

域名解析设置都是实时生效的,一般只需几秒即可同步到各地 DNS 上,但各地 DNS 均有缓存机制,解析的最终生效取决于各运营商刷新时间! 一、A记录 ①.主机名必须填写; 常用主机名有:www//*,效果参见上图说明&…

【linux】基于环形队列的生产者消费者模型(信号量)

文章目录一、引入二、信号量2.1 信号量的概念2.2 信号量的PV操作2.3 信号量接口2.3.1 信号量初始化sem_init2.3.2 信号量销毁sem_destroy2.3.3 信号量等待sem_wait(P)2.3.4 信号量发布sem_post(V)三、基于环形队列的生产者消费者模型3.1 引入环形队列3.2 环形队列的访问3.3 代码…

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))一、饿汉模式单例(本身及时线程安全的)二、懒汉模式单例1.懒汉模式第一版,用INSTANCE null判断是否初始化…

2023 年男生还推荐报计算机专业吗?

计算机专业确实是一个非常热门的专业,就业前景也很广阔。 但是,近些年随着各个大学对计算机专业及其相关专业疯狂扩招,而且每年的毕业人口都在增多,行业是根本容纳不下的,就业竞争力度也急剧上升。因此,选…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

小白开发微信小程序52--测试小程序

经过前面的50,51两个重要的步骤之后,小程序的前端代码和后端代码终于部署在外网了,回顾这个过程,细节很多,环节很杂,而且麻烦,有这些过程:1)申请域名2)域名备…

Vue本地存储及用法

1.本地存储是什么? 以文件的方式存储在本地,通过把数据存在浏览器中,用户不必每次都向服务器请求 获取同一个信息。在你离线时,使用本地存储的数据而不是向远端服务器上请求 数据就显得非常有用,甚至在先用户也可以从中…

Java语法理论和面经杂疑篇《五.集合框架》

目录 1. 集合框架概述 1.1 数组的特点与弊端 1.2 Java集合框架体系 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 4. Collection子接口1:List 4.1 Li…

【数据分析之道-NumPy(三)】numpy切片与索引

文章目录 专栏导读1、前言2、NumPy数组切片2.1一维数组切片2.2多维数组切片3、NumPy数组索引3.1一维数组索引3.2多维数组索引4、NumPy数组高级索引4.1整数数组索引4.2布尔数组索引4.3数组索引总结专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域…

Linux驱动开发——字符设备(2)

目录 虚拟串口设备驱动 一个驱动支持多个设备 习题 虚拟串口设备驱动 字符设备驱动除了前面搭建好代码的框架外,接下来最重要的就是要实现特定于设备的操作方法,这是驱动的核心和关键所在,是一个驱动区别于其他驱动的本质所在,…

vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)

一、方法一 qrcode qrcode - npm 1.1、安装 yarn add qrcode 1.2、页面引入 import QRCode from qrcode; 1.3、方法里边使用 getQRCodeUrl(){ QRCode.toDataURL(hello world,{color: {dark:"#010599FF",light:"#FFBF60FF"}}).then((url) > {// 获…

【华为OD机试真题】查找树中元素(查找二叉树节点)(javaC++python)100%通过率

查找树中元素 知识点树BFSQ搜索广搜 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 已知树形结构的所有节点信息,现要求根据输入坐标(x,y)找到该节点保存的内容 值;其中: x表示节点所在的层数,根节点位于第0层,根节点的子节点位于第1层,依次类推; y表示节…

智慧井盖-物联网智能井盖系统-管网数字化监测,守护城市生命线

平升电子智慧井盖-物联网智能井盖系统-管网数字化监测,守护城市生命线实现对井下设备和井盖状态的监测及预警,是各类智慧管网管理系统中不可或缺的重要设备,解决了井下监测环境潮湿易水淹、电力供应困难、通讯不畅等难题, 适合安装于城市主干…

U盘独个文件不能超过4GB的原因——U盘的文件系统

U盘独个文件不能超过4GB的原因——文件系统一 背景1.1 文件系统1.2 “簇”/”群集“1.3 文件系统的历史1.3.1 FAT1.3.2 exFAT(扩展文件分配表)1.3.3 NTFS1.3.4 HFS1.3.5 APFS1.4 文件系统缺陷的渊源1.5 文件系统缺陷的解释1.6 报错原因二 文件系统的比较…

详细解读appium怎样连接多台设备

我们在做app自动化的时候,若要考虑兼容性问题,需要跑几台设备,要是一台一台的跑比较耗 时,因此需要考虑使用多线程来同时操作多台设备。 1.我们拿两台设备来模拟操作下,使用:adb devices查看连接状况&…

考研数二第十四讲 牛顿-莱布尼茨公式与用定义法求解定积分

牛顿-莱布尼茨公式 牛顿-莱布尼茨公式在微分与积分以及不定积分与定积分之间架起了一座桥梁,因此,这个公式又被称为微积分基本公式。 微积分基本公式的简单推导 在看微积分基本公式之前,我们先来看一个有点特殊的函数,积分上限…

全网最详细SUMO仿真软件教程——入门篇

目录SUMO下载前提知识使用netedit创建路网需求生成SUMO-GUI可视化SUMO下载 SUMO官网: SUMO下载链接 配置SUMO_HOME系统变量,后续引入包需要。 前提知识 sumo仿真器跑起来需要三个文件,分别是Network、Route以及SUMO configuration file。 在sumo中&a…

公司刚来的00后真卷,上班还没2年,跳到我们公司起薪20k....

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作都没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…