在NS2(2.35版本)中添加 Ping协议

本文档介绍了如何在NS2 2.35版本中添加自定义的Meng协议,包括从原有的ping协议复制文件、修改源代码、更新头文件、配置TCL脚本、解决编译错误以及执行自定义的meng.tcl模拟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 在NS2的2.29版本中已存在ping协议,我的NS2版本为2.35,这里将现存的ping协议改为meng协议。

  2. 原本的ping在文件夹apps下

在这里插入图片描述

  1. 自己新建协议时,应该建立新的目录meng
sudo mkdir meng

在这里插入图片描述

  1. 将apps中ping.cc和ping.h分别复制到meng目录中,此操作是在apps目录下进行的。
sudo cp ping.h ../meng
sudo cp ping.cc ../meng

更改名字

sudo mv ping.h meng.h
sudo mv ping.cc meng.cc

在这里插入图片描述

  1. 然后把meng.h和meng.cc中所有的ping,PING,Ping用meng,MENG,Meng替代
    在这里插入图片描述
  2. 在 “~ns/common/packet.h” 文件中, 添加一个新的条目 "PT_MENG
    在这里插入图片描述
    注意:

这里的name前是tab键,并不是空格

在这里插入图片描述
8. 在文件 “~ns/tcl/lib/ns-default.tcl” 中,设置包的默认大小Agent/Meng set packetSize_ 64
在这里插入图片描述
9. 在文件 “~ns/tcl/lib/ns-packet.tcl” 中,在set protolist {}中加入Meng
在这里插入图片描述
注意:

这里的Meng前是tab键,并不是空格
在这里插入图片描述

  1. 在Makefile文件中,添加 meng.o到这个文件中
    注意:

这里的meng/meng.o \前是tab键,并不是空格
在这里插入图片描述

  1. 执行make depend
    在这里插入图片描述在这里插入图片描述
    出现以上的错误
    解决方案:
sudo apt-get install libpcap-dev

在这里插入图片描述
再次执行make depend,就可以执行通过
最后执行 make
出现以下错误
在这里插入图片描述
解决方案:

sudo make clean
sudo make

在这里插入图片描述
13. 新建meng.tcl文件

touch meng.tcl

在这里插入图片描述
14. 仿照NS2中原本的ping.tcl写meng.tcl,原本的ping.tcl内容如下

#Create a simulator object
set ns [new Simulator]

#Open a trace file
set nf [open out.nam w]
$ns namtrace-all $nf

#Define a 'finish' procedure
proc finish {} {
        global ns nf
        $ns flush-trace
        close $nf
        exec nam out.nam &
        exit 0
}

#Create three nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]

#Connect the nodes with two links
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
$ns duplex-link $n1 $n2 1Mb 10ms DropTail

#Define a 'recv' function for the class 'Agent/Ping'
Agent/Ping instproc recv {from rtt} {
	$self instvar node_
	puts "node [$node_ id] received ping answer from \
              $from with round-trip-time $rtt ms."
}

#Create two ping agents and attach them to the nodes n0 and n2
set p0 [new Agent/Ping]
$ns attach-agent $n0 $p0

set p1 [new Agent/Ping]
$ns attach-agent $n2 $p1

#Connect the two agents
$ns connect $p0 $p1

#Schedule events
$ns at 0.2 "$p0 send"
$ns at 0.4 "$p1 send"
$ns at 0.6 "$p0 send"
$ns at 0.6 "$p1 send"
$ns at 1.0 "finish"

#Run the simulation
$ns run

将所有的ping,PING,Ping用meng,MENG,Meng代替
在这里插入图片描述
20.执行ns meng.tcl
在这里插入图片描述
解决方案:

sudo make clean
sudo make
sudo make install
sudo ns meng.tcl

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值