首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏wenzi嵌入式软件

    TCP 和 UDP 的区别及流量控制,拥塞控制,重传,恢复算法详解

    image-20210726233128809 TCP 的拥塞控制算法主要涉及到四个,分别是: 慢开始算法 拥塞避免算法 重传算法 恢复算法 在讲解这四种拥塞控制算法之前,先假定如下条件: 数据是单方向传送的 image-20210727004738434 通过上图可以看到,在发送M2时,并没有等待M1的确认报文段到达之后再发送,而是在确认报文段到达之前就将 M2 的报文段发送出去了,发送 M3 的时候,数据报发生了丢失 ,在发送 M4 的时候,接收方收到之后,会继续回传报文段 M2 的确认,一直到发送 M6 的时候,都是回传的M2的确认包,而此时对于M2的确认包的接收已经累计3个了,就立即重传M3报文段,这样也就不会造成对 恢复算法 发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段。于是不启动慢开始算法,而执行恢复算法;发送方将慢开始门限值和拥塞窗口值调整为当前窗口的一半;开始执行拥塞避免算法。 小结 综上所述,我们综合前面所叙述的慢开始和拥塞避免算法,以及重传和恢复算法举一个例子,例子如下所示: ?

    2.4K20发布于 2021-08-13
  • 来自专栏韩曙亮的移动开发专栏

    【计算机网络】传输层 : TCP 拥塞控制 ( 慢开始 | 拥塞避免 | 重传 | 恢复 )

    恢复 TCP 拥塞控制相关术语 : ① 单向传输 : 拥塞控制假定单向传输数据 , 发送方 向 接收方 发送 数据 , 接收方 向 发送方 回送 确认信息 ; ② 发送窗口 : 接收方 缓存空间 足够大 大小 ; 拥塞窗口改变时机 : 收到上一个报文段的确认报文后 , 拥塞窗口翻倍 ; 收到上一个报文段的拥塞信息后 , 拥塞窗口变为 1 ; 四、重传 和 快回复 算法 ---- 重传算法 : 收到 3 个冗余的 确认后 , 执行重传算法 ; 示例 : 发送方 给 接收方 发送 1 2 3 4 5 , 五个报文 , 2 号报文丢失 , 如果收到 3 4 5 号报文 , 其中会携带期待 发送方 发送 2 号报文 , 此时触发 重传 算法机制 , 在超时计时器到时之前 , 快速发送 丢失的 2 号 报文 ; 快回复算法 : 与 上面的 拥塞避免算法的 区别是 , 出现 网络拥塞 之后 , 拥塞窗口 不降为 1 , 而是降低到 慢开始门限值 , 即当前的 拥塞窗口大小的 1/2 , 然后线性增加 拥塞窗口 ;

    2.6K00编辑于 2023-03-28
  • 来自专栏DataOps

    MySQL误删恢复方法2

    实际工作中总会发生数据误删除的场景,在没有备份情况下,如何快速恢复误删数据就显得非常重要。 本文基于MySQL的binlog日志机制,当日志格式设置为“binlog_format=ROW”时,记录一步一步手动解析binlog、恢复误删数据的全过程,供大家参考使用。 *标识匹配除换行符\n外的任何单元符为了把','去掉,单独(,)\1是用来取()表示符的第一个,并在后面拼接上';'本次恢复的记录都是48个字段,最后加分号,标识SQL结束,比较容易理解。 5.04e+08 , '8000004202200006' ,[此处省略第6个~第45个字段] '数据脱敏' , '订单' , '陈鹏3' ;commit;十三、执行恢复数据经过审视 、调整后,此时得到的结果,已经可以正常执行INSERT操作恢复数据了!

    1.7K20编辑于 2022-11-14
  • 来自专栏博岩Java大讲堂

    Disruptor框架学习(2)--为啥这么

    Disruptor框架学习(2)--为啥这么 在上一篇中,笔者阐述了Disruptor的代码实现和数据结构。在说到,Disruptor为什么性能那么高的时候,提及了几个概念:CAS、缓存行、伪共享。 当CPU执行运算时,它首先会去L1缓存中查找数据,找到则返回;如果L1中不存在,则去L2中查找,找到即返回;如果L2中不存在,则去L3中查找,查到即返回。如果三级缓存中都不存在,最终会去内存中查找。 例如:核心1启动了1个线程,核心2启动了1个线程,这2个线程分别要修改不同的变量,其中核心1的线程要修改x变量,而核心2的线程要修改y变量,但是x、y变量在内存中是相邻的数据,他们被加载到了同一个缓存行当中 ,核心1的缓存行有x、y,核心2的缓存行也有x、y。 原子变量能够保证原子性的操作,意思是某个任务在执行过程中,要么全部成功,要么全部失败回滚,恢复到执行之前的初态,不存在初态和成功之间的中间状态。

    1.2K40发布于 2018-05-11
  • 来自专栏深度学习与python

    Python之父:让 Python 2

    作者 | 万佳、核子可乐 Python 之父 Guido van Rossum 想让 Python 的速度变得更快,先把速度提升 2倍。 近日,在美国参加 PyCon 语言峰会的 Guido van Rossum 表示,必须让 Python 语言的速度水平提高2倍,借此与 C++ 等高性能编程语言正面对抗。 并且在 Python 3.11 版本,实现 Python 速度提高2倍的目标。据悉,Python 3.11 是计划于明年发布 pre-alpha 版本的 Python 三个分支之一。 2闲不住的大牛 30 年前,由于对已有的编程语言感到十分失望,van Rossum 决定开发一门新语言——一门既易于使用功能又强大的语言。于是,Python 诞生了。 他写道,“我们还没法确定 2 倍速度的目标能不能实现。但乐观一点、好奇一点总没有错。”

    50130发布于 2021-06-08
  • 来自专栏IT民工闲话

    架构师问快答2

    五一劳动节期间,对这些问题进行了回顾,问快答,个人意见,仅供参考。 之所以叫“架构师问快答2”,是因为几年前发过一篇“架构师问快答”。关于架构师的一切,欢迎提问,有问必答。 2.业余时间接个私活儿,并发量差不多就行,循序渐进。 3.自己写一个,再写一个压测的,租一堆云服务器,左右互搏。 Q: 怎么样既能成为架构师还不会聪明绝顶? 2.圈定自己关注范围。 3.不必为了广而广。 Q: 关于每家企业个性化需求,有的企业安全性比较高,需要更高版本的jar包,有的是功能性需求,但其他企业并不升级。

    76210发布于 2020-05-22
  • 来自专栏Node开发

    Mysql备份与恢复(2)---逻辑备份

    mysqldump -uroot -proot -h49.235.28.88 -P3306 lxy -d> /usr/local/lxy1.sql (5) 备份lxy数据库的表结构和存储过程,不备份数据到lxy2. mysqldump -uroot -proot -h49.235.28.88 -P3306 lxy -d -R> /usr/local/lxy2.sql (6) 不备份表结构,只备份数据到lxy3.sql 数据恢复 表级恢复 (1) 登录mysql,选择对应的数据库,然后设置编码。 (2) 使用source命令导入备份数据。 source /usr/local/all.sql 单库恢复 (1) 登录Mysql,删除要恢复的旧数据库。 (2) 使用source命令导入备份数据。 : 首先进行全量备份,添加--flush-logs参数生成新的二进制日志文件: mysqldump --single-transaction --flush-logs --master-data=2

    2.7K21发布于 2019-10-16
  • 来自专栏量子位

    Python之父:明年让Python2

    并且,Shannon之前参与的HotPy项目中所开发的解释器,比目前CPython解释器的纯Python代码三倍。这证明了对CPython优化的可行性。 可能是五年前从Python2.x迁移到3的痛苦经历实在是有些刻骨铭心,Guido专门发推表示这次的迁移会更加平和。 ? Python 3.11 Guido提出要在3.11版本实现至少2倍的提速,为此,他已经和几位Python开发人员提出了一份增强功能的提案PEP 659。 ? 参考链接: [1]https://www.theregister.com/2021/05/19/faster_python_mark_shannon_author/ [2]https://pyfound.blogspot.com

    75460发布于 2021-06-17
  • 来自专栏PD sink受电端芯片

    乐得瑞推出1拖2充功率分配充线方案

    随着PD3.1协议的市场应用越来越多,一些充电器的Type-C接口的输出功率达到百瓦及以上,如何充分利用好这类充电器设备,乐得瑞科技推出LDR6020 1拖2充线缆解决方案,支持智能功率分配策略+私有协议充 图片如上图是乐得瑞1拖2功率分配充线样线实物,以乐得瑞LDR6020方案设计小PCB板为“桥梁”,输入端连接单USB-C线,输出端分出两条USB-C线。 这样对于目前的一些单USB-C口充电器来说,基于乐得瑞推出高功率线缆解决方案便可以实现双设备同时充而无需另外购买多口充电器。一般来说,数据线价格都会比充电器便宜些,对于消费者来说更实惠。 图片这个是LDR6020 二合一充充电线的框架图,具体原理图请找留言联系。 图片这款一拖二充线采用小板设计,小板焊接USB-C输入及对应的输出导线,可实现多口充电器和两条充电线的功能,满足两台设备的同时充需求。

    43720编辑于 2023-10-21
  • 来自专栏橙、

    使用 PAR2 为数据纠错恢复

    引: 如果你是通过搜索找到本文,请注意,本文内容不适用于文件误删恢复、已经损坏的文件且无 PAR 2 恢复数据的情况。 1. 3.1 使用 Par2cmdline 创建恢复模块和恢复数据 推荐查看:par2cmdline 在 Github 上的页面,有完整的命令行说明。 repair *.par2 3.1.1 创建恢复数据 最简单的可以直接根据默认参数进行创建: . -r15% demo.pdf.par2 demo.pdf # 创建约 4 M 大小的恢复数据 par2 create -rm4 demo.pdf.par2 demo.pdf 恢复按块进行恢复恢复数据的大小由块的数量和大小决定 通过 GUI 设置参数,进行操作即可: 图片 图片 验证数据: 图片 3.2.2 恢复数据 打开MultiPar,点击打开,选择 par2 文件进行校验 图片 图片 图片 附 使用 WinRAR 创建恢复模块和恢复数据

    2.1K61编辑于 2023-02-18
  • 来自专栏数据库相关

    使用binlog2sql恢复数据

    对于误操作数据的闪回,我们一般推荐 binlog2sql 或者MyFlash(美团点评开源的) 本篇文章, 我们介绍下 binlog2sql的用法: binlog2sql 【首级推荐使用】 官网:https /binlog2sql/binlog2sql.py -h192.168.11.20 -P3306 -uflashback -p'admin' -d testdb -t t_stud --start-file /binlog2sql/binlog2sql.py --flashback -h192.168.11.20 -P3306 -uflashback -p'admin' -d testdb -t t_stud *//g' /root/rollback.sql 3 将数据恢复到数据库中: use testdb ; UPDATE `testdb`. Wutong' AND `Age`=100 AND `Gender`='M' AND `ClassID`=3 AND `TeacherID`=1 LIMIT 1; 执行完后,再次看下数据,可以看到已经恢复好了

    77630发布于 2019-12-24
  • 来自专栏Mybatis学习

    Tensorflow2——模型的保存和恢复

    模型的保存和恢复 1、保存整个模型 2、仅仅保存模型的架构(框架) 3、仅仅保存模型的权重 4、在训练期间保存检查点 1、保存整个模型 1)整个模型保存到一个文件中,其中包含权重值,模型配置以及优化器的配置 ,这样,您就可以为模型设置检查点,并稍后从完全相同的状态进行训练,而无需访问原始代码 2)在keras中保存完全可以正常的使用模型非常有用,您可以在tensorflow.js中加载他们,然后在网络浏览器中训练和运行它们 ____ new_model.evaluate(test_image,test_label,verbose=0) ##[0.5563450455665588, 0.7975000143051147] 2

    1.5K20发布于 2021-06-21
  • 来自专栏技术杂记

    Hypervisor Necromancy;恢复内核保护器(2)

    甚至 虽然我们将从 EL3 直接降到 EL1 以允许 专有的 EL2 实现来定义自己的状态,我们仍然必须 设置一些 EL2 状态寄存器值来初始化 EL1 执行状态。 详细地说,要从 EL3 下降到 EL2,我们必须在 Secure 中定义 EL2 状态 配置寄存器 (SCR_EL3)。 page table PA orr \tmp2, \tmp2, #AARCH64_PGTBL_TBL_ENTRY // valid table entry str \tmp2, [\tbl 2 级条目索引 (2) 为 0 并且 该条目的值为 0x80000711,表示物理上的块条目 地址 0x80000000。 由于EL2 未设置异常向量表,唯一的方法是下降到 EL2 来自 EL3,就像我们对 EL1 所做的那样。

    2.8K390编辑于 2022-02-09
  • 来自专栏进步集

    【传输层】TCP、三次握手、四次挥手、可靠传输、TCP拥塞控制、慢开始、拥塞避免、重传、恢复

    连接管理 TCP连接管理-----B/S方式------- 三次握手---------1.客户端发送连接请求报文段SYN=1,seq=x随机------------------------------2. --恢复-----------拥塞窗口---发送方设置 慢开始------开始设置cwnd=1,---------随后每次指数增加------一个往返时延RRT---传输伦次------------- ------就是收到三个冗余ACK后直接重传那个报文 恢复------拥塞后不从慢开始开始,直接从新的门限值开始线性增加 ---- I could be bounded in a nutshell –恢复-----------拥塞窗口—发送方设置 慢开始------开始设置cwnd=1,---------随后每次指数增加------一个往返时延RRT—传输伦次----------------- ------就是收到三个冗余ACK后直接重传那个报文 恢复------拥塞后不从慢开始开始,直接从新的门限值开始线性增加

    44120编辑于 2022-12-30
  • 来自专栏ops技术分享

    数据恢复binlog2sql--准备工作

    工具 1)解析出标准的SQL python binlog2sql.py -h192.168.1.21 -P30136 -uglon -p'123456' -d xcrm -t edai_binlog2sql 2)解析想要回滚的SQL 比如,我想回滚刚刚操作的,edai_binlog2sql 后面两个update和DELETE操作 找到的时间节点就是:start 6159262 end 6159823 #分析最好用 -tedai_binlog2sql --start-file=mysql-bin.000001 --start-position=6159262 --stop-pos=6159823 > edai_binlog2sql-new.sql [root@soft binlog2sql]# cat edai_binlog2sql-new.sql INSERT INTO `xcrm`. 6159262 end 6159534 time 2018-11-22 15:15:46 可以看到,我们刚刚的delete语句,被反转为insert语句,update 修改为原来的时间 拿到了具体的恢复语句

    44020发布于 2021-06-11
  • 来自专栏ops技术分享

    数据恢复binlog2sql--原理及其使用

    原理及其使用 生产上误删数据、误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲, 当然还有其他的一些操作方法,binlog2sql使用。 用途 数据回滚 主从切换后数据不一致的修复 从 binlog 生成标准 SQL,带来的衍生功能 闪回原理简析 开始之前,先说说闪回。 但是,DDL 语句,比如drop,truncate 在整个使用中都是无法被回滚的,这种情况,只能用最近的备份数据+二进制日志恢复 本次实验,更改一条数据,并删除一条数据,然后从解析 binlog 信息, 到使用 binlog2sql 工具来生成标准和回滚 SQL,来剖析整个运行过程。

    81830发布于 2021-06-11
  • 来自专栏DBA实战

    MySQL 灾难恢复利器:ibd2sql

    数据误删恢复: 可以输出被标记为已删除的数据。 安全: 离线解析 IBD 文件,仅需读取权限。 IBD文件强制解析:IBD文件如果损坏,可以恢复部分数据。 数据完整性: 如果 IBD 文件本身已经严重损坏,恢复的数据可能不完整。 资源消耗: 生成的 SQL 文件可能较大,需要足够的磁盘空间和内存。 /opt/ibd2sql-main/[[root@idc-mongo55 ibd2sql-main]# python3 main.py . 是一个强大的工具,适用于多种 MySQL 数据管理和恢复场景。 总体来说,ibd2sql 是一个值得推荐的工具,特别适合数据恢复、迁移和审计等任务。

    84110编辑于 2024-10-10
  • 来自专栏mysql-dba

    使用my2sql来恢复mysql数据

    my2sql 使用说明来源原作者:my2sql的GitHub地址:https://github.com/liuhr/my2sql go版MySQL binlog解析工具,通过解析MySQL binlog 类似工具有binlog2sql、MyFlash、my2fback等,本工具基于my2fback、binlog_rollback工具二次开发而来。 当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。 my2sql binlog2sql 1.1G binlog生成回滚SQL 1分40秒 65分钟 1.1G binlog生成原始SQL 1分30秒 50分钟 1.1G binlog生成表DML统计信息、以及事务统计信息 .000002, 30096) [root@localhost home]# 离线直接读取binlog文件解析:(-mode file -local-binlog-file) 离线库上必须要创建需要恢复或者解析的库和表

    2.2K41发布于 2021-05-20
  • 来自专栏机器学习炼丹之旅

    L2-028 秀恩爱分得 (25 分)

    古人云:秀恩爱,分得。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。 输入格式: 输入在第一行给出 2 个正整数:N(不超过1000,为总人数——简单起见,我们把所有人从 0 到 N-1 编号。 输入样例 1: 10 4 4 -1 2 -3 4 4 2 -3 -5 -6 3 2 4 -5 3 -6 0 2 -3 2 输出样例 1: -3 2 2 -5 2 -6 输入样例 2: 4 4 4 -1 2 -3 0 2 0 -3 2 2 -3 2 -1 2 -3 2 输出样例 2: -3 2 代码: #include <bits/stdc++.h> using namespace std; const = max(Max2, sum[abs(b)][i]); if (Max1 == Max2 && sum[abs(a)][abs(b)] == Max1) O(a), cout

    41020编辑于 2022-08-08
  • 来自专栏机器人课程与技术

    ROS2极简总结-Nav2-概述(下)恢复

    恢复器概述 Recovery Overview 注意最右侧黄色部分,具体如下。 插件 Plugins BackUp 备份 Spin 旋转 Wait 等待 恢复服务器 Recovery Server 定义机器人可以执行的恢复操作。 [nav2_costmap_2d] 清除代价地图 [nav2_recoveries] 旋转 - 按给定角度原地旋转 备份 - 给定距离的线性平移 停止 - 停止机器人 recoveries_server 中的节点由 ROS2 的生命周期管理器管理(参考ROS2极简总结,核心和新增概念部分)。 Nav2目标 Nav2 的目标是: 可定制 - 定制行为的逻辑能力,更少分叉代码 模块化 - 更轻松地替换规划器和控制算法 可扩展性 - 使用 Python 或其他语言编写规划程序和控件 使用以下方法提高质量

    93230发布于 2021-12-02
领券