自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 一键配置ssh免密登录脚本

一键配置ssh,实现免密ssh登录

2024-01-29 19:57:26 299

原创 GoLand GC(垃圾回收机制)简介及调优

GC(Garbage Collector)垃圾回收机制简介、go内存耗用查看及gc参数调整内存优化

2023-10-29 00:06:25 567

原创 linux手动安装scapy2.5

linux手动安装指定版本scapy

2023-10-18 12:13:01 365

原创 scapy构造ND报文

找邻居报文之ND报文(Neighbor Discovery),scapy构造ND报文

2023-10-12 12:16:43 946

原创 C语言结合字符串和整形

把字符串和整形放在一起,比如结合成:meiyangyang520。

2023-10-08 19:46:54 323

原创 NS3中跟踪发送速率或接收速率

NS3中跟踪发送速率或接收速率

2023-03-02 11:01:53 610 1

原创 NS3运行Reno,BBR,CUBIC等拥塞控制算法

从ns-3.33版本开始,NS3支持CUBIC。从ns-3.34版本开始,支持BBR v1。呜呜呜,感谢前人!!!我用的是ns-3.34, 代码直接改自ns-3.34/examples/tcp/tcp-linux-reno.cc, 呃。也不用改,直接拷贝到scratch文件夹下运行就行…不过运行的只有reno,可以稍微,稍微改一丢丢:可以运行:NewReno,Reno,BBR, CUBIC,Veno等拥塞控制算法// Network topology//// n0 --------

2022-05-25 15:22:50 3116 7

原创 NS3 csma网络莫名丢包

这两天在做NS3仿真的时候,发现了一个莫名的问题,我的实验环境大概是这样的//实验拓扑:// n2 --------------- --------------- n4// | point to point |// csma n0 =========== n1 csma//

2022-05-03 16:09:15 955 5

原创 NS3统计丢包数

ns3可以根据数据包的序列号自己统计丢包,统计方法如下:发送端//添加头文件#include "ns3/packet-loss-counter.h"//在生成数据包时,添加包头 SeqTsHeader seqTs; seqTs.SetSeq (m_sent); Ptr<Packet> p = Create<Packet> (m_size-(8+4)); // 8+4 : the size of the seqTs header p->AddHeader

2022-04-25 20:55:55 1812

原创 NS3数据包时延计算-数据包头

如果要在接收端得到数据包的传输时延,那么就需要在接收端得到数据包的发送时间和数据包到达时间,后者非常简单,直接在收到包的时候Simulator::Now ().GetSeconds ()即可,而怎样得到数据包的发送时间呢。有三种方法:创建跟踪源并使用回调来获取每个数据包的创建/发送时间和发送/接收时间。 然后你可以计算延迟使用标签来标记数据包的创建/发送时间,并在收到时读取此标签并计算延迟使用包头(或仅包头中的字段)包含创建/发送的时间,并在收到包头时读取该包头第二种方法见:NS3数据包时

2022-04-25 20:10:51 1428 1

原创 NS3数据包时延计算-插入时间戳Tag

如果要在接收端得到数据包的传输时延,那么就需要在接收端得到数据包的发送时间和数据包到达时间,后者非常简单,直接在收到包的时候Simulator::Now ().GetSeconds ()即可,而怎样得到数据包的发送时间呢。有三种方法:创建跟踪源并使用回调来获取每个数据包的创建/发送时间和发送/接收时间。 然后你可以计算延迟使用标签来标记数据包的创建/发送时间,并在收到时读取此标签并计算延迟使用标头(或仅标头中的字段)包含创建/发送的时间,并在收到标头时读取该标头这里介绍第二种方法,第二种方

2022-04-21 13:28:18 1923 2

原创 使用npm管理node版本

查看本地node版本$ node -v查看本地npm版本$ npm -v清除node.js的cache$ sudo npm cache clean -f安装 n 工具,一个专门用来管理node.js版本的工具$ sudo npm install -g n安装并切换到最新版本nodejs$ sudo n stable安装并切换到指定版本nodejs$ sudo n 14.8.1安装最新版本npm$npm -g install npm切换npm版本$npm insta

2021-10-28 16:24:17 1161

原创 论文总结:Fast and Light Bandwidth Testing for Internet Users(21‘ NSDI)

总担心自己看论文看完就过了,所以做个记录!这篇论文主要解决的是互联网用户的带宽测量问题。即优化了现有的带宽测量技术,提出了FastBTS(fast bandwidth testing services),快速,低成本,可以大规模部署。但并没有提出新的带宽测量方法。core idea:accommodate and exploit the noise rather than repetitively and exhaustively suppress the impact of noise即适应并充分

2021-10-08 21:54:03 247

原创 论文总结:XLINK(SIGCOMM‘21)

自己看论文方法有点问题,最近尝试做一些改变。这是一篇今年的SIGCOMM,看完之后来记录一下。XLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video Services大规模视频服务中 QoE驱动的多路径QUIC传输方案。解决的主要问题:多路径中队头阻塞问题QUIC中多流阻塞问题平衡开销与性能的关系(不太重要)XLINK的核心思想充分利用QUIC是一个用户空间协议的优势利用QoE内容进行包的调度和路径管理XL

2021-08-24 11:23:48 1024

原创 NS3中数据包添加有效负载

目的:将自己想发送的内容放到packet中,使其发送到客户端显示。说白点就是让数据包夹带私货,可以输出时延、丢包率等信息。你要是问为什么不使用日志系统,呃,问就是不会…发送端:在生成数据包函数中添加或修改:std::ostringstream msg; msg << "I love you!" << '\0';uint16_t packetSize = msg.str().length()+1;Ptr<Packet> packet = Create<

2021-07-20 21:37:48 700 4

原创 socket编程流程与函数(实用篇)

首先要明白,三元组可以标识唯一主机的唯一应用程序,网络中进程的通信就可以利用三元组的标志与其他进程之间进行交互。三元组是:ip地址、端口号和连接(通讯链路)。或者也可以说是五元组:(协议,本地地址,本地端口号,远地地址,远地端口号)socket编程建立连接的流程如下:1.什么是socket网络中的进程是利用socket来进行通信的。socket对于linux/Unix来说是一个特殊的文件,一些socket函数会进行读写io、关闭、打开等功能2.socket的基本操作2.1 socket()函数

2021-06-14 22:30:48 1054 1

原创 Socket套接字的速率控制(linux)

发送端系统:ubuntu18.04接收端系统:ubuntu18.04最近要做一些socket的实验,我对socket也不大了解,不过socket还算是比较好学的,算是在应用层和传输层中间,给你提供了调用了传输协议的api,还是很友好的哦!哦吼!我要对socket发送文件的速率进行限制,想要把文件传输速率限制到想要设置的速率。大概原理如下:一、主要原理比如说,我要把文件的传输速率限制到10Mbps,他等同于,在一秒钟传输10Mbit的内容。所以我们需要定时器+文件传输限制。大概就这两部分。sock

2021-06-14 22:07:49 4713 1

原创 NS3-命令行参数

参考书:《NS-3网络模拟器基础与应用》–马春光、姚建盛这里有电子版:链接: https://pan.baidu.com/s/1z7PpGkYKd6dt6pIwTfYj5g 密码: kisn。如果百度网盘不骗我的话,应该是永久有效的。命令行可以传递参数修改系统已有参数。一、修改系统参数ns-3还提供了另一种不需要重新编辑和构建脚本运行行为的方法。这种方法就是通过命令行传递参数来改变脚本中的变量。不过在使用命令行系统前,首先要声明一个命令行类的对象,然后调用Parse,具体方法如下:int ma

2021-03-17 22:20:52 1178 1

原创 ubuntu安装eclipse及问题

因为要用eclipse做NS3(C++)的仿真,所以下了个eclipse。我发现我只要下一个软件,但凡是跟学习沾点边,他都会翻车。哭了,命运这是在暗示什么吗?系统:ubuntu18.04(+win10双系统)jdk版本:1.8.0_282,也就是软件包jdk-8u***-linux-x64.tar.gzeclipse版本:其中jdk的版本比较重要,因为要和eclipse适配,否则就会出现jdk下载好,环境变量配置好,eclipse也下载好了,但就是打不开的情况。很让人无奈。一、下载安装JDK可以

2021-03-11 17:42:58 1751 1

原创 ubuntu切换JDK版本

因为JKD版本的影响,我的ecplise打不开,所以可以采用这种方法切换不同的JDK版本。首先查看JDK版本:java -version如:一、安装jdk我要切换成另外一个版本。如果没有但是有需要的话,可以先安装另外一个版本,可以直接采用命令行进行安装:sudo apt install openjdk-8-jdk默认路径会安装在/usr/lib/jvm/java-8-openjdk-amd64中.配置环境变量:sudo vim ~/.bashrc在最后一行添加##这个添加的就是

2021-03-11 17:35:20 6963 1

原创 NS3入门--second.cc

哦吼!Second,second.cc!/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- *//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free

2021-03-05 09:45:12 454 1

转载 NS3入门--first.cc

因为实验的需要,被迫从OMNet++转战到NS3,哎,OMNet还没闹明白呢…这大概就是先帝创业未半而中道崩殂吧!呸呸呸,今天看一下NS3中examples中tutorial的第一个例程first.cc一、NS3编程逻辑大概是这样的:1.头文件2.命名空间:(using namespace ns3),将ns3项目和非ns3项目区分开。在ns3使用标准库函数时需要添加std名字空间,如“std::cout”,“std::min()”等。3.NS_LOG_COMPONENT_DEFINE(“first

2021-03-04 09:55:03 924 6

转载 OMNet++新建工程及运行

版本:5.6.2刚下了OMNet++,尝试跑了一下例程。因为是第一次接触,所以感觉OMNet和自己配合的并不是很好。昨天新建并运行了第一个工程:TicToc1,流程大概是这样的:创建及运行仿真1.打开OMNET++的IDE2.新建OMNET++工程文件:FILE-NEW-OMNET++PROJECT3.工程文件设置输入工程名称选择一个空工程选项,Finish然后就出现了你创建的工程文件4.添加NED文件NED文件是用来定义网络和节点数目的。我们也是通过添加NED文件来部署我们的节

2020-12-03 11:09:51 2789 4

原创 Ubuntu安装OMNet++及各种问题

系统:ubuntu18.04 (+win10双系统)OMNet++版本:5.6.2最近要做网络仿真,老师推荐的软件是OMNet。嘶~没学过,还没学过C++,慢慢啃吧。每次安装软件都会出现各种问题,昨天花了大半天时间才把OMNet装好,无他,主要是我不会,但装好了就总结一下吧。一、安装环境首先[Ctrl + Alt + T],或直接打开终端,安装必要的软件包,先更新可用包的数据库:sudo apt-get update然后安装需要的软件包:sudo apt-get install build-

2020-12-02 15:04:57 4550 3

原创 package has no installation candidate最新解决办法

实验室刚买了台服务器,刚装完系统(ubuntu server 20.10),配置ssh账号的时候,安装openssh-server时出现了两个错误The list of sources could not be read.package has no installation candidate执行sudo apt install openssh-server时,出错:package openssh-server has no installtion candidate当然下载其他包的时候也会

2020-11-27 17:18:06 107922 6

原创 双系统安装ubuntu的各种错误

在笔记本装了很多遍Ubuntu了,除了界面卡死之外,并没有出现其他的问题。这两天在台式机上安装ubuntu还是出现了其他的问题,困扰了好久,终于解决了,所以就用这篇文章总结以下出现的问题。硬件如下:CPU:10代i5显卡:GTX 1050Ti固态:三星256G NVME固态原始系统:win10Ubuntu系统版本:18.04(主要是用习惯了)无线网卡:秘密(主要是忘了)出现的问题主要有:1.ubuntu安装卡死在ubuntu的logo界面(鼠标不动)2.ubuntu安装卡死在分完区“现在

2020-11-12 23:57:33 4575

转载 主函数main中变量(int argc,char *argv[ ])的含义

一直不太理解int main( int argc, char* argv[] )或者int main( int argc, char** argv )经典例子对于理解argv[ ]函数很管用:#include <stdio.h>//#包含<stdio.h> int main(int argc,char* argv[]) //整数类型主函数(整数类型统计参数个数,字符类型指针数组指向字符串参数){ printf("%d\n",argc);

2020-10-14 21:37:36 953

原创 ubuntu安装VMware出错

ubuntu版本:4.15.0-118-genericVMware:14.1.7 , 15.xx,16.xx本来以为是版本的问题,所以试了很多版本,但是都不行。后来发现是系统少了必要的安装环境。出错信息安装了好多次vmware,他一直出错,都没停过。出错信息如下:Before you run VMware,severval modules must be compiled and loaded into the running kernel.然后我天真的以为点了install他能自己下载,毕竟

2020-10-14 10:57:17 886

原创 TCP/IP协议各层首部汇总

TCP/IP将网络划分为4层,当然标准的因特网协议栈有5层,OSI模型有七层。TCP/IP的4层结构如下:将TCP/IP协议族的网络分层描述的详细些的话,如图:每一层都有自己的首部及封装格式:一、 TCP报文格式其中:二、 UDP报文格式其中:源端口号:源端口号目的端口号:目的端口号UDP长度字段指UDP首部和UDP数据的字节长度,该字段最小值为8字节UDP校验和覆盖UDP首部和UDP数据部分三、 IP报文格式其中:四、 以太网报文格式当数据包的类型为:

2020-09-24 09:51:20 1214

原创 数据级并行--计算机体系结构

参考书:《计算机体系结构量化研究方法》 作者:John L. Hennessy一、 引言指令流与数据流的并行分类单指令流、单数据流(SISD)单指令流、多数据流(SIMD)多指令流、单数据流(MISD)基本不使用这种类型多指令流、多数据流(MIMD)SIMD相比于MIMD的优势由于数据操作是并行的,所以程序员可以采用顺序思维方式但却能获得并行加速比SIMD的三种变体向量体系结构多媒体SIMD指令集扩展图形处理单元(GPU)二、 向量体系结构本质:以流水线形式来执行多数据操

2020-09-17 09:42:18 2160

原创 指令级并行--计算机体系结构

参考书:《计算机体系结构量化研究方法》 作者:John L. Hennessy一、基本概念几乎所有处理器都使用流水线来重叠指令的执行过程,以提高性能。由于指令可以并行执行,所以指令之间可能实现的这种重叠称为指令级并行(ILP)。ILP大体有两种不同开发方法1) 依靠硬件来帮助动态发现和开发并行2) 依靠软件技术在编译时静态发现并行基本块:一段顺序执行代码,除入口外没有其他转入分支,除出口外没有其他转出分支对于一段指令可能相互依赖,所以在基本块中可以开发的重叠数量可能要少于基本块的平均大小,为了

2020-08-31 16:47:03 4365 1

原创 简单理解Tomasulo算法与重加载缓冲区

参考书:《计算机体系结构量化研究方法》 作者:John L. Hennessy流水线运行的一个主要限制是:它们使用循序指令发射与执行的方式。把指令执行的流水线简单比喻为洗衣服:采用循序发射与执行方式的限制,意思就是,衣服只能一件一件洗,洗完一件才能洗下一件。如果现在洗衣机坏掉了(硬件故障),或者衣服还没脏(操作数不可用),这个流水线就停顿了,哪怕后面还有指令等待执行。但是我们希望操作数可用的时候就立即执行指令(有脏衣服就洗),这样的流水线实际上是乱序执行的,意味着它将会乱序完成。这就是动态调度的主要思

2020-08-31 15:52:02 2571 5

原创 流水线问题--计算机体系结构

参考书:《计算机体系结构量化研究方法》 作者:John L. Hennessy一、 基本概念先理解几个基本概念:流水线:是一种将多条指令重叠执行的实现技术。一条指令的执行需要多个操作,流水线技术充分利用了这些操作之间的并行性。流水级:不同步骤并行完成不同指令的不同部分。这些步骤中的每一步都称为流水级或流水段吞吐量:由指令退出流水线的频率决定。处理器周期:一条指令在流水线中下移一步所需要的时间。一个处理器周期通常为1个时钟周期。(又是为2个,但要少见的多)流水线的作用:缩短每条指令的平均执行时间

2020-08-22 17:57:05 10413 4

原创 ELF文件格式详解-请查收

上一篇文章中主要介绍了ELF文件的基本定义和目标文件的分类,这篇文章中主要介绍下ELF文件格式ELF文件主要提供了两个视图:链接视图及执行视图,分别针对程序运行过程的链接过程和执行过程。如下图所示:单从相貌上来看,二者长得很像,除了肚子。可以看出链接视图采用的节(section)作为基本单位,而执行视图采用(segment)为基本单位。那么问题来了,这二者有什么区别?这是个设问句,区别如下:Section与segment在汇编语言中,代码段、数据段就是所谓的段(segment)。在可执行文件载入内

2020-08-16 11:16:17 2294 1

原创 ELF文件简介

基本定义ELF(Executable and Linkable Format)是一种用于二进制文件,可执行文件、目标代码、共享库和核心转储格式文件。简单理解:一种二进制文件格式目的:提供一组二进制接口,这些接口可以延伸到多种操作系统中,从而减少重新编码、编译程序的需要。ELF文件分类1. 可重定位目标文件(Relocatable file)由汇编器产生的.o文件。包含二进制代码和数据,用来被链接成可执行文件或者共享目标文件。例如:.o文件如程序执行图中的hello.o部分相应命令:gcc

2020-08-16 09:48:41 1378

原创 带宽测量:带宽测量工具下载

带宽测量:带宽测量工具下载1.有线网络中带宽测量工具pchar工具下载: http://www.kitchenlab.org/www/bmah/Software/pchar/pathar工具下载:https://www.caida.org/tools/utilities/others/pathcharpathload工具下载:https://www.cc.gatech.edu/fac/Co...

2020-05-05 12:21:13 772

原创 带宽测量:pathload编译及运行

环境:Ubuntu 18.041.下载pathloadpathload下载:链接pathload下载网址:https://www.cc.gatech.edu/fac/Constantinos.Dovrolis/bw-est/pathload.html2.解压配置pathload属于双端测量,用于确定两点之间网络的可用带宽。分为服务器端与客户端。下载pathload压缩包到某一文件夹下,...

2020-03-08 15:44:36 298

原创 vi快捷键按键说明

基本上vi分为三种模式:一般命令模式、编辑模式、命令行模式。以下是常见按键说明:1.一般命令模式按键说明包括光标移动、复制粘贴、查找替换等1.1移动光标h或向左箭头光标向左移动一个字符j或向下箭头光标向下移动一个字符k或向上箭头光标向上移动一个字符l或向右箭头光标向右移动一个字符左右箭头就是方向键的上下左右,其实你会发现h、j、k、l是在键盘上...

2020-02-11 15:40:27 735

原创 Linux学习笔记-文件压缩与解压缩

Linux学习笔记-文件压缩与解压缩背景:文件压缩技术首先,我们的电脑都是以字节为单位进行计量(最小计量单位为bit)。假设我们要存储数字“1”,那么计算机会存储为“00000001”,压缩就是把这些没有用到的存储空间“丢掉”。若要使用这些被压缩过的文件数据,就必须把他还原成为压缩时的模样,这就是所谓的解压缩压缩比: 压缩后与压缩前文件所占用的磁盘空间的大小之比。很多www网站就是利用文...

2020-01-31 12:37:41 323

原创 Linux学习笔记-文件权限与路径

Linux学习笔记-文件与目录目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识。我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此纪念自己的学习生活吧!简介我的电脑是ubuntu-18.04与windows双系统,如果要装双系统的同学可以参考以下链接:双系统安装:https://blog.csdn.net/qq_31192...

2019-12-16 21:22:28 440

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除