TCP 与UDP区别

目录

  • 网络参考模型
  • TCP
    • TCP 是什么
    • 特点
  • UDP
    • UDP 是什么
    • 特点
  • TUP与UDP区别 总结
  • 什么时候选TCP or UDP

网络参考模型

在这里插入图片描述

TCP

TCP 是什么

传输控制协议(TCP)是TCP/IP模型的传输层协议。它是一个面向连接的协议。因此,协议首先在源和目标之间建立连接。

特点

  • 面向连接: 是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,有助于流量控制、错误控制和拥塞控制,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。
  • 面向字节流 :TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。
  • 可靠传输:判断丢包,给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收,接收端对已成功收到的字节发回一个数据包(ACK)来确认,
  • 提供拥塞控制:网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞。
  • 一对一传输方式。
  • TCP 首部开销 20 字节

UDP

UDP 是什么

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

特点

  • 面向无连接:是不需要和 TCP一样在发送数据前进行三次握手建立连接的,直接发送数据报文,不提供数据包分组、组装和不能对数据包进行排序。

  • 面向报文:一次交付一个完整的报文,报文不可分割,故应用程序必须选择合适大小的报文,报文是 UDP 数据报处理的最小单位。

  • 一对一、一对多,多对多,多对一传输方式。

  • 不可靠性:体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠,并且接收到什么数据就传递什么数据,不会备份数据,发送数据也不会关心对方是否已经正确接收

  • 头部开销小,只有 8 个字节,传输数据报文时是很高效的。

TUP与UDP区别 总结

  1. TCP是面向连接的,UDP是无连接的
  2. TCP是可靠的,UDP是不可靠的
  3. TCP是面向字节流的,UDP是面向数据报文的
  4. TCP只支持点对点通信,UDP支持一对一,一对多,多对多
  5. TCP报文首部20个字节,UDP首部8个字节
  6. TCP有拥塞控制机制,UDP没有

什么时候选TCP or UDP

对某些实时性要求比较高的情况(游戏,实时视频流(直播),媒体通信,),选择UDP,其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失.

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

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

相关文章

谈谈对SpringMVC的理解

1、SpringMVC是属于SpringFramework生态里面的一个模块,它是在Servelet基础上构建的,并且使用了MVC模式设计的一个Web框架; 2、它的主要目的是为了简化传统模式下的Serveletjsp的开发模式,其次SpringMVC的架构模式是对于Java的web…

AR 技术应用与管理解决方案:施工建造、机柜扫描、办公室导航

建筑行业作为人类历史上最重要的产业之一,在数字化转型方面同样也在不断推进。图扑软件结合 AR 技术的应用,为建筑行业带来了更加便捷高效的建筑施工过程管理。 传统的建筑施工管理过程中,由于缺乏信息化手段,往往存在资料不全、…

面试算法题—编程题2023

面试算法题—编程题2023 一、冒泡排序二、选择排序三、快速排序四、其它排序 最近在看一些面试题,发现很多面试过程中都会要求手写排序编程题,经过一番查找整理,可以快速学习和使用相关排序算法题,通俗易懂,手撕代码吊…

RFC959 文件传输协议(FTP)翻译

发布时间:2023-07-12 21:14:54 前言 想做一下FTP的项目,带师说要参考RFC做才能标准化,先翻译一下。 官方文档:https://www.rfc-editor.org/rfc/inline-errata/rfc959.html 本备忘录的状态 本备忘录是文件传输协议&#xff08…

请求响应-数组集合参数的接受

数组集合参数 数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接受参数 具体关键代码如下: 在psotman中发出对应请求,结果如下: 集合参数:请求参数与形参集合名称相同且请求…

前端框架Layui实现动态树效果(书籍管理系统左侧下拉列表)

目录 一、前言 1.什么是树形菜单 2.树形菜单的使用场景 二、案例实现 1.需求分析 2.前期准备工作 ①导入依赖 ②工具类 BaseDao(通用增删改查) BuildTree(完成平级数据到父子级的转换) ResponseUtil(将数据转换成json格式进行回显&…

vue el-table的每行操作el-button添加单独的loading效果实现

vue el-table的每行操作el-button添加单独的loading效果实现 效果图&#xff1a;实现代码&#xff1a;结语 效果图&#xff1a; 实现代码&#xff1a; <tamplate><el-table :data"list" ><el-table-column fixed"right" label"操作&q…

java方法的可变参数

Java方法的参数列表可以包含可变参数。可变参数其实就是相同类型的多个参数构成的数组。 可变参数是类型后面跟着省略号&#xff08;…&#xff09;&#xff0c;然后空格&#xff0c;然后跟可变参数的名称。当然&#xff0c;类型和省略号之间可以包含空格&#xff0c;但不建议这…

【Hello mysql】 mysql的约束

Mysql专栏&#xff1a;Mysql 本篇博客简介&#xff1a;介绍mysql的约束 mysql的约束 表的约束空属性默认值列描述zerofill主键自增长唯一键外键总结 表的约束 为什么要有约束&#xff1f; 我们在收集一些数据的时候会要求该数据必须存在 比如说像是国家在登记公民信息的时候身…

ESP32开发板引脚介绍【附有引脚使用实例】

ESP32开发板引脚介绍 文章目录 ESP32开发板引脚介绍&#x1f468;‍&#x1f3eb;内容1&#xff1a;背景&#x1f468;‍⚖️内容2&#xff1a;限制类引脚&#x1f468;‍&#x1f4bb;内容3&#xff1a;ESP32 周边设备&#x1f349;文末备注 &#x1f468;‍&#x1f3eb; &am…

webpack的打包流程

webpack的打包流程 yarn build 开始都走了哪些流程 yarn build 开始都走了哪些流程

ROS中bag的录制、播放和使用

文章目录 前言一、bag录制二、bag信息查看三、bag播放四、bag的使用&#xff08;以A-LOAM为例&#xff09; 前言 传感器获取到的信息&#xff0c;有时我们可能需要实时处理&#xff0c;有时可能只是采集数据&#xff0c;事后分析&#xff0c;比如: 机器人导航实现中&#xff0…