无线网络技术教程2-网络仿真技术(实验)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无线网络技术教程
——原理、应用与仿真实验
作 者 金光,江先亮 出 版 社 清华大学出版社 出版时间 2011-10-1
网络仿真技术简介
• 为什么网络仿真?
– 利用数学建模和统计分析等方法,模拟网络行 为,从而指导和优化网络设计的技术。 – 用途:教学实验、采购设备、建设网络。
• 模拟的网络状况:
– 有限的带宽、时延、丢包、乱序、重复报文、
• 衡量效率的指标:吞吐量 S = GP0
– 含义:有多少比例的帧能够无冲突的传输? – G是负载,P0是成功传输一帧的概率
8
k G
• 问题转化为:在什么样的条件下?任意帧(图中 的阴影帧代表)能够无冲突的传输?
与阴影帧 与阴影帧 的开始部 的开始部 分冲突 分冲突 易受冲突 易受冲突
与阴影帧 与阴影帧 的结束部 的结束部 分冲突 分冲突
概率为:P0= e-G,所以吞吐量 S = Ge-G
纯ALOHA 易受冲突 时隙ALOHA 易受冲突
时隙ALOHA
•纯ALOHA: 信道利用率S ≤ 18.4% •时隙ALOHA:信道利用率S ≤ 36.8%
时隙ALOHA
S(吞吐量)
纯ALOHA
G(每帧时的平均帧数量)
•ALOHA协议的吞吐量S与负载G的关系图
19
2.9.1 Opnet仿真平台
• Opnet正版仿真软件
– 面向专业研发人员,仿真大型复杂网络。 – 比NS好用:界面、协议库、输出等。
• Opnet的价格
– 几十个用户的lisence,一年需要一两万美元。
• 使用盗版Opnet的弊端
– 即使做出了结果,不能堂堂正正地写成论文投 往国外期刊,将来可能是版权侵犯的证据。 – 目前,中国大学的文章绝大部分是用NS仿真。
竞争、流量、拥塞、误码等。
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强) – 2,真机实测(昂贵,真实) – 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
1,数学建模
• 数学模型
– 数学工具:概率论,排队论,随机过程……
ALOHA协议
• 1971年,美国夏威夷大学的ALOHA网。
• 优点:简单快速
– 可以验证理论公式 – 发表论文的论据
• 缺点:
– 不够严谨, 没有考虑 – 误码率,节点失效 – 传输延时,噪声
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
– 知识库:ww.nsnam.isi.edu/nsnam/index.php/Main_Page
• 安装平台
– Windows的Cygwin,书中采用。 – 直接在Linux系统,实验采用。
24
2.10 NS2基础知识
NS2目录结构图
ns-allinone-2.34
bin
cweb
include
ns-2.34
• 两个版本
– 纯ALOHA协议:每个站点只要有数据就可发送。 – 时隙ALOHA协议:将信道时间分为离散的时间片, 每个时间片可以用来发送一个帧。 – 纯ALOHA – 时隙ALOHA
• 在ALOHA协议基础上,发展出:
• IEEE 802.3——以太网协议,1991.
– 载波监听多路访问/冲突检测
• 缺点:
– 同时维护两套代码,对使用者要求较高,上手慢。
事件调度器 用户接口
OTcl Tcl
TclCL
网络组件
C++
26
2.10 NS2基础知识
• NS2仿真流程
– 修改协议
• 创建C++类,即.cc文件。
– 不修改协议
• 编写tcl脚本,建立OTcl对象,设置属性,调
度网络仿真事件的发生。
用NS2进行无线网络仿真
2.9.3 MATLAB仿真平台
• MATLAB工具
– 擅长数值计算和图形处理的科学计算软件。
• 优点
– 宽松的语言体系、图形图像系统、丰富的数 学函数库、应用程序接口。 – 科学论文,矩阵运算,画图很方便。
• 扩展功能
– 各种工具箱如Simulink等,完成不同领域的各 种特定任务。
21
2.9.2 NS2仿真平台
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
4,网络仿真技术
• 网络仿真技术
– 利用计算机软件模拟网络行为的技术。
• 优点:
– 速度快,成本低,不折旧。 – 可以仿真大规模网络,具有预测功能。 – 既可分析已有协议,已经集成在软件中。 – 又可研究创新协议,测试新协议的性能。
ALOHA协议
•纯ALOHA的效率:S = GP0 = Ge-2G
S(吞吐量)
S≤18.4%
G(每帧时的平均帧数量)
•ALOHA协议的吞吐量S与负载G的关系图
10
时隙ALOHA
• 信道分为时隙,站点必须等到时隙的开始才能发送
• 将易受冲突的区域减小一半 = 1帧时
• 在易受冲突区域(1帧时)内没有其它帧(k=0)产生的
otcl
otcl-1.13
tcl8.4.18
tclcl-1.19
„„
common
mobile
网络仿真模块
aodv
mac
„„
tcl
ex
仿真实例脚本
test
测试脚本
mobility
mpls
Otcl代码
http
„„
25
2.10 NS2基础知识
• NS2采用了“OTcl/C++分裂模型” • 优点:
– C++:速度快,编写复杂算法,用来实现具体协议。 – Otcl:速度慢,方便修改,用来配置网络布局。 – TclCL :把两种语言中的对象和变量联系起来。
ALOHA协议
• 纯ALOHA协议中的冲突
• 规则:有数据就发,不论信道状态是否空闲。 • 冲突后,发送方没有收一旦重叠,就发生冲突(校 数据损,坏验和不正确) • 到ACK,等待随机时间重传。
用户 A B C D 冲突 冲突
7
ALOHA协议
• 纯ALOHA的效率如何? • 数学模型——泊松分布
22
2.10 NS2基础知识
• NS2有丰富的构件库
– 能完成大部分网络仿真需求。
– 网络类型:广域网、局域网、移动通信网、卫
星通信网等 – 路由类型:层次路由、动态路由、多播路由等 – 跟踪记录:各种状态和事件以便分析 – 数学函数:随机数、积分等
2.10 NS2基础知识
• 获取NS2
– 官网:www.isi.edu/nsnam/ns/
• 任意帧的易受冲突区域=2个帧时,平均产生2G个 帧,公式变为: (2G )k e2G Pr[k ] , k 0,1, 2... k!
• 在易受冲突区域内没有其它帧(k=0)产生的概率为: 9 -2G ,所以 S = GP = Ge (2G )0 e 2G 0 2 G
P0 Pr[0] 0! e
开始 问题定义 需要 需修改源码? 不需要 修改源代码
NS2仿真基本流程图
编写TCL仿真脚本
分析问题所在 执行仿真 通过
重新编译NS2
调试NS2
未通过 编译通过?
结果满意? 满意 结束
28
分析结果
大型工程
2.10 NS2基础知识
• NS2的简单OTCL语法
et val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy set val(mac) Mac/802_11 set val(rp) DSDV Antenna/OmniAntenna set Z_ 0 $ns node-config -adhocRouting $val(rp) \ -macType $val(mac) \ 衰减类型 物理层 MAC层 路由层 天线高度 路由协议 MAC协议
• NS2网络仿真
– UC伯克利大学开发的仿真软件
– NS2遵循GPL协议,源代码开放
• 以GPL协议发布到网上的代码素材,你可以随意使
用,也可以更改,但是更改后再次发布的代码。
• 必须也遵守GPL协议,主要要求是必须开源,而且
不能删减原作者的声明信息等,“传染性” 。
• 可以出售,但是整个产品代码,必须开源。
– 无限个用户,随机且独立的产生新帧,帧长固定,平 均每个帧时产生N帧(N原始负载,频率,N<1合理值) – 冲突重传,新、旧帧叠加后 仍服从泊松分布,平均 每个帧时产生G帧(G真实负载,G>N,G可以大于1) – 泊松分布:每个帧时内产生k帧的概率
G e Pr[k ] , k 0,1, 2... k!
– CSMA/CD(Carrier Sense Multiple Access/Collision
Detect)
• IEEE 802.11——无线局域网协议,1997.
– 载波监听多路访问/冲突避免 – CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
2,真机实测
• 不适合大规模网络,成本高。 • Wireshark抓包
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
Βιβλιοθήκη Baidu
3,仿真仪器
• 网络分析仪——示波器+电脑
– 可测量网络参数的幅度、相位、频率特性。 – 支持无线网络、有线网络,解析多种协议报文。 – 品牌:安捷伦、Rohde&Schwarz、中电41所。 – 价格:几万-数百万。
• Matlab编写的ALOHA协议仿真程序
– 模仿了100个节点 – 按照G负载发送 – 统计了冲突的概率
function [Traffic,S,Delay]=aloha(capture) %*********** 输入参数 ******************* % capture: 是否考虑捕获效应 0:不考虑 1:考虑 %************* 输出参数 ****************** % Traffic: 实际产生的业务量 % S: 吞吐量 % Delay: 平均延迟 %******定义终端状态常数以及仿真结束参数 ************* STANDBY = 0; %等待 TRANSMIT = 1; %传输 COLLISION = 2; %碰撞 TOTAL=10000; % 成功传输多少数据包后仿真结束 %**********************定义信道参数 ********************** brate = 6e6; % 比特速率 Srate = 0.25e6; % 符号速率 Plen = 500; % 包长(符号数) Ttime = Plen / Srate; % 每个数据包的传输时间 Dtime = 0.01; % 归一化传播延迟 alfa = 3; % 路径损耗指数 sigma = 6; % 阴影衰落标准差 [dB] %**********************定义接入点信息 ********************** r = 100; % 服务区域半径 [m] bxy = [0, 0, 5]; % 接入点位置坐标 (x,y,z)[m] tcn = 10; % 接入点进行正确信号解调所需要的最低信号功率 [dBm] %**********************定义终端信息 ********************** Mnum = 100; % 终端数目 mcn = 30; % 终端在服务区域边缘时,接入点接收到的信号的信噪比 mpow = 10^(mcn/10) * sqrt(r^2+bxy(3)^2)^alfa; % 终端的发射信号功率 h=0; % 终端高度 mxy = [randsrc(2,Mnum,[-r:r]); randsrc(1,Mnum,[0:h])]; % 随机生成终端坐标 while 1 d=sqrt(sum(mxy(1:2,:).^2)); % 判断终端与接入点的水平距离是否超过r [tmp,indx]=find(d>r); if length(indx) == 0 break end mxy(:,indx)=[randsrc(2,length(indx),[-r:r]);mxy(3,indx)]; %超过r重新生成位置坐标 end distance=sqrt(sum(((ones(Mnum,1)*bxy).'-mxy).^2)); %终端距离接入点的距离 mrnd = randn(1,Mnum); % 每个终端的阴影衰落 %^G=[0.1:0.2:1,1.2:0.2:2]; % 理论业务量 G=0.1:0.2:2;
——原理、应用与仿真实验
作 者 金光,江先亮 出 版 社 清华大学出版社 出版时间 2011-10-1
网络仿真技术简介
• 为什么网络仿真?
– 利用数学建模和统计分析等方法,模拟网络行 为,从而指导和优化网络设计的技术。 – 用途:教学实验、采购设备、建设网络。
• 模拟的网络状况:
– 有限的带宽、时延、丢包、乱序、重复报文、
• 衡量效率的指标:吞吐量 S = GP0
– 含义:有多少比例的帧能够无冲突的传输? – G是负载,P0是成功传输一帧的概率
8
k G
• 问题转化为:在什么样的条件下?任意帧(图中 的阴影帧代表)能够无冲突的传输?
与阴影帧 与阴影帧 的开始部 的开始部 分冲突 分冲突 易受冲突 易受冲突
与阴影帧 与阴影帧 的结束部 的结束部 分冲突 分冲突
概率为:P0= e-G,所以吞吐量 S = Ge-G
纯ALOHA 易受冲突 时隙ALOHA 易受冲突
时隙ALOHA
•纯ALOHA: 信道利用率S ≤ 18.4% •时隙ALOHA:信道利用率S ≤ 36.8%
时隙ALOHA
S(吞吐量)
纯ALOHA
G(每帧时的平均帧数量)
•ALOHA协议的吞吐量S与负载G的关系图
19
2.9.1 Opnet仿真平台
• Opnet正版仿真软件
– 面向专业研发人员,仿真大型复杂网络。 – 比NS好用:界面、协议库、输出等。
• Opnet的价格
– 几十个用户的lisence,一年需要一两万美元。
• 使用盗版Opnet的弊端
– 即使做出了结果,不能堂堂正正地写成论文投 往国外期刊,将来可能是版权侵犯的证据。 – 目前,中国大学的文章绝大部分是用NS仿真。
竞争、流量、拥塞、误码等。
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强) – 2,真机实测(昂贵,真实) – 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
1,数学建模
• 数学模型
– 数学工具:概率论,排队论,随机过程……
ALOHA协议
• 1971年,美国夏威夷大学的ALOHA网。
• 优点:简单快速
– 可以验证理论公式 – 发表论文的论据
• 缺点:
– 不够严谨, 没有考虑 – 误码率,节点失效 – 传输延时,噪声
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
– 知识库:ww.nsnam.isi.edu/nsnam/index.php/Main_Page
• 安装平台
– Windows的Cygwin,书中采用。 – 直接在Linux系统,实验采用。
24
2.10 NS2基础知识
NS2目录结构图
ns-allinone-2.34
bin
cweb
include
ns-2.34
• 两个版本
– 纯ALOHA协议:每个站点只要有数据就可发送。 – 时隙ALOHA协议:将信道时间分为离散的时间片, 每个时间片可以用来发送一个帧。 – 纯ALOHA – 时隙ALOHA
• 在ALOHA协议基础上,发展出:
• IEEE 802.3——以太网协议,1991.
– 载波监听多路访问/冲突检测
• 缺点:
– 同时维护两套代码,对使用者要求较高,上手慢。
事件调度器 用户接口
OTcl Tcl
TclCL
网络组件
C++
26
2.10 NS2基础知识
• NS2仿真流程
– 修改协议
• 创建C++类,即.cc文件。
– 不修改协议
• 编写tcl脚本,建立OTcl对象,设置属性,调
度网络仿真事件的发生。
用NS2进行无线网络仿真
2.9.3 MATLAB仿真平台
• MATLAB工具
– 擅长数值计算和图形处理的科学计算软件。
• 优点
– 宽松的语言体系、图形图像系统、丰富的数 学函数库、应用程序接口。 – 科学论文,矩阵运算,画图很方便。
• 扩展功能
– 各种工具箱如Simulink等,完成不同领域的各 种特定任务。
21
2.9.2 NS2仿真平台
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
4,网络仿真技术
• 网络仿真技术
– 利用计算机软件模拟网络行为的技术。
• 优点:
– 速度快,成本低,不折旧。 – 可以仿真大规模网络,具有预测功能。 – 既可分析已有协议,已经集成在软件中。 – 又可研究创新协议,测试新协议的性能。
ALOHA协议
•纯ALOHA的效率:S = GP0 = Ge-2G
S(吞吐量)
S≤18.4%
G(每帧时的平均帧数量)
•ALOHA协议的吞吐量S与负载G的关系图
10
时隙ALOHA
• 信道分为时隙,站点必须等到时隙的开始才能发送
• 将易受冲突的区域减小一半 = 1帧时
• 在易受冲突区域(1帧时)内没有其它帧(k=0)产生的
otcl
otcl-1.13
tcl8.4.18
tclcl-1.19
„„
common
mobile
网络仿真模块
aodv
mac
„„
tcl
ex
仿真实例脚本
test
测试脚本
mobility
mpls
Otcl代码
http
„„
25
2.10 NS2基础知识
• NS2采用了“OTcl/C++分裂模型” • 优点:
– C++:速度快,编写复杂算法,用来实现具体协议。 – Otcl:速度慢,方便修改,用来配置网络布局。 – TclCL :把两种语言中的对象和变量联系起来。
ALOHA协议
• 纯ALOHA协议中的冲突
• 规则:有数据就发,不论信道状态是否空闲。 • 冲突后,发送方没有收一旦重叠,就发生冲突(校 数据损,坏验和不正确) • 到ACK,等待随机时间重传。
用户 A B C D 冲突 冲突
7
ALOHA协议
• 纯ALOHA的效率如何? • 数学模型——泊松分布
22
2.10 NS2基础知识
• NS2有丰富的构件库
– 能完成大部分网络仿真需求。
– 网络类型:广域网、局域网、移动通信网、卫
星通信网等 – 路由类型:层次路由、动态路由、多播路由等 – 跟踪记录:各种状态和事件以便分析 – 数学函数:随机数、积分等
2.10 NS2基础知识
• 获取NS2
– 官网:www.isi.edu/nsnam/ns/
• 任意帧的易受冲突区域=2个帧时,平均产生2G个 帧,公式变为: (2G )k e2G Pr[k ] , k 0,1, 2... k!
• 在易受冲突区域内没有其它帧(k=0)产生的概率为: 9 -2G ,所以 S = GP = Ge (2G )0 e 2G 0 2 G
P0 Pr[0] 0! e
开始 问题定义 需要 需修改源码? 不需要 修改源代码
NS2仿真基本流程图
编写TCL仿真脚本
分析问题所在 执行仿真 通过
重新编译NS2
调试NS2
未通过 编译通过?
结果满意? 满意 结束
28
分析结果
大型工程
2.10 NS2基础知识
• NS2的简单OTCL语法
et val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy set val(mac) Mac/802_11 set val(rp) DSDV Antenna/OmniAntenna set Z_ 0 $ns node-config -adhocRouting $val(rp) \ -macType $val(mac) \ 衰减类型 物理层 MAC层 路由层 天线高度 路由协议 MAC协议
• NS2网络仿真
– UC伯克利大学开发的仿真软件
– NS2遵循GPL协议,源代码开放
• 以GPL协议发布到网上的代码素材,你可以随意使
用,也可以更改,但是更改后再次发布的代码。
• 必须也遵守GPL协议,主要要求是必须开源,而且
不能删减原作者的声明信息等,“传染性” 。
• 可以出售,但是整个产品代码,必须开源。
– 无限个用户,随机且独立的产生新帧,帧长固定,平 均每个帧时产生N帧(N原始负载,频率,N<1合理值) – 冲突重传,新、旧帧叠加后 仍服从泊松分布,平均 每个帧时产生G帧(G真实负载,G>N,G可以大于1) – 泊松分布:每个帧时内产生k帧的概率
G e Pr[k ] , k 0,1, 2... k!
– CSMA/CD(Carrier Sense Multiple Access/Collision
Detect)
• IEEE 802.11——无线局域网协议,1997.
– 载波监听多路访问/冲突避免 – CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
2,真机实测
• 不适合大规模网络,成本高。 • Wireshark抓包
网络仿真技术简介
• 网络仿真方法:
– 1,数学建模(理论性强)
– 2,真机实测(昂贵,真实)
– 3,分析仪器(昂贵,真实) – 4,网络仿真(模拟,可二次开发,便宜)
Βιβλιοθήκη Baidu
3,仿真仪器
• 网络分析仪——示波器+电脑
– 可测量网络参数的幅度、相位、频率特性。 – 支持无线网络、有线网络,解析多种协议报文。 – 品牌:安捷伦、Rohde&Schwarz、中电41所。 – 价格:几万-数百万。
• Matlab编写的ALOHA协议仿真程序
– 模仿了100个节点 – 按照G负载发送 – 统计了冲突的概率
function [Traffic,S,Delay]=aloha(capture) %*********** 输入参数 ******************* % capture: 是否考虑捕获效应 0:不考虑 1:考虑 %************* 输出参数 ****************** % Traffic: 实际产生的业务量 % S: 吞吐量 % Delay: 平均延迟 %******定义终端状态常数以及仿真结束参数 ************* STANDBY = 0; %等待 TRANSMIT = 1; %传输 COLLISION = 2; %碰撞 TOTAL=10000; % 成功传输多少数据包后仿真结束 %**********************定义信道参数 ********************** brate = 6e6; % 比特速率 Srate = 0.25e6; % 符号速率 Plen = 500; % 包长(符号数) Ttime = Plen / Srate; % 每个数据包的传输时间 Dtime = 0.01; % 归一化传播延迟 alfa = 3; % 路径损耗指数 sigma = 6; % 阴影衰落标准差 [dB] %**********************定义接入点信息 ********************** r = 100; % 服务区域半径 [m] bxy = [0, 0, 5]; % 接入点位置坐标 (x,y,z)[m] tcn = 10; % 接入点进行正确信号解调所需要的最低信号功率 [dBm] %**********************定义终端信息 ********************** Mnum = 100; % 终端数目 mcn = 30; % 终端在服务区域边缘时,接入点接收到的信号的信噪比 mpow = 10^(mcn/10) * sqrt(r^2+bxy(3)^2)^alfa; % 终端的发射信号功率 h=0; % 终端高度 mxy = [randsrc(2,Mnum,[-r:r]); randsrc(1,Mnum,[0:h])]; % 随机生成终端坐标 while 1 d=sqrt(sum(mxy(1:2,:).^2)); % 判断终端与接入点的水平距离是否超过r [tmp,indx]=find(d>r); if length(indx) == 0 break end mxy(:,indx)=[randsrc(2,length(indx),[-r:r]);mxy(3,indx)]; %超过r重新生成位置坐标 end distance=sqrt(sum(((ones(Mnum,1)*bxy).'-mxy).^2)); %终端距离接入点的距离 mrnd = randn(1,Mnum); % 每个终端的阴影衰落 %^G=[0.1:0.2:1,1.2:0.2:2]; % 理论业务量 G=0.1:0.2:2;