- 博客(42)
- 资源 (16)
- 收藏
- 关注
原创 rsync中远端文件的校验和存储缓存的黑科技
然而rsync是这样做的。通过宏( F_SUM() )计算远端文件的描述符指针的偏移量,从其中拿出工具在两端传输文件列表(recv_file_entry()/send_file_entry())时存储的远端文件校验和进行比较。这样就节约了大量的时间,也是rsync有一个数量级时间优化的原因。也就是说校验和实际上是存储在文件描述符地址空间的柔性数组中,并在发送方创建文件描述符时就在偏移量处放好了计算的远端文件校验和。
2025-01-02 15:00:33
390
原创 rsync增量传输机制
rsync的传输是对称的,需要在双端安装。有三个传输角色server,daemon,client,会很快根据命令行的要求区分角色为sender,receiver,generator,分别用send_files()/recv_files()/generate_files()发送,接收,生成文件。generator在receiver端,是do_recv()函数里的生成的新进程。
2024-12-13 15:06:35
271
原创 卫星通信中的拥塞控制算法
总结来说,Cubic在高带宽高延迟网络中表现更好,主要是因为它的增速机制和拥塞控制策略能更好地适应网络的带宽和延迟特性。而NewReno由于其增速较慢,可能在这种网络环境中未能充分利用带宽,因此更适合带宽较低、延迟较短的网络环境。BBR2: 在BBR的基础上添加了新的控制策略,例如更多的延迟反馈机制和更精细的带宽控制算法,以应对复杂网络环境。结论:现有的Cubic和BBR2算法可直接用于卫星通信网络的拥塞控制中,专为卫星设置的拥塞控制算法目前没有集成到系统中,但各自的性能表现需要根据实测情况进行取舍。
2024-08-09 09:41:43
196
原创 论文研读 Automatic TCP Buffer Tuning
动态调整接收套接字缓冲区的一个想法是在缓冲区大部分为空时增加缓冲区大小,因为缺少排队等待应用程序传输的数据表明数据速率低,这可能是接收窗口限制连接的结果。如果低数据速率不是由较小的接收窗口引起的,而是由缓慢的瓶颈链路引起的,则缓冲区大小在检测到数据包丢失时仍将自行校准。(1) 从论文[1]读到“如果应用程序手动使用 setsockopt() 设置接收缓冲区或发送缓冲区大小,该连接的自动调整将关闭”后,注释掉setsockopt()的部分后,可以明显看到系统的自动调优功能在起作用。
2024-06-07 16:25:45
358
原创 论文研读 A Comparison of TCP Automatic Tuning Techniques for Distributed Computing
通过大量实验,他们评估了这些技术在不同条件下的性能,包括不同数量的并行进程和网络延迟。论文《分布式计算中TCP自动调优技术的比较》由Eric Weigle和Wu-chun Feng撰写,探讨了自动调整TCP缓冲区大小以提升分布式应用性能的不同方法。文章首先讨论了手动优化TCP缓冲区大小的局限性,并介绍了研究人员提出的各种自动调优技术来应对这些挑战。作者建议,尽管自动调优可以显著减少手动工作量并提高资源利用率,但应根据具体的应用需求和网络条件选择合适的技术。
2024-06-07 16:23:34
196
原创 WSL虚拟机的两种网络配置方式 NAT Mirrored
网络NAT(Network Address Translation):在网络NAT模式下,WSL通过主机系统的网络连接进行通信,并使用网络地址转换(NAT)技术将WSL的网络流量转发到主机系统的网络连接上。这两种网络配置模式可以根据用户的需求和网络环境进行选择。在WSL(Windows Subsystem for Linux)中,网络NAT(Network Address Translation)和Mirrored是两种网络配置模式,用于管理WSL与主机操作系统(通常是Windows)之间的网络通信。
2024-06-05 17:13:05
4326
原创 TCP/IP 接收发送缓存大小的自动调优 Auto Tuning
另外,/proc/sys/net/ipv4/tcp_rmem(memory reserved for TCP rcv buffers)和/proc/sys/net/ipv4/tcp_wmem(memory reserved for TCP snd buffers)这些是三个值的数组:最小、初始和最大缓冲区大小。启用 net.ipv4.tcp_moderate_rcvbuf 参数后,Linux 内核会根据当前网络状况动态地调整 TCP 接收缓冲区的大小,以适应不同的网络环境,从而提高网络性能和可靠性。
2024-06-05 16:39:00
1049
1
原创 让WSL内核使用BBR拥塞控制算法
使用git命令从Linux内核的Git仓库中获取源代码,$ git clone https://github.com/microsoft/WSL2-Linux-Kernel.git,找到对应的内核版本$ git log --grep="5.15.146.1-microsoft-standard-WSL2",回退到本机安装的内核版本$ git checkout 在配置中搜索TCP_CONG_BBR,确保该选项被设置为y(表示编译进内核)或m(表示编译为模块)。需要事先安装好依赖的工具。
2024-05-27 12:24:00
431
原创 安装新版的Ubuntu WSL以使能BBR拥塞控制算法
【未成功的方案】通过挂在ubuntu24.04.iso到E盘后,用命令> wsl --import Ubuntu24.04 C:\WSL\Ubuntu24.04\ E:\ --version 2安装。【多次尝试成功的方案】通过> wsl - -list -online列出可以安装的版本,用命令> wsl --install -d Ubuntu-24.04 安装。
2024-05-24 16:42:01
917
原创 论文研读之BBR Performance Study 【2】
在网络拥塞控制中,BBR通过优化对带宽和延迟的利用来实现更好的性能。当缓存较浅时,即网络带宽和延迟积相对较小的情况下,BBR会积极地充分利用带宽并快速响应往返时延(RTT)的变化。这是因为在这种情况下,网络更可能处于拥塞状态,而BBR的目标是最大化带宽利用并同时保持较低的延迟,以确保网络吞吐量的最大化。而当网络缓存深时,也就是带宽富余,RTT变化不大的情况下,BBR会更加谨慎地调整发送速率,避免过度拥塞网络。因此,BBR可以根据网络的实际情况动态调整自身的行为,以实现更好的性能和用户体验。
2024-05-22 16:55:01
170
原创 论文研读之mscp:Multi-threaded scp: Easy and Fast File Transfer over SSH
通过记录传输文件传输位置的偏移,将其分为很多块(chunk),基于建立多个ssh链接,用多个线程用sftp报文的形式从客户端发送到服务器端。在数据结构管理上,块是通过链表(list)实现的块池(chunk pool)进行统一管理,分别申请统一释放。另外,mscp还用到了libssh的异步sftp读取,它会向服务器发送多个读取请求而无需等待响应。这个特性可以有效地利用延迟高、带宽大的网络,因为它可以同时处理许多正在传输的请求。
2024-05-17 14:50:04
338
原创 论文研读之hpn-ssh: High speed bulk data transfer using the SSH protocol
这是由 SSH 中的流量控制机制引起的,该机制受静态定义的小接收窗口的约束。但是,在 LAN 传输中,使用亚毫秒级 RTT,这些查询可能会带来额外的开销,最终可能会降低整体性能。又例如,密码块链接 (CBC) 模式下的密码可以并行解密多个块,但不并行加密多个块,而对于计数器 (CTR) 模式的密码,密码块的加密和解密都可以。虽然较大的缓冲区在某些情况下可能提高性能,但也有引入新的、难以诊断的问题的风险。总的来说,SSH、SCP 和 SFTP 是一组灵活、健壮且非常有用的应用程序,不幸的是,它们。
2024-05-17 14:45:51
105
原创 UDP和TCP协议比较,TOE技术
yudt@ubuntu:~/workspace/bugs$ sudo ethtool -K eno1 tso off gso off gro off(下面左图)协议栈需要将应用层的大块数据分段成适合网络传输的小块数据,这个过程称为分段(的负载和提高网络接收性能。在传统情况下,接收到的网络数据包需要在主机。允许网络适配器在接收数据包时执行重组和排序操作,而不是由主机。上进行重组和排序,然后传递给网络协议栈进行进一步处理。),然后将这些分段发送到网络。的负载,提高网络接收性能。
2024-05-09 16:26:49
446
原创 阅读bbr(Bottleneck Bandwidth and Round-trip time congetion control algorithm)经典论文简结 【1】
就是带宽10兆比特每秒、往返时延40毫秒的BBR拥塞控制流。BBR的核心算法的成功在于着力于与拥塞直接相关的拥塞带宽和往返传播时间,探索在网络出现等待队列的边界,Cubic着力在了拥塞表象的丢包和延迟,探索在了网络深浅缓存的边界,容易出现昨天提到过的缓存膨胀或者低吞吐率。在cubic算法中,如果瓶颈缓存特别大,基于丢包的拥塞控制趋于将它们放满而造成缓存膨胀(bufferbloat),如果瓶颈缓存比较小,基于丢包的拥塞控制趋于错误认为丢包是网络拥塞的错误信号而导致低吞吐量(throughput)。
2024-05-09 15:28:30
306
原创 升级WSL Ubuntu内核从5.10到5.15
但是,它可能不会立即更新到最新的内核版本。进入到解压缩的目录 $ cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.57.1/ 使用命令 $ sudo make KCONFIG_CONFIG=Microsoft/config-wsl -j4编译源代码,其中-j4,使得make最多允许编译命令通过4个线程同时执行,这样可以更有效的利用CPU资源,使得编译速度更快。.1.tar.gz版本编译,而舍弃有bug的linux-msft-wsl-5.15.57.1.tar.gz版本。
2024-05-08 17:24:39
1787
原创 argv的一个bug
从《The.C.Programming.Language.2Nd.Ed 》5.10题出发。发现输入波兰式计算的时候,遇到乘法运算符时,argv会与实际输入的参数不同。
2024-04-30 12:02:11
94
原创 用于说明动态分配内存运行时间有效的反例实验 【2】
从《The.C.Programming.Language.2Nd.Ed 》5.17题出发,用参考答案开始。修改上面的参考答案源码,使之可以正确运行,代码如下。
2024-04-29 15:12:31
314
原创 指针实现reverse,getline,atoi,itoa库函数
1.注意getline函数的调用 ssize_t getline(char **lineptr, size_t *n, FILE *stream);及返回值-1的判断条件。1.atoi 和 itoa是integer 和ASCALL字符之间的转换函数。2.数字字符串和数字相互转换的经典算法。2.经典的字符串逆序算法。
2024-04-24 16:36:26
165
原创 逻辑判断符的结合律及strncpy,strncat,strncmp的函数重载
刷题《C programming language》Exercise 5-5。,循环就会继续执行。第二个条件就能保证在两个字符串中任意一个到达了结束符。1. 注意跟string.h函数库的函数重载时函数的原型相同。个字符后结束循环,而不会出现上述的逻辑错误。第一个条件的逻辑意思是:只要。2. 与逻辑判断要先满足。(即字符串未结束),且。
2024-04-24 15:14:51
328
原创 经典栈操作C写法
see Section 4.3 96 . 参考《The C programming language》5.5 Character Pointers and Functions.首先理解++,--操作。在变量符的右边则先取用变量,再做递增或递减;在变量符的左边则先递增或递减后,取用变量。所以上面的p指针指向栈底空着的下一个栈位,push元素时,先赋值后移到下一个空着的栈位;pop元素时,先前移到最后一个有值的栈位,读出并清空了这个栈位。
2024-04-24 12:53:29
214
原创 WSL UDP通信的一个Bug
再看我们Bug的复现现场。只有长度超过十个字符的消息才能发送并收到。先看合理情形下,服务器端自环UDP通信成功的例子。
2024-04-16 14:37:32
372
原创 用于说明动态分配内存运行时间有效的反例实验 【1】
从《The.C.Programming.Language.2Nd.Ed 》5.17题出发,写两个分别使用和不使用动态分配内存拷贝字符串的程序。
2024-04-15 11:16:23
280
1
原创 《人工智能-一种现代的方法》阅读笔记
Definition of AIIn which we try to explain why we consider intelligence to be a subject most worthy of study, and in which we try to decide what exactly it is, this being a good thing to decide before embarking(着手).Thinking Hu
2022-03-31 13:57:15
1067
原创 汽车在不同路面情形下的动力模型
1.水平路面上停放的汽车求解方程组得到质心的位置:a1= 2lmgFZ2a2=2lmgFZ1,并且。2. 斜面上停放的汽车解方程组求解质心的位置:。四轮制动的情形:求解方程组得到力的大小求解坡度的某种极限情形,设,。3. 水平路面上加速的汽车求解方程组得到由静态解和动态解组成的方程解:并假设前轮轮胎和后轮轮胎与地面的摩擦系数相同,而且此时各轮胎同时达到最大牵引力,说明汽车在水平路面的最大加速度和最小减速度直接取决于摩擦系数。①前轮驱动...
2022-02-07 19:53:09
762
原创 卡尔曼滤波 Kalman Filter
%% Kalman Filter Design% This example shows how to perform Kalman filtering. Both a steady state% filter and a time varying filter are designed and simulated below.% Copyright 1986-2012 The MathWorks, Inc.%% Problem Description% Given the follow.
2022-01-21 19:09:08
716
原创 八月读书报告一下
九月一号大部分学校都开学了,费尽周章归国也半年有余,其中苦乐自知。看书的心境是越来越缓了,反倒是想法和审视的态度复杂了起来,老北京的态度多了几个。《四世同堂(上)》《大漠谣(上)》爱情小说,语言文字简单、心理描写直白,一本没打动人的书和有点吸引力的电视剧。《Good Economics for Hard Times》...
2021-09-17 07:40:04
113
原创 七月读书报告一下
没想到三月开始的禁足令持续到五月初结束,直至七月底也并未完全恢复如初,比如运动时还必须戴的口罩,进出任何室内场所的消毒液洗手。如果这一系列时事发生不是偶然,并且影响深远的话,那极有可能是“退商品化”的出现和物资过剩却消费力不够的表现。按理说人类人工智能什么的是让大家不工作也可以生活富足,财富产生的财富应该足以维持现有社会速度向前的,然而历史上似乎也并不是这个道理,比如尼古拉.特斯拉是穷死的。这个月我读了些计算学领域的浅显的技术类书籍。比如«Raspery PI I/O programming usin.
2021-09-02 14:55:03
110
转载 六月读书报告一下
读了四本外文书的样章,我搜罗了比尔盖茨先生和张璐女士两位推荐的今年暑期阅读书单,再找来的几本务实的畅销书来读的,想扩展词汇量和增长些英语人文社会的见识。尽管,俺最喜欢经典文学书的遣词用句,比如下面这句描写道德价值观的:«Quand les familles augmentent outre mesure sans que le bien augmente en proportion, la misère vient, quelque courage qu’on y mette. Voilà mes obs.
2021-09-02 14:50:30
106
原创 《图解密码技术》阅读笔记(下)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-06-30 18:50:05
194
原创 libusb使用指南
#include <stdio.h>#include "libusb.h"static void print_devs(libusb_device **devs){ libusb_device *dev; int i = 0, j = 0; uint8_t path[8]; while ((dev = devs[i++]) != NULL) { struct libusb_device_descriptor desc; int r = libusb_get_dev.
2021-06-16 20:26:41
5597
原创 《图解密码技术》阅读笔记(上)
1. 密码学家的工具箱对称密码,公钥密码,单向散列函数,消息认证码,数字签名,伪随机数生成器这六种技术统称为密码学家的工具箱。2.密码与信息安全常识
2021-06-16 15:41:15
165
原创 【小项目】仿真预测理发馆的经营状况
2008年秋季学期:数据结构课程设计代码量:约1614行语言:C++开发环境:Microsoft Visual Studio 6.0(Windows XP)参与人:张德敏、乐正坤、杜逢杰、杜莹、郝晶晶描述:数据结构的课程设计,旨在复习课程学到的线性表、树、图等逻辑数据结构,以及简单的内部排序算法等。该项目模拟了一个理发店,开店后,按照先来后到的顺序服务顾客的过程。在项目中,用到
2014-01-01 11:44:03
1967
原创 poj 2593 & poj 2479解题报告
说明:poj 2593与poj 2479基本一样,所以下文以2593为例展开 题目Max SequenceTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 9370 Accepted: 3825DescriptionGive you N
2010-05-27 00:36:00
800
1
转载 Word表格自动填充(简单序号的填充,复杂序号的填充,相同文本的填充)
让Word成为全自动助手——Word表格自动填充( 王霞 2004.05.21 09:23:51 本文选自:《中国电脑教育报》 )编辑Excel工作表时,其提供的自动填充柄可以实现序列的自动填充,其实巧用Word提供的“编号”功能,也可以在Word表格中实现序列的自动填充。一、简单序号的填充如果只是想对表格中的单元格从1开始进行编号,比如在图1所示的表格中,“序号”列自动填充的实现方法是
2009-12-08 14:19:00
4166
linux 5.15的内核源码编译,可用于wsl
2024-05-08
哈工大软件学院07级数据结构课程设计
2014-01-01
哈工大软件学院系统分析与设计课件及考试试卷及复习提纲(part I)
2010-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人