MZ Blog

Thinking will not overcome fear but action will.

IO多路复用

1.IO多路复用概述 为什么需要多路复用? 首先,在网络编程中,要想实现并发处理IO事件,可以选择多线程以及线程池等。但是随着并发量的增大以及IO操作会出现阻塞的特性,多线程并不能很好的处理这些IO事件。所以急需一种新的技术,能够解决IO操作的等待问题,并且支持大量并发。 什么是IO多路复用? IO多路复用是内核提供一种特殊机制,它能够获取一个文件描述符集合,这个集合中的文件描述符已...

Linux中的POXIS线程库API

线程基础用法 1.线程概述 早期Linux只有进程的概念,一个进程对应一个地址空间,进程与进程之间不能互相访问,保证隔离性和安全性。直到Windows的线程可以很好的处理多任务时,Linux才引入了多线程的概念,它只是在进程的基础上再次分为线程,与Windows有一定的区别。 多个线程在同一进程下,共享进程的资源,可以当作一个应用下的多个子任务,CPU的最小调度单位就是这些任务,也就是...

Git代码管理工具的使用与进阶

创建代码仓库 首先配置一下你的身份,这样在提交代码的时候,Git就可以知道是谁提交的了。命令如下所示: git config --global user.name "Tony" git config --global user.email "tony@gmail.com" 进入文件夹(想要变成仓库管理的文件夹)输入以下命令: git init 仓库创建完成后,会在根目录下生成一...

修ns3的ofswitch13源码之实现Sketch

NS3模拟实现Sketch查找TOP-K 由于sketch相关实现采用的是P4原语,而在ns3中没有这方面的支持,所以现在采用模拟sketch的方案来实现sketch相关功能。具体实现是在交换机经过数据包时解析数据包获取四元组,然后计算hash值,并存入到自己设置的sketch数据结构中。最后ns3运行采取定期上传sketch中的数据,以供控制器区分长短流。 1.从openflo...

ubuntu利用docker安装opengauss数据库及测试

ubuntu利用docker安装opengauss数据库及测试

ubuntu利用docker安装opengauss数据库及测试 一、安装 docker安装 sudo apt install docker.io 拉取openguass镜像 sudo docker pull enmotech/opengauss 创建容器 docker run --name opengauss \ -p 5432:5432 \ -v /home/dock...

修改适应ns3的bofuss库源码之自定义NewMatchField

新增匹配字段——支持TCP标志位 一、定义匹配字段 由于版本更新,Wiki的教程使用NetPDL修改解析数据包的方法不适用,本文结合教程以及论文的实现过程给出以下修改步骤。本案例新增的匹配字段是TCP标志位。 1.定义结构体并解析 openflow.h enum oxm_ofb_match_fields { OFPXMT_OFB_IN_PORT = 0...

修改适应ns3的bofuss库源码之自定义NewMessage

自定义NewMessage 在这个例子中,我们新增两个消息OFPT_QUE_CN和OFPT_QUE_CR实现从交换机发送到控制器,告诉控制器目前是拥塞状态,还是恢复拥塞。使用与下面的示例类似的实验者消息来创建新动作或新消息。 一、定义新消息 1.添加两个新的类型 /* file:include/openflow/openflow.h * Add OFPT_QUE_CN a...

修改适应ns3的bofuss库源码之自定义ACTION

自定义Action 一、定义新Action 在这个例子中,我们实现了一个OpenFlow动作修改TCP数据包的接收窗口值。使用与下面的示例类似的实验者消息来创建新动作或新消息。 1.定义新Action的字段类型 首先,OFPAT_SET_RWND字段应该添加到openflow.h文件的ofp_action_type枚举当中。 /* file:include/openflow...

对ns3中的OFSwitch13文档介绍、翻译和理解

1、概述 The OFSwitch13 module enhances the ns-3 Network Simulator with Software-Defined Networking (SDN) support. Despite the fact that the ns-3 already has a module for simulating OpenFlow switch...

ns3.34安装ofswitch13(基于BOFUSS库的openflow13)教程

1、安装依赖 $ sudo apt-get install build-essential gcc g++ python git mercurial unzip cmake pkg-config autoconf libtool libboost-dev 2、下载ns3.34 根据官网提示,选择任意一种下载方式下载ns3.34(这里采用方式是Downloading ns-3 Us...