自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (3)
  • 收藏
  • 关注

原创 NS3编译错误 all warnings being treated as errors 解决方法

但网上就很多说法都是说把 NS3 根目录下的 build 文件夹下的 c4che/_cache.py 文件中的 -Werror 标记给去掉,这其实是很费解的一个行为,因为 build 本身就是编译配置文件,是通过 ./waf configure 来生成的,而你在生成之后修改这个 build 的配置文件,实际上是非常不优雅的一件事。这样在 ./waf configure 生成的编译配置文件(build 目录下的内容)就不会包含 -Werror 选项了,因此也不会出现上述提到的错误。

2024-03-21 19:52:24 874

原创 NS3 使用 waf 工具添加外部库

当然其实临时变量问题也不大,我们这部分代码仅在 ./waf configure 的时候会运行(写在 def configure 函数中的),而我们生成了配置文件之后一般直接 ./waf build 进行编译就行了,没必要总是生成新的配置文件,所以后续我们再次编译代码的时候是没有影响的!再说一点,就是经过我的测试, conf.env.append_value(“LIB”, [“zmq”]) 这一句话不加是会报错的,具体原因我到目前还没有完全理解,可能要完整看一下所有 wscript 才能清楚。

2024-03-21 17:12:27 589

原创 在Linux中开发C++

​ makefile 主要在工程实践中帮助我们完成C++工程配置问题。make 字面意思就是制作文件,制作一个当前平台可以运行的文件!像我们之前使用 g++ / gcc 生成可执行文件就是一个简单的 makefile 的过程。配置环境(系统环境)确定标准库和头文件位置确定依赖关系(源代码之间编译的依赖关系)头文件预编译预处理编译链接安装和操作系统建立联系生成安装包​ 在大型工程中,有很多头文件和 .cpp 文件,它们在编译的时候会存在以来关系!

2024-03-19 16:34:34 911

原创 ATTRIBUTE_HELPER_HEADER

ATTRIBUTE_HELPER_HEADER是ns3中的一个宏定义,用于声明类类型的属性值、访问器和检查器。

2024-03-14 20:08:20 221

原创 argparse.ArgumentParser()示例

个人理解:xshell编程是一个很麻烦的过程,尤其是在很多变量,且想不断更改数值的时候,所以python提供了argparse库,以方便更好地进行命令行编程。

2024-03-04 16:15:53 715

原创 ebpf流拥塞控制算法使用笔记

一、原理首先在内核态收集TCP信息,并通过eBPF发送给用户态。然后使用Antelope来选择合适的CC算法最后将CC算法传输给内核(bpf_map),并在内核中切换拥塞控制算法1、收集数据流信息通过 saddr,daddr,lport, dport 来区分每一个流每个流收集 srtt, mdev, min_rtt, packets_out, total_retrans, pacing_rate, TCP状态等信息记录在sock结构体中每个ACK到达时,生命周期函数会触发把信息通过eBPF发

2024-03-01 13:50:11 847 1

原创 winscp连接虚拟机过程

新的虚拟机可能没有安装openssh,记得要安装openssh,一开始以为是ssh-server,发现安装的不对(或许是ubuntu版本问题?),我用的是ubuntu20.04。发现切换net模式的时候能ping通第一个地址,切换桥接模式的时候发现能ping通第二个地址。难道net模式默认是本机地址互相ping,桥接模式可以在无线网内ping通任意网段内主机?启动网络连接后,即可进行winscp连接。另外在过程中有尝试切换桥接模式和net模式。执行ifconfig查看主机ip。安装完成后记得更新apt。

2023-10-23 21:19:04 1118

原创 2023.1.26

拥塞控制和流量控制的关系十分密切,十分容易弄混淆,它们之间也存在着一些差别。

2023-02-03 14:30:16 526 1

原创 ubuntu20.04安装ns3环境笔记

本机安装ns3处于ubuntu20环境下,该环境能够实现屏幕全屏,和window共用复制粘贴键等功能,因此在20.04环境下安装ns3。

2022-10-21 12:32:48 2031

原创 LSTM学习

参考链接一:

2022-10-16 17:29:42 299

原创 网络拓扑结构

网络拓扑的几种结构

2022-09-21 12:30:24 2425

原创 桶算法学习

空间复杂度估算:一般题目复杂度:256M -> 8e7个 int写代码之前要清楚自己能不能用双重for循环子问题能否在O(1)内解决例题:珂朵莉与宇宙什么是子序列什么是空间复杂度转换等式解题思维桶的应用第一次尝试:MLE、TLEpackage niuke;import java.util.ArrayList;import java.util.Scanner;public class CadolliAndTheUniverse { public static

2022-06-01 13:45:30 84

原创 深度优先搜索

递归递归:解决子问题的方法和当前问题一致(可以把当前问题拆分成若干个子问题。基本上所有问题都可以搜索。递归终止条件dfs深度优先搜索这个概念基于递归,两者之间没有明显的概念。主要区别是搜索基于全局去搜索的,递归是拆分子问题。例如:八皇后问题(8x8的棋盘内,放置八个皇后,让皇后不能互攻)每一行只能有一个皇后,不知道在哪朴素方法:4层for循环 (=>n皇后问题:最多能放几个皇后)伪代码...

2022-06-01 13:44:55 70

原创 广度优先搜索

广度优先搜索,首先一定是记忆化搜索(带有记忆化数组)初次之外,还有访问标记。例题:最后的迷宫队列:Queue每一步都保证是对的,这样就不会返回重新算很多遍

2022-06-01 13:44:05 81

原创 解决虚拟机突然连不上网的问题

在之前很久就遇到过这个问题,虚拟机经常会莫名其妙连不上网。容易出现的报错例如:Name or service not known如何得知这是虚拟机联网的问题呢?使用虚拟机自带火狐浏览器或者在虚拟机控制台输入以下语句:ping www.baidu.com解决办法:使用链接中的方案一解决过这个问题:Vmware虚拟机突然连接不上网络【方案集合】使用链接中的方案四解决过这个问题:VMware 虚拟机里连不上网的五种解决方案相关使用一、cat方法修改文件在没有vim,且连不上网无法下载

2022-05-07 17:07:38 2267 2

原创 ns3学习(三)——MPTCP

ns3及MPTCP源码运行笔记

2022-04-27 17:18:53 2826 10

原创 ns3学习(二)——tcp-NewReno

一、ns3源码/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- *//* * Copyright (c) 2015 Natale Patriciello <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of t

2022-04-13 16:44:02 4156

原创 C++学习——&

一、问题在c++学习时遇到函数,这里的&表示什么意思呢?void TcpCongestionOps (const TcpCongestionOps &other) {}二、示例代码#include<iostream>using namespace std;void swap1(int aii,int bii){ int cii=aii; aii=bii; bii=cii;}void swap2(int &aii,int &bii)

2022-04-11 16:22:36 722 3

原创 C++类构造函数学习

一、遇到问题在学习ns3源码的过程中,经常遇到这样的结构TcpCongestionOps::TcpCongestionOps () : Object (){}这些双冒号和单冒号到底是什么意思呢?其实这是C++中的类构造函数。(注意:只有构造函数可以初始化成员变量)二、类构造函数学习参考链接:c++类构造函数&析构函数在用冒号的形式写类构造函数时,我们需要注意:只有构造函数可以初始化成员变量构造函数和成员变量需要在类中预先声明结构ClassA::fundctionA(int

2022-04-11 16:00:18 773

原创 ns3学习(一)——first.cc

一、first.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 Softwa

2022-04-09 16:02:51 1570

原创 openssh-server安装问题

连接虚拟机时出现问题:下列软件包有为满足的依赖关系:openssh-server:依赖:openssh-client(=1:7.6p1-4)依赖:openssh-sftp-server但是它将不会被安装推荐:ssh-import-id但是它将不会被安装E:无法修正错误,因为您要求某些软件包保持原状,就是它们破坏了软件包之间的依赖关系查看博文ubuntu 安装openssh-server出现依赖关系解决发现是openssh-client的版本问题,导致安装ssh-server时无法解决冲突

2022-04-06 15:26:21 3999

原创 ns3安装笔记

ns3安装笔记

2022-03-28 16:46:28 1835

原创 拥塞控制算法(五)——SACK、ECN、RED

以下三种算法,严格来说并不能算是拥塞控制算法。因为我们认为的拥塞控制算法通常是传输层进行的拥塞控制。互联网TCP拥塞控制算法的基本设计理念是必须端端执行。这个网络被认为是一个“黑匣子”。TCP源无法从网络中接收到任何显式的拥塞反馈。当一个拥塞控制算法不需要任何来自下层的支持,我们会认为他严格遵循层分离和模块化原则。因此,为了确定它可以传输的速率,源必须通过逐步增加输入负载(通过缓慢的启动和拥塞避免阶段)来探测路径,直到隐式反馈,如超时或重复确认,即已达到网络容量的信号。或者有些算法通过ACK数量、RTT

2022-03-18 15:31:34 4792

原创 傅里叶变换思考小记

傅里叶变换原理思考以下是傅里叶变换的原理图。也是时域信号转化为频域信号的原理。我们将这些规律相加得到右边的时域图像。横轴为时间,纵轴为测量值。将这些波形进行投影得到左边的频域图像。横轴为频率,纵轴为频域。为什么是这样的波形呢?什么样的规律取什么样的波形,上图所示波形是三角函数的规律,表示时域图像的规律有三角函数的规律,可以通过一系列的三角函数相加(注意:还需要添加正负值)而得到。傅里叶变换就是以三角函数为正交基。规定,时域信号转化为频域信号就是通过傅里叶变换得到。将一个函数分解成一系列三角函

2022-03-17 17:29:20 946

原创 TCP拥塞控制

写在前面:学习网络不能太急,太多概念没有理清楚的话看更深层的东西就乱七八糟的一头雾水。((ㄒoㄒ))一、TCP的拥塞控制1. 拥塞现象分组延迟(四种原因):排队延迟相当于控制网络的负载:与可靠数据传输进行区分:可靠数据传输:个体性问题拥塞控制:社会性问题与流量控制区分:流量控制:接收方处理不了(超过缓冲区)拥塞控制:网络处理不了(网络拥塞)主机A、B共享链路及路由器缓存C:出口链路带宽假定链路带宽R网络结构中有多个路由器,路由器有有限缓存,超时

2022-03-06 14:49:45 2503

原创 一、Java后端常见面试题总结

本文是一篇练习总结,记录在学习下面这份博客时的问题,并对一些相关问题进行归纳。参考博文:java后端常见面试题总结(一)Java基础1. wait和sleep的区别这两个方法来自不同的类分别是Thread和Object最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)sleep必须捕获异常,而wait,notify和no

2022-01-11 23:14:37 346

原创 五、网络编程实例:聊天室

首先,我们先新建一个C#项目,并生成一个对话框一个按钮。可以通过这个对话框把接收到的消息显示出来。然后可以通过这个按钮来部署服务器与建立连接:就先使用这样一个朴实无华的界面,然后按钮下面的逻辑代码其实和前面介绍的就很像了,以下是包含注释的代码实现:服务器:namespace SocketServer{ public partial class Form1 : Form { Socket server; Socket accept;

2021-10-29 14:43:29 651 1

原创 四、同步方法与异步方法及回调函数

解释一下同步方法与异步方法以及回调函数的关系。若不想很深入的了解这方面内容,可以记住以下结论:对于同时有同步方法和对应异步方法的函数,我们常用异步方法,用独立线程去处理该函数,提高用户的体验。异步方法由于我们需要等待某种事件的发生(例如当前例子中accept等待有网络进程请求连接),而在发生之后我们也需要针对发生的情况进行一些操作,因此我们使用回调函数,回调函数是指发生事件后进行调用的对应函数,可以在回调函数中写你希望程序运行的一切语句。首先,我们先思考一下我们平时程序的运行是什么样子的?是不是一

2021-10-29 14:41:21 353

原创 三、通用网络编程函数

通用网络编程函数在大多数编程语言中,一般有相应的网络编程类。例如C#的System.Net,C++的”common.h”,还有Java的java.net. 不同语言对网络编程的实现事实上是大同小异的,都是通过一些常见的函数来实现。下面我们详细介绍几个相当重要的函数:1. socket()这个函数应该非常好理解,就是创建一个socket实例,一般程序设计语言对于初学者来说相关参数不用调整。其参数主要是指定协议类型,套接字类型以及协议号等,不同语言有些许差别。我们例子中主要使用TCP/IP协议,TCP/I

2021-10-29 14:38:15 442

原创 二、获取永久IP地址服务器

获取永久IP地址服务器既然上述我们提到了需要获取一个有永久IP地址的端口服务器来进行信息中转才能更好地实现C/S架构,在这里我就用比价常用的腾讯云服务器来实现。在百度上搜索腾讯云即可找到相应的服务平台:作为尝试我们可以租用学生云服务器(10元/月)。但需要注意的是,每个用户只能享受一次学生服务器的租用,而且该账户还与身份证信息进行绑定,在过期之后就无法享受这种优惠了。(笔者现在就每个月要租用66元/月的服务器)因此建议大家在租用后一直每个月花十块钱留着这个服务器,方便以后还需要使用。进入该界面

2021-10-29 14:37:49 12992

原创 一、Socket编程

Socket编程Socket编程是网络编程最常用的手段,单纯要应用socket编程事实上不需要了解计算机网络那么多的知识,我们只需要知道两个概念:IP地址可以唯一的标识一台计算机。端口号可以唯一的标识计算机中的某一网络进程。这两个概念都不完全严谨,但在不了解太多网络知识的前提下我们可以先认为这是对的。 IP地址可以认为是我们现实生活中的一个身份证,通过身份证号我们可以唯一的在我们国家找到一个人。也就是说,如果我们知道某一台计算机的IP地址,那么我们就可以在全国那么多台计算机中找到我们要进行通信的

2021-10-29 14:37:01 792 1

原创 NATAPP内网穿透

参考链接:NATAPP1分钟快速新手图文教程新建一个Web项目,右上角点击Edit Configurations配置端口8888,此端口号与NATAPP内配置的端口号一致运行natapp.exe,复制分配网址。访问。总结:需要做了内网穿透的服务器端口提供:网址端口即可获得资源。...

2021-10-20 23:54:08 190

原创 虚拟机连不上网的问题

先来五种解决办法参考链接:VMware 虚拟机里连不上网的五种解决方案原理+终极解决办法右键连不上网的虚拟机 --> 设置

2021-10-19 19:02:52 7091

原创 SONIC+P4

SONIC简介背景微软于2015年先后发表了SAI和SONIC。SONIC产业日益繁荣,已超过六十家。创新SONiC使用了大量现有的开源技术:Docker、Redis、Quagga和LLDPD以及自动化配置工具Ansible、Puppet和Chef等。SONiC是一个将传统交换机操作系统软件分解成多个容器化组件的创新方案,便于增加新的组件和功能。SONiC与数据中心紧密相连,对数据中心的理解能够帮助我们更好的体会到SONiC设计的简洁与优美,前面提到SONiC用了很多开源技术,SONiC能够把如

2021-10-17 20:57:44 1710

原创 identityServer的“为https配置”的客户端编写

jsp客户端:参考链接:identityServer使用jsp客户端

2021-10-10 19:13:53 197

原创 IdentityServer4 的多种模式

英文文档一、创建项目:在visual Studio中创建新的项目。(如果存在包不存在的问题,需要在visual Studio中下载对应包)。创建项目流程参考链接:ASP.NET Core3.1使用IdentityServer4实现授权登录(一)注:此项目ASP.NET Core 3.1版本,IdentityServer 3.1.2补充说明(一)IdentityServer配置文件Config.cs内容public class IdpConfig { /// <sum

2021-10-02 22:30:39 3029

原创 IdentityServer资源所有者密码凭证(密码模式)

参考链接:创建使用[ResourceOwnerPassword-资源所有者密码凭证]授权模式的客户端补充说明(一)Config.cs代码:using IdentityModel;using IdentityServer4.Models;using IdentityServer4.Test;using System;using System.Collections.Generic;using System.Linq;using System.Security.Claims;using Sys

2021-10-02 20:10:00 454

原创 创建IdentityServer服务器

创建IdentityServer服务器:在visual Studio中创建新的项目。(如果存在包不存在的问题,需要在visual Studio中下载对应包)。创建项目流程参考链接:ASP.NET Core3.1使用IdentityServer4实现授权登录(一)注:此项目ASP.NET Core 3.1版本,IdentityServer 3.1.2补充说明(一)IdentityServer配置文件Config.cs内容public class IdpConfig { ///

2021-10-02 14:59:20 459

原创 identityServer4创建API资源项目

创建API资源项目:参考网址:ASP.NET Core3.1使用IdentityServer4实现授权登录(二)补充说明(一)如何在visual Studio中同时运行多个项目右键解决方案–>添加–>现有项目。补充说明(二)postman获取token测试示例:注意:post请求,且为body形式下的x-www-form-urlencoded形式...

2021-10-02 14:57:49 288

原创 字符串输入nextLine、ascll码问题

nextLine()作为java常用输入方式,识别 nextIne后面的 \n ,识别一整行输入及该输入后的 \n。nextInt()不会把java输入中的 \n 识别出来。例如:输入:2ABCD代码如: Scanner sc=new Scanner(System.in); int n=sc.nextInt(); String s=sc.nextLine();此时s=\n,输出时显示空格。例题:珠宝店ascll码问题将char类型的数据与任意数字加减(例如:0)即可得到as

2021-09-08 01:07:41 140

mooc双工和多址技术课件

mooc双工和多址技术课件

2022-03-18

mooc移动通信网络演进课件

mooc移动通信网络演进课件

2022-03-18

mooc移动网络架构课程课件

mooc移动网络架构课程课件

2022-03-18

空空如也

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

TA关注的人

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