当前位置:网站首页>利用OPNET进行网络单播(一服务器多客户端)仿真的设计、配置及注意点
利用OPNET进行网络单播(一服务器多客户端)仿真的设计、配置及注意点
2022-07-06 23:23:00 【鱼月半】
利用opnet进行网络单播(一发多收)仿真的设计、配置及注意点
一、网络设计
(一)设计思路
首先我们要弄清楚我们想做的工作是什么,需要解决哪些问题。
首先,我们想实现的工作是配置一个符合我们需求的网络拓扑,然后在上面运行符合我们需求的网络业务,然后统计得到我们关心的一些网络数据。因此,我们需要解决的问题如下:
- 物理层,设备的选择和设备的连接的方式。
- 网络层,满足需求的网络协议的选择和配置。
- 应用层,数据业务的选择和配置。
在本文中,提出以下业务需求:
- 使用一个服务器,作为视频业务的发送方。
- 多个终端客户端,同时作为视频业务的接收方。
(一)运行机制
需要熟悉Opnet的使用机制,Opnet首先它是将所有的物理上的设备和业务上的配置都实例化成一个个模型,你需要做的只是将物理设备拖入主界面,放到合适的位置,然后选择合适的线缆连接,然后选择想要的业务配置器,同样拖入主界面,在其中配置相应的业务的配置项。大致流程为:
- 选择满足需求的物理设备,如设备终端、交换机、路由器等,再选择合适的线缆连接,组成一个物理上的拓扑图。这是物理层上的操作。
- 选择满足业务需求的配置器,如应用业务配置器(Application Config),策略配置(Profile Config),这两个是最基本的配置器,任何场景都需要的,这两者共同实现了网络应用层的配置。
- 业务配置器配置了应用层业务,比如视频业务,话音业务,网页业务等,这些业务的模拟时间和数据流量大小等。
- 策略配置器配置了每个业务在整个模拟流程中的启停时间等属性。至此,应用层的基本操作完成。
- 在每个设备上,包括终端,交换机,路由器等,进行网络配置,并将应用层的业务作为配置项加入到相应的设备上。这就是网络层的操作。
二、具体配置
(一)创建工程场景
- 菜单栏中“File”选项下的“New…”。
- 创建工程,默认选择。
- “Enter Name”,创建的工程名和场景名,可以默认选择。
- “Startup Wizard:Initial Topology”,创建场景的模板,默认选择。
- "Startup Wizard:Choose Network Scale"选择背景范围,可以选择Office。
- “Startup Wizard:Specify Size”,修改背景图尺寸,没什么想法就默认即可。
- “Startup Wizard:Select Technologies”,这一页是一些典型的应用场景,如果有类似的就可以直接调用了。我不调用任何应用场景,准备自行设计,因此直接Next。
- “Startup Wizard:Review”,这一页就是让你看看所有的配置项,检查一遍,有问题还可以Back取修改,没问题就Finish,创建完成。
(二)创建网络拓扑(物理层)
在创建完毕工程场景后,会出现场景和模型工具树:
- “Object Palette Tree”,我称之为对象工具树,也可以称之为模型工具树,在这里,就是一堆模型工具,你需要什么就往里面拖入什么即可。模型主要包括各种型号的设备终端,交换机,路由器,防火墙,集线器,网线,光纤等,还有就是配置了各种业务的配置器。
- 根据需求选择符合需求的网络设备,这一步其实是比较艰难的一步,因为不熟悉opnet就不太容易在这么多模型中找到符合自己需求的设备。这里推荐一些一些比较好用的常见网络设备型号。
类别 | 型号 |
---|---|
交换机 | ethernet4_switch_adv(4代表端口数,有多种数目可选) |
路由器 | BN_BCN_13s_a2_e8_f3_fe4_sl13_tr6_adv |
设备终端 | ethernet_wkstn_int(客户端和服务器可以选用同种型号) |
线缆 | 100BaseT_int |
- 选用上述型号,我组成了如下基本的网络拓扑,每个设备的名称我略作修改。
(三)创建网络业务和策略(应用层)
- 从对象模型树中选择Application Config(应用业务配置器),Profile Config(策略配置)。拖入拓扑中,如下
- 首先配置应用业务,可配置属性包括但不限于,业务名称(Name),业务类型(如配置Video Conferencing),具体的业务属性(比如Video Conferencing中的每秒的帧数,每帧的像素数,决定了每秒的数据流量大小,以及该业务的网络标值),注意!不同的网络标识标识了在网络种的不同的数据流,不同业务下的这些数据流的区分,就是靠网络标识,即Symbolic Destination Name,强调这一点的原因是,如果要用一个服务器,给不同客户端发送数据流,需要配置不同的业务,注意要将不同的业务配置不同的策略。本文案例所作配置如图所示。
- 而后配置业务的策略,包含但不仅限于具体某业务的启停时间,注意,多个业务应当配置不同的策略。本文案例所作配置如图所示。
(四)修改设备的网络配置(网络层)
- 为每台网络设备配置IP。
手动配置:不推荐,因为设备一多,就很麻烦。配置方法就是在每台设备上右键,选择Edit Attribute进行配置。终端(包括客户端和服务器)在IP->IP Host Parameters->Interface Infomation中配置及检查,路由器中则在IP->IP Routing Parameters->Interface Infomation,交换机则在Ethernet->Ethernet Infomation中设置及检查。
自动配置:推荐,软件最上面菜单栏中,Protocols->IP->Addressing->Auto-Assign IP Addresses,选择面向所有设备,统一自动设置IP,如下图。注意,如果网络设备及线缆等有增减操作,务必要重新设置IP,并且不能直接设置,需要先做清空IP的操作,Protocols->IP->Addressing->Clear IP Addresses。作为上述操作,务必养成检查的习惯。 - 服务器端配置。属性配置,这里需要至少配置两部分内容,Applicaitions->Application:Destination Preferences(指定某数据流的流向,即发送目的地,在网络设备中选择)和Applicaitions->Application:Supported Profiles(指定发送策略,即什么数据业务什么时候发送,在策略配置器中配置好的策略中选择)。
Application:Destination Preferences配置如下:
Applicaitions->Application:Supported Profiles配置如下: - 客户端配置。属性配置,主要配置Applicaitions->Application:Supported Services(支持的应用层业务,在业务配置器中配置好的业务中选择)
- 对于单播来说,路由器和交换机并没有什么特别的配置,只要检查一下IP是否正确即可,在交换机和路由器中的IP一般为自动模式。
三、统计信息配置
- 在界面空白处右键,选择Choose Individual DES Statistics选择关注的统计量。
- 统计量主要分为三种类型,一是全局统计量,二是模型统计量,三是链路统计量。
- 一般比较关注的统计量为,网络时延,网络抖动,单个设备的收发数据量。
- 统计量一般有两种单位,一个是Bits,一个是packets。
四、注意点
- 数据发送端,配置Applicaitions->Application:Destination Preferences(指定某数据流的流向,即发送目的地,在网络设备中选择)和Applicaitions->Application:Supported Profiles。
- 数据接收端,配置Applicaitions->Application:Supported Services。
- IP的设置很容易出问题,尤其是有过增减设备操作时,切记每次设置IP前先清空IP。
- 以单播模式一发多收时,需要配置多个业务,不同的业务下的不同的业务流,并且给不同的业务配置不同的策略。
边栏推荐
- 记录一次压测经验总结
- AOSP ~binder communication principle (I) - Overview
- QSlider of QT control style series (I)
- Ansible overview and module explanation (you just passed today, but yesterday came to your face)
- window定时计划任务
- y58.第三章 Kubernetes从入门到精通 -- 持续集成与部署(三一)
- As we media, what websites are there to download video clips for free?
- The execution order of return in JS' try catch finally
- DJ-ZBS2漏电继电器
- 【最佳网页宽度及其实现】「建议收藏」
猜你喜欢
torch optimizer小解析
How to choose an offer and what factors should be considered
漏电继电器JOLX-GS62零序孔径Φ100
If you‘re running pod install manually, make sure flutter pub get is executed first.
Leetcode(46)——全排列
sublime使用技巧
Torch optimizer small parsing
一文搞懂常见的网络I/O模型
Basic knowledge of road loss of 3GPP channel model
Weebly mobile website editor mobile browsing New Era
随机推荐
Longest non descent subsequence (LIS) (dynamic programming)
Leetcode(417)——太平洋大西洋水流问题
一个酷酷的“幽灵”控制台工具
Full link voltage test: the dispute between shadow database and shadow table
IMS data channel concept of 5g vonr+
Leetcode (46) - Full Permutation
创始人负债10亿,开课吧即将“下课”?
Longest palindrome substring (dynamic programming)
带你遨游银河系的 10 种分布式数据库
Understand common network i/o models
Redis如何实现多可用区?
Harmonyos fourth training
How to choose an offer and what factors should be considered
精彩速递|腾讯云数据库6月刊
腾讯云数据库公有云市场稳居TOP 2!
3.基金的类型
Knapsack problem (01 knapsack, complete knapsack, dynamic programming)
SQL injection HTTP header injection
ScheduledExecutorService定时器
Inventory host list in ansible (I wish you countless flowers and romance)