INET ospfv2 simpleTest 示例

实验原理

OSPF(开放最短路径优先)是一种用于 IP 网络的路由协议。它使用链路状态路由 (LSR) 算法,属于内部网关协议 (IGP) 组,在单个自治系统 (AS) 内运行。

OspfRouter 是启用了 OSPF 协议路由器的实例化。

Ospfv2 模块实现了 OSPF 协议的第 2 代版本。在该模块中,用户可以使用 ospfConfig 参数指定的 XML 文件配置区域和路由器。网络接口的各种参数也可以在 XML 文件中指定或作为 Ospfv2 模块的参数进行定义:

1
2
3
**.ospf.ospfConfig = xmldoc("ASConfig.xml")
**.ospf.helloInterval = 12s
**.ospf.retransmissionInterval = 6s

下方是 XML 文件所包含的信息。<OSPFASConfig> 根元素可以包含 <Area><Router> 元素,这些元素具有各种属性,并指定了网络接口的参数。其中,最重要的是 <Area> 包含的 <AddressRange> 元素,该元素列举了应该被协议提示的网络地址。此外,<Router> 元素可能包含用于配置各种点对点或广播接口的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">
<!-- Areas -->
<Area id="0.0.0.0">
<AddressRange address="H1" mask="H1" status="Advertise" />
<AddressRange address="H2" mask="H2" status="Advertise" />
<AddressRange address="R1>R2" mask="R1>R2" status="Advertise" />
<AddressRange address="R2>R1" mask="R2>R1" status="Advertise" />
</Area>
<!-- Routers -->
<Router name="R1" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="1" routerPriority="1" />
<PointToPointInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="2" />
</Router>
<Router name="R2" RFC1583Compatible="true">
<PointToPointInterface ifName="eth0" areaID="0.0.0.0" interfaceOutputCost="2" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.0" interfaceOutputCost="1" routerPriority="2" />
</Router>
</OSPFASConfig>

实验内容记录

涉及文件:

  • /inet4/examples/ospfv2/simpletest/omnetpp.ini
  • /inet4/examples/ospfv2/simpletest/SimpleTest.ned
  • /inet4/src/inet/applications/udpapp/UdpBasicApp.cc

INET 将节点细分为Host、Router 和 Switch 三种类型,即主机、路由器和交换机。这里的 Host 与设备的概念更加类似,Router 主要负责转发包,Switch 就是 Ethernet 接口。

在本实验中,涉及到了 udpapp 下的 UdpBasicAppUdpEchoApp 两个 Application。其中:

  • UdpBasicApp 以给定的时间间隔将 UDP 数据包发送到给定的 IP 地址
  • UdpEchoApp类似于 UdpBasicApp,但它在接收到数据包后发回

UdpBasicApp 将 UDP 数据包发送到 destAddresses 参数中给定的 IP 地址。应用程序在每个时间间隔内向其中一个目标发送消息 sendInterval。消息之间的间隔和消息长度可以作为随机变量给出。

UdpEchoApp 类似于 UdpBasicApp,但它在接收到数据包后发回数据包。它只接受带有 UdpHeader 的数据包,即由另一个 UdpEchoApp 生成的数据包。

该实验的操作方式为:先到 omnetppinet4 根目录下使用命令:

1
. setenv

激活环境,然后回到 inet4 根目录下输入 opp_makemake -fmake 命令,最后再到程序目录下执行 inet 命令即可。

需要注意的是,每次对 INET 中的程序进行修改后,都需要重新 make

参考资料:

实验结果

实验结果

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lgc0208@foxmail.com
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信