- 博客(70)
- 收藏
- 关注
原创 智能拥塞控制PCC-3-在线训练
这次记录是如何在线训练模型的1.启动服务端2.启动训练环境,在环境中去训练模型cd pcc-rl/gym/training/online/python3 shim_solver.py注意:此时红框一下是没有数据的,要等到客户端开始发送连接请求,模型也随之开始训练3.客户端发请求,开启训练模式第二部也随之开始训练模型,迭代数据如上图所示明天去训练一个完整模型,然后测试...
2021-11-12 01:37:27 2815 4
原创 智能拥塞控制PCC-2
用智能体部署到发送端来进行拥塞控制.md安装教程来整1.启动服务器2.启动客户端执行命令./pccclient send 127.0.0.1 9000 --pcc-rate-control=python -pyhelper=loaded_client -pypath=/home/quic/PycharmProjects/pythonProject/src/udt-plugins/testing/ --history-len=10 --pcc-utility-calc=linear --model
2021-11-12 01:05:34 1044
原创 智能拥塞控制PCC代码调试记录
1.首先给出PCC代码网址https://github.com/PCCproject里面有RL版和PCC-user2.去PCC-user中下载deep-learning版3.进入src目录来编译UDT组件运行命令 make文件夹app产生了两个程序,客户端和服务端4.配置环境变量gedit ~/.bashrc5.启动服务端进入app文件夹下 执行命令 ./pccserver recv 90006.启动客户端进入app文件夹下 执行命令客户端与服务端的通信便完成
2021-11-11 23:19:56 525 2
原创 基本表查询语句
数据查询的基本语法select all/distinct <目标表达式>from 表名where <条件表达式>group by <列名> [having <条件表达式>]order by <列名> [asc/desc]这里的目标表达式可以是where 用来选择某些满足条件的记录group by 用来分组order by 用来排序 asc升序 desc降序查询单表-- 选择若干列(投影)-- select snam
2021-06-21 20:02:17 315
原创 SQL数据库
传统集合运算并 差 交 笛卡尔积注意:笛卡尔积的元素是元组两个分别为n目和m目的关系R和S的笛卡尔积是一个(n+m)列的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则R和S的笛卡尔积有k1*k2个元组专门的关系运算选择、投影、连接、除选择的结果是若干行投影的结果是若干属性列连接连接分为两种等值连接属性值相等的元组进行连接自然连接两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉表的基本操
2021-06-21 16:39:01 129
原创 软件设计师-202年下-下午大题-题解
======================================================================================================某工厂制造企业为了开发软件智能检测以有效提升检测效率,节约人力资源,该系统的主要功能是:(1)基础信息管理。管理员对检测标准和检测规则等基础信息设置。(2)检测模型部署。管理员对常用机器学习方法建立的检测模型分布。(3)图像采集。实时将检测多样的产品待检测建分存储,包括产品结构,生产时间,图像信号和
2021-05-15 11:48:45 5217 6
原创 剑指offer-二叉搜索树后续遍历
这个题目没有看明白书中的解答方式,从B站上看明白一个算法解答,贴在上面作为理解,后续的将书上的看明白再去贴import java.util.ArrayList;public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length==0){ return false; }
2021-01-14 10:58:15 107 2
原创 剑指offer-用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } pub
2021-01-11 22:58:53 158
原创 程序设计六大原则——依赖反转原则
如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的经典著作“Agile Software Development, Principles, Patterns, and Practices”一书中。依赖倒转原则定义如下:依赖倒转原则(Dependency Invers
2021-01-08 13:34:55 279
原创 程序设计六大原则——开闭原则
开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是***用抽象构建框架,用实现扩展细节***可以提高软件系统的可复用性及可维护性。开闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统,例如:我们版本更新,我尽可能不修改源代码,但是可以增加新功能。程序设计代码参考https://blog.csdn.net/lijunfeng1008/articl
2021-01-08 12:39:09 411
原创 程序设计六大原则——单一原则
这里说的单一原则针对类而言,一个类仅仅实现一个功能,换句话说就是一个类就干一件事,这样我们的设计才会更加详细,也符合"高内聚,低耦合"的软件设计特点。单一职责原则并不是一个类只能有一个函数,而是说这个类中的函数所做的工作是高度相关的,也就是高内聚。...
2021-01-08 12:33:00 330
原创 java设计模式-简单工厂模式
简单工厂模式只是用来入门的设计模式,并不符合java设计的7大原则,因此不是23中设计模式之一设计一个运动员接口,球员有两个操作转会或者参加比赛ipublic interface Player{ public void Operation1(); public void Operation2();}有两个类实现了Palye接口public class Player1 implements Player{ @Override public void Oper
2021-01-08 11:59:35 117
原创 iperf使用应注意的一些参数以及测试时延
https://my.oschina.net/smartman/blog/312091?p=1添加链接描述添加链接描述尤其是注意iperf对tcp进行测试时,窗口-w的设置大小,这里 -w应该是代表网络通信的信道容量第二个文章中还提到了测试时延
2020-10-26 19:27:33 2778
原创 显示打印linux内核参数的命令,以及测试工具
打印系统参数sysctl -ahttps://www.cnblogs.com/zengkefu/p/5561797.html打印 mptcp相关参数sysctl -a | grep mptcpiperf 用来测试平均吞吐量tcpprobe用来测试流量 ifstat”测量每个子流的吞吐量netstat分别用于和重传段的总数...
2020-10-26 15:44:06 393
原创 实验前的准备工作
本周老师布置任务是完成在动态拓扑上面的时延测试,传输协议是用mptcp和tcp.传输一个20G大文件。比较一下这两个协议的传输性能今天周一,我打算是在静态拓扑上面先传输一下文件,看看是用哪些命令拓扑随意搭建 h1 --r1--r2--h2测试命令用iperf服务端 h2:iperf -s -p 5566 -i 1 &客户端h1:iperf -c 10.0.5.2 -p 5566 -t 60 -F google.zip说一下我踩的坑,我要传的这个文件必须和拓扑文件在同一个文件夹下,
2020-10-19 21:10:49 549
原创 edit congestion control code
1.cd /usr/src/mptcp/net/ipv42.#usr/src/mptcp/net/ipv4 mkdir mptcpcd usr/src/mptcp/net/ipv4 /mptcp3.touch tzlia.c4.eidt this file5.touch Makefile6.#usr/src/mptcp/net/ipv4 /mptcp make7.insmod tzlia.ko8.sysctl net.ipv4.tcp_available_cong
2020-09-15 11:06:02 143
原创 在linux内核中编程
https://blog.csdn.net/tigerjb/article/details/6010997#1607120添加链接描述编写一个最简单的文件hello.c#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_A
2020-09-13 09:57:09 189
原创 mptcp联合拥塞控制算法 balia代码总结
static int rate_scale_limit = 25;static int alpha_scale = 10;static int scale_num = 5;//这里static修饰的都是全局变量,而且不允许其他文件引用struct mptcp_balia { u64 ai; u64 md; bool forced_update;};这里表示一个结构体(相当于java中的类)实现了一个拥塞控制接口,里面有私有的成员变量//static inline表示这是一个内嵌函数,不
2020-09-07 20:35:56 1264 7
原创 tcp-reno拥塞控制算法
这个是tcp拥塞控制的接口,有些是必须实现的struct tcp_congestion_ops { struct list_head list; u32 key; u32 flags; /* initialize private data (optional) */ void (*init)(struct sock *sk); /* cleanup private data (optional) */ void (*release)(struct sock *sk); /* retu
2020-09-07 20:09:42 1190
原创 以deb包方式编译内核
参考:https://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=3587101.下载依赖包sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils kernel-package2.下载mptcp源代码到/usr/srccd mptcp3.第一次编译的话,清除之前的存档make mrproper4.载入系统内核选项设置cp /boot/con
2020-08-25 23:07:09 2716
原创 将dlia.c拥塞控制算法文件以添加选项的方式编译到内核中去
上次编译内核采用了”七伤拳“式编译,上次编译是直接删掉mptcp_coupled.c这个文件,然后把mptcp_dlia.c文件内容复制到这个mptcp_coupled.c文件中,这压根就是个不理想的做法。因为这样就不能自由切换各算法了,对以后实验也会造成麻烦。今天采用添加选项的方式将mptcp_dlia.c文件编译到内核中去,完全是照着葫芦画瓢做的首先我将mptcp_dlia.c文件放在了/mptcp/net/mptcp文件夹下,之后修改Makefile文件上图中我在net/mptcp/Makef
2020-08-16 01:07:05 363
原创 记录更改内核的拥塞控制算法
这里,我把某篇论文中的dlia.c(这个是拥塞控制算法)直接复制到了mptcp_coupled.c这个文件中,原来的lia算法代码被删掉,这个算法的名字是“dlia”,经过编译新的内核,发现没有报错,mptcp_coupled.c也生成了.o文件于是想仿照论文实验,去重现论文实验我打算用命令行的方式更改当前内核的拥塞控制算法root@tz-virtual-machine:/home/tz# cat /proc/sys/net/ipv4/tcp_allowed_congestion_control结
2020-08-14 12:29:23 1211 2
原创 unbuntu安装mptcp源码 (非patch版本)
0安装mptcp依赖.sudo apt-get update sudo apt-get install libncurses5-devapt-get install build-essential1.下载mptcp源码1.cd /usr/srcgit clone -b mptcp_v0.93 --depth=1 git://github.com/multipath-tcp/mptcp //这里面v0.93是mptcp版本号执行后这样src文件夹下会有一个mptcp文件夹,里面存放
2020-08-13 14:26:17 651
原创 install and unintsall mininet
卸载mininetroot@tz-virtual-machine:/home/tz# rm -rf /usr/local/bin/mnroot@tz-virtual-machine:/home/tz# rm -rf /usr/local/bin/mnexecroot@tz-virtual-machine:/home/tz# rm -rf /usr/local/lib/python*//mininetroot@tz-virtual-machine:/home/tz# rm -rf /usr/local
2020-08-13 14:09:55 190
原创 有关mptcp套接字
应用层调用的是传统的套接字(socket),而建立了mptcp连接以后,调用多路径控制模块(multipath control block),该模块也就是所说的MPTCP层,初始的tcp套接字为主套接字,之后新建立的tcp套接字为从tcp套接字,无论主tcp套接字上的子流关闭与否,主tcp套接字一直存在,用于向上层隐藏mptcp的存在,从而实现透明。具体实现上,如图所示,首先每个子流的处理都通过一个tcp_sock来加以实现,除此之外,该tcp_sock还包括一个指向mptcp_tcp_sock的指针,.
2020-08-11 23:53:36 465
原创 unbuntu修改文件权限,方便文件的增删移动
查看文件的权限ls -l filename修改文件权限chown UserName FileName (xxxx为自己普通用户的名称) 这条是修改所属者 这条指令便可以执行对文件的操作了chgrp UserName FileName (这条是修该组成员)...
2020-08-04 09:37:20 187
原创 unbuntu开机进入高级选项
打开 /etc/default/grub ,将 GRUB_TIMEOUT 设置为 -1 。运行命令update-grub完成修改
2020-08-02 15:19:15 11455 2
原创 mptcp补丁patch的方式到内核
本教程不是需要下载mptcp源代码,而是采用patch方式1.下载patch文件 wget http://multipath-tcp.org/patches/会得到一个xxx.path文件2.根据patch文件,下载对应的内核源码https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.0.tar.xz3.将该内核源码解压缩到 /usr/src目录下/usr/src/linux-5.04.将xxx.patch文件移动到/usr/s
2020-08-02 15:11:12 770
原创 两种方式安装numpy
因为unbuntu19.04一直未安装pip,所以在网上查找许多教程,总结了一些方法安装numpyapt-get方式:sudo apt-get install python-numpypip方式:sudo pip install numpy
2020-06-24 10:39:54 301
原创 地球围绕太阳旋转
[x,y,z]=sphere;%matlab中sphere函数zd [X,Y,Z]=sphere(30),其中参数30表示球面沿着经度、纬度方向被分成的面片数。patches=surf2patch(x,y,z,z);%将曲面数据转化为块数据Ssun=1;%太阳半径=1Searth=0.3;%地球半径=0.3Smoon=0.1;%月亮半径=0.1Res=4;Rme=1;alpha=0; %αbeta=0; %βtheta=0; %θstep_a=0.1; %a的步长
2020-05-28 13:13:56 1407 2
原创 quic-go环境搭建
1.安装go下载:https://golang.google.cn/doc/install?download=go1.13.8.linux-amd64.tar.gz2.放在home/3.解压:tar -C /usr/local -xzf go1.13.8.linux-amd64.tar.gz此时默认解压到 usr/local/go下了4.配置环境变量vi /etc/profilee...
2020-04-29 18:55:53 3655 3
转载 ubuntu 下安装python3
https://blog.csdn.net/xiaobiyin9140/article/details/84370360
2020-03-20 22:17:04 102
原创 golang 中goexit使用
普通并发:func test() { defer fmt.Println("我在test()里面的defer")//在函数退出前执行 fmt.Println("我在test()里面")}func main() { go func() { fmt.Println("我在main(()里面,在test()之前") test() fmt.Println("我在main(()...
2020-01-02 09:23:34 2061
原创 客户管理系统--golang
src下分了三个文件夹分别是model、view、servicemodel里面的代码package modelimport "fmt"//声明一个customer结构体type Customer struct { Id int Name string Gender string Age int Phone string Email string}...
2019-10-31 20:02:49 545
原创 golang用户记账软件——面向对象
familyAccount.go文件里package utilsimport ( "fmt")type FamilyAccount struct { key string //循环显示主菜单 loop bool //定义一个变量是否有收支行为 flag bool //定义账户余额 balance float64 //每次收支的金额 money float64 //...
2019-10-29 21:42:11 167
原创 golang用户记账软件——过程化
go语言面向过程化的package mainimport "fmt"func main() { //声明一个变量,保存用户输入的选项 key := "" //循环显示主菜单 loop := true //定义一个变量是否有收支行为 flag := false //定义账户余额 balance := 10000.0 //每次收支的金额 money := 0.0 //每...
2019-10-29 21:38:35 173 1
原创 解决c++闪屏问题
#include<iostream>#include<stdlib.h> //(**)using namespace std;int main() { cout << "Welcome" << endl; system("pause"); //(**) return 0;}加上两句(**)的语句,就会成功解决闪退...
2019-10-07 19:26:08 2284 2
原创 返回引用
#include <iostream>using namespace std;int & sum() { int num = 10; int& rNum = num;//rNUm生存周期在sum()函数内 return rNum;//返回一个局部的引用类型的变量,记住不要返回 局部变量的引用}void test() { int x = 1; int ...
2019-08-21 19:50:29 316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人