IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> ns3学习(三)——MPTCP -> 正文阅读

[开发工具]ns3学习(三)——MPTCP

参考链接:MPTCP github源码一MPTCP github源码二

参考链接:运行mptcp源码源码二配置

源码一ns3版本是3.19,会出现gcc版本的问题,建议更换gcc版本至gcc5.5。运行成功后就可以直接运行mptcp。
源码二ns3版本是3.29,比较新,gcc等依赖问题更好解决,但是没有example代码,要自己编写mptcp运行代码。如果ns3不是很熟悉的话不建议尝试。

在以上源码的运行过程中,可能会涉及以下问题,以下链接亲测可用:

  1. gcc版本的问题:工具系列 | Ubuntu18.04安装Openssl-1.1.1
  2. all warning报错问题解决
  3. libssl依赖问题
  4. 一些cc文件无法编译的语法问题:gcc版本降级,参考链接:gcc降级到5.5
  5. error: ‘UChar’ has not been declared:ns3.19运行C++11标准
  6. 如果以上问题都解决后,还是出现gcc版本问题,或者依赖问题的话,建议重装虚拟机!!!

ns3官方api

一、源码一

进入mptcp,文件中
在这里插入图片描述

输入以下语句来运行mptcp。

sudo ./waf --run scratch/mptcp

运行截图:

在这里插入图片描述

源码二学习

源码二可以理解为一个可运行mptcp的环境,运行mptcp的代码需要自己编写。如果ns3不是很熟悉的话不建议尝试。

我们可以使用如下指令查找包含MPTCP的文件:

find . -name ‘*.cc’ | xargs grep MPTCP

解决ns3环境问题后,使用vscode在虚拟机中打开源码二,可以看到有八个cc文件:
在这里插入图片描述

二、学习内容

1、crypto

crypto意为密码:定义了一些密码,先不看

2、fullmesh

fullmesh意为组网:设置组网络

3、mapping

mapping意为映射,看到后缀为.h的文件中有两个类

(1)MpTcpMapping类

维护一个存放MpTcpMapping的映射表set<MpTcpMapping> MappingList。

MpTcpMapping属性包括m_dataSequenceNumber(0)、m_subflowSequenceNumber(0)、m_dataLevelLength(0)。即:数据序列号,子流序列号,数据级长度

猜测:
MpTcpMapping是子流序列号到数据序列号的映射
MappingList是存放单个子流到多个数据序列号的映射

(2)MpTcpMappingContainer类

维护一个存放MpTcpMapping的映射表set<MpTcpMapping> m_mappings。
it is a set ordered by SSN

猜测MpTcpMappingContainer是存放多个子流的映射。

4、ndiffports

(1)RttEstimator类

被include

(2)MpTcpSocketBase类

被include

在这里插入图片描述

const MpTcpSocketBase&这个类型传入create。

MpTcpSocketBase my_sock();
如何构造这个类型:先调用一个无参构造函数,然后再赋值进去形成有参的。

//setAttribute的意思是设置属性,和属性类型。NS3 中Attribute 学习
my_sock.SetAttribute(“peerkey”,peerKeyType);

(3)MpTcpNdiffPorts类

主要注意的是CreateSubflows接口

  void CreateSubflows (Ptr<MpTcpSocketBase> meta, uint16_t localport, uint16_t remoteport);

5、socket

规定socket的形式

6、subflow

#include "ns3/mptcp-mapping.h"

(1)MpTcpSubflow类

class MpTcpSubflow : public TcpSocketBase
继承于TcpSocketBase,继承方式为public继承

学习到这里还是一知半解,包括对ns3环境的不熟悉导致无法理解如何去调用这些类。决定放弃源码二进入源码一的学习,后续如果有时间会重新学习源码二。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:54:24  更:2022-04-30 08:54:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:08:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码