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地址和网关地址都正确。(不存在问题…...
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 泛型来定义通用参数 有些时候会遇到有些业务页面结构是通用的,只是传入页面组件的参数略有不同,这样我们可以使用 TS 的泛型来定义通用参数。具体的实例如下: type GenericPropsData<T> {items: T[];onClick: (value: T) &g…...
【深入解析spring cloud gateway】07 自定义异常返回报文
Servlet的HttpResponse对象,返回响应报文,一般是这么写的,通过输出流直接就可以将返回报文输出。 OutputStream out response.getOutputStream(); out.write("输出的内容"); out.flush();在filter中如果发生异常(例如…...
如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器?
如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器? 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 示例一:从本地复制文件到远程计算机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进行数据备份的时候,发现由于数据库连接数目过多导致连接锁定,这种情况在多人协同开发的场景中很常见。当然我这里也因为多个应用使用了数据库连接,所以出现了Too Many Connections。 可能是超过最大连接数了。 1、进入Navicat…...
知识储备--基础算法篇-矩阵
2.矩阵 2.1第54题螺旋矩阵 第一题上来就跪了,看了官方答案感觉不是很好理解,找了一个比较容易理解的。 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 动作测试(发送邮件测试) 四、问题总结 4.1 邮件发送…...
eclipse链接MySQL数据库
在MySQL官网下载驱动 MySQLhttps://www.mysql.com/cn/点击下载: 页面滚动到最下方选择社区版: 选择Java版本: 接下来,需要选择操作系统,我们选择平台独立: eclipse 接下来,我们打开eclipse,新建…...
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存储的数据发生变化时,会触发Window对象的storage事件,我们可以监听该事件并指定事件处理函数,当其他页面中的localStorage或 sessionStorage中保存的数据发生改变时,就会执行事件处理函数。 监听storage事件的…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
