当前位置: 首页 > news >正文

TCP和UDP的区别

TCP和UDP的区别

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

7、UDP是面向报文的,发送方的UDP对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层,论应用层交给UDP多长的报文,它统统发送,一次发送一个。而对接收方,接到后直接去除首部,交给上面的应用层就完成任务了。因此,它需要应用层控制报文的大小

TCP是面向字节流的,它把上面应用层交下来的数据看成无结构的字节流会发送,可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着TCP会根据当前网络的拥塞状态来确定每个报文段的大小。

TCP 协议如何保证可靠传输?

  • 确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就会重传。
  • 数据校验TCP报文头有校验和,用于校验报文是否损坏。
  • 数据合理分片和排序:tcp会按最大传输单元(MTU)合理分片,接收方会缓存未按序到达的数据,重新排序后交给应用层。而UDP:IP数据报大于1500字节,大于MTU。这个时候发送方的IP层就需要分片,把数据报分成若干片,是的每一片都小于MTU。而接收方IP层则需要进行数据报的重组。由于UDP的特性,某一片数据丢失时,接收方便无法重组数据报,导致丢弃整个UDP数据报。
  • 流量控制:当接收方来不及处理发送方的数据,能通过滑动窗口,提示发送方降低发送的速率,防止包丢失。
  • 拥塞控制:当网络拥塞时,通过拥塞窗口,减少数据的发送,防止包丢失。

相关文章:

TCP和UDP的区别

TCP和UDP的区别 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复&…...

MBR、GPT、LVM分区

GPT分区(支持大于2T的空间分区UEFI系统) 支持128个主分区 (parted) mklabel New disk label type? gpt (parted) mkpart Partition name? []? vdb1 File system type? [ext2]? ext4 Start? 0% End? 40% (parted) mkpart Partition name? []…...

uniapp 下拉刷新

需求:我使用一个滚动列表,需要下拉刷新页面的功能 下拉刷新的情况取决于滚动列表使用的技术 第一 种:页面滚动 产生页面很简单,只需要列表长度超过页面高度,就直接产生了滚动条。 处理页面滚动的下拉刷新。 1. 配置…...

ifstream之seekg/tellg

声明:我个人特别讨厌:收费专栏、关注博主才可阅读等行为,推崇知识自由分享,推崇开源精神,呼吁你一起加入,大家共同成长进步! 在文件读写的时候,一般需要借助fstream来进行文件操作&a…...

OpenCV 01(图像加载与显示)

一、机器视觉 现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传…...

1-Pytorch初始化张量和张量的类型

1-Pytorch初始化张量和张量的类型 1 导入必备库 import torch import numpy as np2 初始化张量 # 初始化张量 t torch.tensor([1,2])#.type(torch.FloatTensor) print(t) print(t.dtype)输出: tensor([1, 2]) torch.int643 创建float型张量 # 创建float型张量…...

诊断网络卡的原因

首先,通过ipconfig和ping命令来诊断。 手头要有一台Windows电脑。在dos窗口下,输入ipconfig,可以查看到本机“手动设置”或者“自动获取”的IP地址。 这里有几种可能性: IP地址和网关地址都正确。(不存在问题&#xf…...

100万级连接,爱奇艺WebSocket网关如何架构

说在前面 在40岁老架构师 尼恩的读者社区(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《高并发网关项目》,此项目帮这个小伙拿到 字节/阿里/微…...

当电脑遇到msvcp110.dll丢失怎么办?最新解决方法分享

在使用电脑过程中,我们经常会遇到一些系统文件丢失的问题。其中,msvcp110.dll是Windows操作系统中的一个重要的动态链接库文件,它包含了许多与C运行库有关的函数和类。当系统中缺少或损坏这个文件时,可能会导致一些应用程序无法正…...

微信小程序自动化测试pytest版工具使用方法

-mini https://github.com/zx490336534/pytest-mini 微信小程序自动化测试pytest插件/工具 基于MiniTest进行pytest改造 使用方法 准备测试小程序 根据miniprogram-demo项目介绍运行一次项目 成功运行后关闭 安装&更新 pip install pytest-mini --upgrade引入插件…...

React 与 TS 结合使用时的技巧总结

使用 TS 泛型来定义通用参数 有些时候会遇到有些业务页面结构是通用的&#xff0c;只是传入页面组件的参数略有不同&#xff0c;这样我们可以使用 TS 的泛型来定义通用参数。具体的实例如下&#xff1a; type GenericPropsData<T> {items: T[];onClick: (value: T) &g…...

【深入解析spring cloud gateway】07 自定义异常返回报文

Servlet的HttpResponse对象&#xff0c;返回响应报文&#xff0c;一般是这么写的&#xff0c;通过输出流直接就可以将返回报文输出。 OutputStream out response.getOutputStream(); out.write("输出的内容"); out.flush();在filter中如果发生异常&#xff08;例如…...

如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器?

如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器&#xff1f; 1.1 背景需求1.2 解决方案1.3 附录1.3.1 scp命令用法与示例1.3.1.1 scp命令用法与解释1.3.1.2 scp 命令用法示例1.3.1.2.1 示例一&#xff1a;从本地复制文件到远程计算机1.3.1.2.2 示例二&a…...

【CMake工具】工具CMake编译轻度使用(C/C++)

目录 CMake编译工具 一、CMake概述 二、CMake的使用 2.1 注释 2.1.1 注释行 2.1.2 注释块 2.2 源文件 2.1.1 共处一室 2.1.2 VIP包房 2.3 私人定制 2.2.1 定义变量 2.2.2 指定使用的C标准 2.2.3 指定输出的路径 2.4 搜索文件 2.3.1 方式1 2.3.2 方式2 2.5 包含…...

用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections

今天用Navicat进行数据备份的时候&#xff0c;发现由于数据库连接数目过多导致连接锁定&#xff0c;这种情况在多人协同开发的场景中很常见。当然我这里也因为多个应用使用了数据库连接&#xff0c;所以出现了Too Many Connections。 可能是超过最大连接数了。 1、进入Navicat…...

知识储备--基础算法篇-矩阵

2.矩阵 2.1第54题螺旋矩阵 第一题上来就跪了&#xff0c;看了官方答案感觉不是很好理解&#xff0c;找了一个比较容易理解的。 class Solution(object):def spiralOrder(self, matrix):""":type matrix: List[List[int]]:rtype: List[int]"""…...

Zabbix -- QQ邮箱报警

目录 一、创建监控项及触发器 1.1创建监控项 1.2 创建监控项的触发器 1.3 测试触发器 二、邮箱媒介设置 2.1 设置报警媒介类型 2.2 创建用户群组和用户 三、动作绑定 3.1 创建动作 3.2 动作操作 3.3 动作测试&#xff08;发送邮件测试&#xff09; 四、问题总结 4.1 邮件发送…...

eclipse链接MySQL数据库

在MySQL官网下载驱动 MySQLhttps://www.mysql.com/cn/点击下载&#xff1a; 页面滚动到最下方选择社区版&#xff1a; 选择Java版本: 接下来&#xff0c;需要选择操作系统&#xff0c;我们选择平台独立&#xff1a; eclipse 接下来&#xff0c;我们打开eclipse&#xff0c;新建…...

ansible 使用roles简单部署LAMP平台

目录 一、了解roles目录 二、基于构建LAMP平台创建roles目录 1、在192.168.115.148创建目录 2、书写php的测试页面 3、编写httpd角色的main.yml文件 4、编写mysql角色的main.yml文件 6、编写lamp的playbook 7、启动剧本 8、访问 一、了解roles目录 在Ansible中&#…...

如何使用Web Storage对页面中数据进行监听?

当使用Web Storage存储的数据发生变化时&#xff0c;会触发Window对象的storage事件&#xff0c;我们可以监听该事件并指定事件处理函数&#xff0c;当其他页面中的localStorage或 sessionStorage中保存的数据发生改变时&#xff0c;就会执行事件处理函数。 监听storage事件的…...

Delphi 防破解与加壳保护:让你的软件不被逆向、不被篡改

不管你做的是登录器、工具软件、收费系统&#xff0c;只要不想被人随便破解、篡改、去广告&#xff0c;这一篇必须吃透。一、为什么要做软件保护&#xff1f;你的登录器被人破解&#xff0c;随便跳过验证直接进游戏你的收费工具被人去广告、改内存、无限试用关键配置、账号密码…...

Ubuntu 20.04上解决CARLA报错‘Engine crash handling finished’的保姆级指南(附NVIDIA驱动降级避坑)

Ubuntu 20.04深度调优&#xff1a;彻底解决CARLA引擎崩溃与NVIDIA驱动兼容性问题 当你在Ubuntu 20.04上第一次启动CARLA仿真平台&#xff0c;满心期待地输入./CarlaUE4.sh命令后&#xff0c;终端却突然抛出一连串令人窒息的红色错误信息——"Engine crash handling finish…...

个人知识管理:用OpenClaw+nanobot构建第二大脑

个人知识管理&#xff1a;用OpenClawnanobot构建第二大脑 1. 为什么需要第二大脑&#xff1f; 作为一名技术写作者&#xff0c;我每天要处理大量信息&#xff1a;技术文档、行业报告、代码片段、会议记录...这些碎片化知识散落在浏览器书签、微信收藏、本地文档里&#xff0c…...

LVGL显存、FreeRTOS堆栈、全局变量:在128KB RAM的STM32F407上如何做内存预算与平衡?

LVGL显存、FreeRTOS堆栈与全局变量的内存博弈&#xff1a;STM32F407的128KB RAM精算指南 当一块STM32F407芯片的128KB RAM需要同时供养LVGL的华丽界面、FreeRTOS的多任务调度以及应用层的全局变量时&#xff0c;开发者面临的挑战不亚于一位财务总监在有限预算下平衡多个部门的开…...

Windows下OpenClaw全流程指南:ollama GLM-4-7-Flash接入与技能扩展

Windows下OpenClaw全流程指南&#xff1a;ollama GLM-4-7-Flash接入与技能扩展 1. 为什么选择OpenClawGLM-4-7-Flash组合 去年我在处理日常办公自动化时&#xff0c;发现很多重复性工作既耗时又容易出错。尝试过各种RPA工具后&#xff0c;最终被OpenClaw的"AI智能体本地…...

RecyclerView 动态布局实战:ItemView 高宽自适应与多列切换

1. RecyclerView动态布局的核心挑战 在Android开发中&#xff0c;RecyclerView是最常用的列表控件之一。但很多开发者都会遇到这样的问题&#xff1a;如何让ItemView根据数据量动态调整高度和宽度&#xff1f;特别是在需要实现单列和多列布局自动切换的场景下&#xff0c;这个问…...

如何快速上手MOOTDX:Python量化分析者的通达信数据完整实战手册

如何快速上手MOOTDX&#xff1a;Python量化分析者的通达信数据完整实战手册 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专门为Python开发者设计的通达信数据接口封装库&#xff0…...

西门子1517F与KTP精致屏:主机厂程序框架探秘

西门子1517F搭配KTP精致屏 主机厂程序框架模板&#xff0c;程序结构清晰&#xff0c;主流程采用顺控器编写&#xff0c;包含各种常用功能块的手自动以及手动调用&#xff0c;HMI画面多采用多路复用&#xff0c;大大缩短编程时间&#xff0c; 组态从站有拧紧枪&#xff0c;以及从…...

3大突破!OptiScaler如何让老旧硬件焕发新生

3大突破&#xff01;OptiScaler如何让老旧硬件焕发新生 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 当你的AMD显卡遇见只支持DL…...

终极foobox-cn配置指南:如何打造专业级音乐播放体验

终极foobox-cn配置指南&#xff1a;如何打造专业级音乐播放体验 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn foobox-cn作为foobar2000的DUI&#xff08;自定义用户界面&#xff09;配置方案&#…...