TCP和UDP的区别和优缺点

2023-11-10

TCP与UDP区别

1连接方式

TCP:面向连接

UDP:UDP是无连接的,即发送数据之前不需要建立连接

 2提供服务

TCP:可靠的服务,传送的数据,无差错,不丢失,不重复,且按序到达,通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

UDP:尽最大努力交付,即不保证可靠交付

 3实时性

TCP:实时性和工作效率没有UDP高

UDP:UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

 4 交互通信方式

TCP:只能是点到点的

UDP:支持一对一,一对多,多对一和多对多的交互通信

 5系统资源要求

TCP:

UDP:

 

 UDP有时比TCP更有优势

UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。

(1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。

(2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。

采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP和UDP的区别和优缺点 的相关文章

  • xpath,sax,DOM解析xml文件(基础)

    基础 XML解析器有二类 分别是DOM和SAX DOM DOM解析器在解析XML文档时 会把文档中的所有元素 按照其出现的层次关系 解析成一个个Node对象 节点 很方便对文档进行遍历 对文档curd也特别方便 xml文档比较大的时候 do
  • Tcp协议中的3次握手与4次挥手过程分析

    转载https blog csdn net u012824097 article details 52490091 客户端与服务端的通信中步骤 1建立Tcp连接 3次握手 2再进行数据传输 3数据传输完成后 断开连接 4次挥手 建立Tcp连
  • Java多线程详解(线程同步)

    嗨喽 小伙伴们我来了 上一章 我们通过几个例子 点击跳转 介绍了线程安全问题 而说到线程安全就不得不提到线程同步 它是解决线程安全的一种重要方法 本章就来简单地介绍一下线程同步 从上一章的学习我们知道 当多个线程操作一个资源的时候 有可能由
  • mybatis generator插件系列--注释插件 (为实体类生成数据库字段注释)

    我们都知道mybatis generator自动生成的注释没什么实际作用 而且还增加了代码量 如果能将注释从数据库中捞取到 不仅能很大程度上增加代码的可读性 而且减少了后期手动加注释的工作量 1 首先定义注释生成插件 MyCommentGe
  • dubbo消费者源码解析

    一 服务消费者核心类ReferenceBean public void afterPropertiesSet throws Exception if applicationContext null BeanFactoryUtils bean
  • 定时任务框架Quartz-(一)Quartz入门与Demo搭建

    一 什么是Quartz 什么是Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目 完全由Java开发 可以用来执行定时任务 类似于java util Timer 但是相较于Timer
  • Java进阶--编译时注解处理器(APT)详解

    本文同步发布在掘金 未经本人允许不得转载 上篇文章 Java进阶 Java注解及其实例应用 我们使用注解 反射实现了一个仿ButterKnife功能的示例 考虑到反射是在运行时完成的 多少会影响程序性能 因此 ButterKnife本身并非
  • Java高并发- 锁的优化及 JVM 对锁优化所做的努力

    在高并发环境下 激烈的锁竞争会导致程序的性能下降 所以我们有必要讨论一下有关 锁 的性能问题及注意事项 如 避免死锁 减小锁粒度 锁分离等 一 锁优化 1 1 减小锁持有时间 在锁竞争过程中 单个线程对锁的持有时间与系统性能有着直接的关系
  • 会些java知识,然后要学习spring boot大概需要多长时间?

    Spring boot要学什么 要学到什么程度 以及相关的学习方法是什么 学习spring boot大概需要多长时间 每个人的学习能力 每天能花费时间来学习的时间也是不确定的 这些很难量化 但极好形容 需要学到能帮你找到一份工作的程度 任何
  • FutureTask 源码 并发设计模式

    一 代码 https www jianshu com p 60f661d95d53 public static void main String args throws Exception Callable
  • 《拉勾Java高薪课程》阶段一输出 之 持久层框架设计实现及MyBatis源码分析-学习笔记 --菜鸟小回

    阶段一模块一学习笔记 文章目录 阶段一模块一学习笔记 toc 一 自定义持久层框架 1 JDBC问题总结 2 问题解决思路 3 自定义框架设计 4 实际项目目录分析 5 优化 5 1 将测试类方法 5 2 仍存在问题 5 3 解决方式 6
  • java会话技术--03--Session覆盖问题

    java会话技术 03 Session覆盖问题 代码位置 https gitee com DanShenGuiZu learnDemo tree master sessionCookie learn 1 现象 同一域名 同一个服务 不同的端
  • JDBC快速入门,mysql8.0版本+druid+spring jdbc使用,出现因版本错误的解决方法

    JDBC核心技术 JDBC概述 数据持久化 持久化 persistence 把数据保存到可掉电式存储设备中以供之后使用 大多数情况下 特别是企业级应用数据持久化意味着将内存中的数据保存到硬盘上加以 固化 而持久化的实现过程大多通过各种关系数
  • Java多线程两种实现

    在java中实现多线程的方式有两种 一种是继承Thread类 另一个是实现Runnable接口 对于两种实现 各有优缺点 接下来进行对比总结一下 这两种方法 都可以实现多线程 以下为两种实现的写法 继承Thread类的方式 package
  • Kafka3.1安装配置,配置Kafka集群,Zookeeper集群

    1 下载Kafka安装包 Kafka官网下载地址 https kafka apache org downloads 2 解压压缩包 tar zxvf kafka 2 12 3 1 0 tgz c kafka 3 进入配置文件目录 cd ka
  • groovy语言单元测试(spock)

    一 spock groovy单元测试的五种情况 单元测试 given mock单测中指定mock数据 模拟入参 when 触发行为 比如调用指定方法或函数 then 做出断言表达式 expect 期望的行为 when then的精简版 si
  • 什么是Docker容器?一文带你了解,看完直接学会

    一 为什么需要Docker容器 1 引入 1 1麻烦的环境部署 1 在软件开发中 最麻烦的事情之一就是环境配置 在正常情况下 如果要保证程序能运行 我们需要设置好操作系统 以及各种库和组件的安装 2 举例来说 要运行一个Python程序 计
  • NotePad++安装HEX-Editor插件

    在菜单栏点击插件 插件管理 搜索HEX Editor并打钩 点击安装 然后重新打开notepad 会发现工具栏多了一个H的符号 此时点击H 即可以16进制的形式读取当前文件 还是没有的话建议多试几次
  • SpringBoot整合Druid-Mybatis&SpringSecurity使用

    SpringBoot整合JDBC 创建springBoot项目时首先需要导入JDBC的支持 以及MySQL驱动
  • java各种异常总结

    一 java异常汇总 1 Throwable 是所有异常的祖先 Throwable有两个子类 Error和Exception 2 Error是错误 表示运行应用程序中出现了严重错误 都是通过Error抛出的 一般程序无法处理 Excepti

随机推荐

  • erpadmin答疑为什么企业有很多“不上ERP等死,上了ERP找死”

    不上ERP等死 上了ERP找死 如何破除这个 魔咒 希望erpadmin总结的如何做好ERP系统实施工作的方法对你有所启发 ERP是建立在信息技术基础上 整合了企业管理理念 业务流程 基础数据 人力物力财力 计算机硬件和软件于一体的企业资源
  • 使用B站API:http://api.bilibili.com/x/space/upstat?mid=2026561407获取播放量、点赞量的返回报文中data数据缺失问题排查(已解决)

    背景 想要用ESP32获取一些b站上的数据粉丝量播放量等数据 获取粉丝数的API http api bilibili com x relation stat vmid 2026561407 获取播放量的API http api bilibi
  • script 标签 async 属性

    script 标签 async 属性 普通script 文档解析的过程中 如果遇到script脚本 就会停止页面的解析进行下载 但是Chrome会做一个优化 如果遇到script脚本 会快速的查看后边有没有需要下载其他资源的 如果有的话 会
  • python-django的JsonResponse返回中文数据编码问题

    JsonResponse res 方法1 直接加这一句即可 json dumps params ensure ascii False return JsonResponse user 王 password 123456 json dumps
  • 一文读懂卷积神经网络CNN(学习笔记)

    来源 机器学习算法与自然语言处理 作者 白雪峰 本文为图文结合 建议阅读10分钟 本文为大家解读如何简单明了的解释卷积 并且分享了学习中的一些方法案例 首先文章的提纲为 CNN栗子镇楼 What is CNN
  • 期货交易大神的分享,有用的策略

    1 每天只做一次 开盘后行情形成后开仓 2 在价格走势很慢的时候进入 开完仓价格朝着不利方向走 就无条件平仓 当天不再做第二次 3 开完仓价格朝着有利的一侧运行后 确认后在开仓价设好止损 通过条件单或闪电手自动止损功能 不再关注行情 收盘之
  • #pragma once用法总结,及与 #ifndef方式的区别

    1 pragmaonce这个宏有什么作用 为了避免同一个头文件被包含 include 多次 C C 中有两种宏实现方式 一种是 ifndef方式 另一种是 pragma once方式 在能够支持这两种方式的编译器上 二者并没有太大的区别 但
  • MATLAB 学习笔记(3)MATLAB 矩阵的进阶操作

    目录 MATLAB 矩阵标量操作 实际例子 MATLAB 矩阵的转置 实际例子 MATLAB 串联矩阵 实际例子 MATLAB 矩阵的行列式 MATLAB 逆矩阵 详细例子 MATLAB 矩阵标量操作 标量指的是只有大小没有方向的数 与之相
  • 大学数学竞赛常用不等式_第三届全国大学生数学竞赛初赛(专业组)

    系列传送门 陆艺 第一届全国大学生数学竞赛初赛 专业组 陆艺 第二届全国大学生数学竞赛初赛 专业组 陆艺 第三届全国大学生数学竞赛初赛 专业组 陆艺 第四届全国大学生数学竞赛初赛 专业组 陆艺 第五届全国大学生数学竞赛初赛 专业组 陆艺 第
  • SpringBoot+MyBatis:解决前端上传文件并将url保存到数据库

    前言 最近也是遇到了这个问题 最后成功解决 前期在网上搜索了很多内容 发现都很复杂而且都不尽相同 况且不同的开发软件 不同的配置都会增加我们参考时的麻烦 这里为大家放上了更加简便的方法 开发软件 SpringToolSuite4 个人认为比
  • Allegro如何取消网络高亮

    有时PCB里面不知道为什么有很多网络和焊盘高亮 看着很不协调 想要取消高亮的方法为先点击Dehilight 然后在Options的Dehighligh all里面选择all 如下图 高亮 取消高亮
  • 关于单片机头文件的使用方法

    在单片机的使用中 我们经常会在文件的开始部分进行头文件的定义 即使我们在编写十分简单的LED驱动程序时 往往也引用了头文件 include
  • AttributeError: module ‘time‘ has no attribute ‘clock‘

    报错 AttributeError module time has no attribute clock 原因是 Python3 8 不再支持time clock 但在调用时 非本工程文件CBTaggingDecoder依然包含该方法 修改
  • Spark中json字符串和DataFrame相互转换

    本文介绍基于Spark 2 0 的Json字符串和DataFrame相互转换 json字符串转DataFrame spark提供了将json字符串解析为DF的接口 如果不指定生成的DF的schema 默认spark会先扫码一遍给的json字
  • 【计算机视觉】CVPR 23 新论文

    文章目录 一 导读 二 背景 2 1 主要贡献 2 2 网络介绍 DeSTSeg 三 方法 3 1 Synthetic Anomaly Generation 合成异常生成 3 2 Denoising Student Teacher Netw
  • 子序列的判定算法c语言,求最大子序列的四种算法,数据结构与算法分析(C语言版)第二章...

    File Name maxSubSequence c Author Mail com Created Time 2015年07月18日 19 38 14 Description 求最大子序列的四种算法 数据结构与算法分析 C语言版 第二章
  • UE4材质节点

    材质输入引脚 材质中最为关键的是作为最终输出结果的引脚 根据情况的不同有的会使用 有的并不会被使用 基础颜色 Base Color 定义材质的颜色 接受参数为Vector3 RGB 颜色采用float形式 任何超出范围的输入数值都将被cla
  • 数据结构之线索二叉树详细解释

    1 1 线索二叉树的原理 我们现在倡导节约型社会 一切都应该以节约为本 但当我们创建二叉树时我们会发现其中一共有两个指针域 有的指针域指向的结构为空 这也就浪费了很多空间 所以为了不去浪费这些空间我们采取了一个措施 就是利用那些空地址 存放
  • mysql的慢sql优化

    慢sql优化 优化慢sql 最常见的就是添加索引 查询语句中不要使用select 尽量减少子查询 使用关联查询 left join right join inner join 替代 减少使用IN或者NOT IN 使用exists not e
  • TCP和UDP的区别和优缺点

    TCP与UDP区别 1连接方式 TCP 面向连接 UDP UDP是无连接的 即发送数据之前不需要建立连接 2提供服务 TCP 可靠的服务 传送的数据 无差错 不丢失 不重复 且按序到达 通过校验和 重传控制 序号标识 滑动窗口 确认应答实现