TCP与UDP

embedded/2024/10/19 23:17:20/

TCP与UDP区别:可靠连接和不可靠连接

细节:

一、连接性:

TCP:是面向连接的协议。通信双方在传数据前必须通过三次握手建立连接,在数据传输结束后会还需进行四次挥手断开连接。

UDP:是无连接的协议。发送数据之前不需要建立连接,直接将数据发出去。接收端从网络中接收数据,并从消息队列中读取数据段。

二、可靠性

TCP:可靠。通过序列号、确认号、重传机制等一系列技术,确保数据准确、准时、无错、不丢、不重复。当接收方一定时间内没收到数据会重新发。

UDP:不可靠。不保证数据能被对方收到,发送的数据可能丢失、重复、乱序,但他传输速度快,实时性强。

三、传输速率

TCP:由于需要建立连接、维护、确认、重传等操作,传输效率相对低,尤其对于小数据量。

UDP:没有一系列复杂机制,单纯发送,传输效率较高。

四、数据处理方式

TCP:面向字节流。将数据看成一连串无结构的字节流,在发送和接收时进行分片和重组操作。发送方将数据分成合适的报文段,接收方按照序列号重组报文。

UDP:面向报文。将应用层交下来的报文加上首部后直接向下交付,不合并不拆分。

五、通信模式

TCP:点对点通信,一条TCP连接只能在两个端点间进行数据传输。

UDP:支持一对一、一对多、多对一、多对多的通信模式,更加灵活。

六、首部开销

TCP:首部开销大,至少20字节。包含更多控制信息,如序列号、确认号、窗口大小、校验和等,以便实现可靠连接和流量控制

UDP:首部开销小,只有8字节。只包含源端口号、目的端口号、长度、校验和等基本信息。

七、应用场景

TCP:对数据传输可靠性要求高的应用。如文件传输、电子邮件、网页浏览等,不允许出现数据丢失或错误。

UDP:实时性要求高,接受一定的数据丢失和错误,如IPTV、视频会议、广播等。


http://www.ppmy.cn/embedded/128845.html

相关文章

Linux 命令练习手册

1、cat命令练习 基本功能 功能:连接文件并输出其内容到标准输出。常用于查看文件、合并文件、重定向输出。 常用选项 -n:显示行号。 -b:显示非空行的行号。 -E:显示每行的结束符$,用于标识行尾。 -T:…

【K8s】专题十四(2):Kubernetes 安全机制之 Security Context

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…

JavaSE之String类

文章目录 一、String类常用的构造方法二、常见的四种String对象的比较1.使用比较2.使用equals()方法比较3.使用compareTo()方法比较4.使用compareToIgnoreCase()方法比较 三、字符串的查找四、字符串的转化1.数字和字符串间的转化2.大小写转化3.字符串和数组间的转化 五、字符串…

docker 指令集

docker 操作命令汇集说明&#xff1a; 1.将运行中的Docker容器保存为镜像 docker commit <容器ID或名称> <镜像名称>:<标签> 例如 docker commit abc123 my_image:latest 2.将镜像保存为tar文件 docker save -o <tar文件名…

Android 11.0 系统默认蓝牙打开状态栏显示蓝牙图标功能实现

- 1.前言 在11.0的系统rom定制化开发过程中,在默认系统中,打开蓝牙开关的时候不会状态栏不会显示蓝牙图标,而只有 蓝牙连接成功后会显示蓝牙图标,客户开发需要要求在蓝牙打开的时候在状态栏就显示蓝牙图标,接下来分析下 相关的状态栏图标显示流程,然后实现相关功能 2.系…

3.3关节组件

&#xff08;1&#xff09;弹簧关节&#xff1a;模拟弹簧效果 &#xff08;2&#xff09;铰链关节&#xff1a;链条绑定&#xff0c;大于力矩&#xff0c;两个物体产生相互拉力 &#xff08;3&#xff09;固定关节&#xff1a;两个相对位置固定在一起 &#xff08;4&#xff09…

Element UI 组件库详解:从入门到精通

在追求统一且流畅的用户体验时&#xff0c;开发者们常常选择使用 UI 组件库来加快开发速度。Element UI&#xff0c;这个基于 Vue.js 的组件库&#xff0c;提供了大量界面组件&#xff0c;极大地提升了前端开发的效率。本文将指导您如何开始使用 Element UI 组件库&#xff0c;…

基于langchain.js快速搭建AI-Agent

基于langchain.js快速搭建AI-Agent 什么是AIAgent? 1. 替换默认请求地址为自定义API 构建基础会话大模型 import { ChatOpenAI } from langchain/openai;const chat new ChatOpenAI({model: gpt4o,temperature: 0,apiKey: ****,configuration: {baseURL: https://www.xx.co…