NS2中RTP的简单应用

转载 2012年03月30日 15:16:26

NS2已经支持简单的RTP应用了,但是很多人却不知道如何使用。这其中一个主要的原因就是NS2的发行版中自带的RTP示例并不能够正常运行。这个问题好几年前就已经有人提了出来,可是很奇怪的是,一直到现在都没有修改掉,而且还有很多人在不同的论坛上提出同样的问题。没有办法,只有自己动手,丰衣足食。

在安装目录的tcl/ex文件夹下有个simple-rtp.tcl文件,演示了RTP协议的简单应用。但是如果直接运行的话,则可能出现厦门的错误提示:

$ ns simple-rtp.tcl
warning: no class variable Session/RTP::debug_
          see tcl-object.tcl in tclcl for info about this warning.
  warning: no class variable Session/RTP::debug_
          see tcl-object.tcl in tclcl for info about this warning.
  warning: no class variable Session/RTP::debug_
          see tcl-object.tcl in tclcl for info about this warning.
  warning: no class variable Session/RTP::debug_
          see tcl-object.tcl in tclcl for info about this warning.
  Warning dst_ is no longer being supported in NS. dst_ -2147483648
Use dst_addr_ and dst_port_ instead 

 这里的提示给出了两个信息,一个是没有类变量Session/RTP::debug_,第二个信息变量使用错误。首先解决第一个问题,在tcl/lib/ns-default.tcl中添加下面一行代码:

Session/RTP set debug_ 0

 这里的意思表示默认将调试功能关闭。当然如果需要调试功能的时候,可以在TCL脚本中将此值设置为1或者“ON”。

第二个问题是在tcl/rtp/session-rtp.tcl文件中修改join-group函数,修改代码如下:

Session/RTP instproc join-group { g } {
	 set g [expr $g]
	 $self set group_ $g
	 mvar node_ dchan_ cchan_ 
	 $dchan_ set dst_addr_ $g
	 $node_ join-group $dchan_ $g
	 incr g
	 $cchan_ set dst_addr $g
	 $node_ join-group $cchan_ $g
}

 最后要注意的是,必须重新编译NS2 ,修改的代码才会起作用。

重新编译后,再运行这个simple-rtp.tcl文件就没有问题了。

上一个NAM模拟运行的图:



 从图中并没有看出有什么不同的地方,因为这里传输的都是数据(黑色)。当然这里只是一个演示,具体的分析信息还是要看Trace文件,可以看到其它类型的报文信息。

 

BTW: 由于是在Windows下使用Cygwin编译的NS2,所以为了使用NAM,装了X,可是在运行的时候却出现了下面的错误信息:

_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
(II) XF86Config is not supported
(II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
winAdjustVideoModeShadowGDI - Using Windows display depth of 32 bits per pixel
winAllocateFBShadowGDI - Creating DIB with width: 1280 height: 800 depth: 32
......
XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
(--) Setting autorepeat to delay=500, rate=31
(--) winConfigKeyboard - Layout: "00000804" (00000804) 
(EE) Keyboardlayout "中文 (简体) - 美式键盘" (00000804) is unknown
(--) 3 mouse buttons found
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
winInitMultiWindowWM - pthread_mutex_lock () returned.
winProcEstablishConnection - Hello
......

 重新安装Cygwin没有解决这个问题,在网上搜索也没有找到解决方案。无意中打开了Xming,结果在启动X失败后,Xming打开了X窗口。现在也没有心思去琢磨背后是什么原因引起的,如果有谁知道的话,麻烦告知一声。

ns2.35中嵌入自写协议的方法

本文介绍如何在最新版的NS2.35中嵌入一个自己写的新协议,读者可先不必较真协议的具体实现代码,先熟悉嵌入流程因为此代码还是有一定bug的,但实现一个协议的总体框架是对的。后续文章将对如何写一个新协议...
  • sxsj333
  • sxsj333
  • 2015年05月08日 18:00
  • 5615

NS2之添加新代理 [转载]

一、NS2 1、离散事件驱动器 2、提供如下网络模拟组件 (1)流量模型和应用层程序:web、FTP、telnet、audio、sensor nets 幻灯片 4 (2)传输层协议:TCP(Reno、...
  • chutian_8986
  • chutian_8986
  • 2013年06月20日 16:19
  • 919

ns2下LEACH协议的一个简单仿真测试

默认分类 2010-09-1621:30:33 阅读74 评论0   字号:大中小 订阅 安装好了LEACH协议,运行./test后生成许多文件,结果文档在mit/leach_sims文件夹下,分别为...
  • tianshide851049708
  • tianshide851049708
  • 2014年03月02日 22:55
  • 993

计算机网络实验ns2实验

网络仿真器NS2的配置与应用 这个实验环境配置很麻烦,但是实验内容很简单...... 配置环境一上午,实验只要十分钟......  1.        实验要求 安装并运行网络...
  • SpadgerZ
  • SpadgerZ
  • 2017年06月26日 15:06
  • 716

NS2简单介绍

NS是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块已经非常丰富,几乎涉及到了网络技术的所有方面。所以,NS成了目前学...
  • f_x_p0324
  • f_x_p0324
  • 2011年07月05日 22:07
  • 1251

NS2数据包分析

转自http://www.baisi.net/thread-60130-1-1.html 1. NS2中数据包packet类结构图:   packet类中的access函数如下: inline uns...
  • bbs375
  • bbs375
  • 2017年05月28日 20:47
  • 391

NS2之移动节点邻居节点发现

//You can use the following methods to discover neighbors:  //1. Use Hello Packets for *neighbor* di...
  • tianshide851049708
  • tianshide851049708
  • 2014年02月28日 22:35
  • 563

《深入理解Android网络编程》

最近开始码项目中网络通信部分的代码了,所以还是找了本介绍Andro
  • tnt87
  • tnt87
  • 2014年08月13日 09:47
  • 856

NS2简单又经典的入门教程

2010-07-10 22:06:04|  分类: NS2网络仿真 |  标签:ns2  ns  网络仿真  gnuplot  |字号 订阅               ...
  • hoppboy
  • hoppboy
  • 2012年10月23日 20:42
  • 9340

NS2画图gnuplot介绍

论文仿真的时候,结果需要通过图标来显示, 可以使用最新的4.4版本来画图,将画图过程的设置写在一个文件中,保存在binary目录中,命名为:*.dat。具体的画图的命令的设置,可以在gnuplot中...
  • tianshide851049708
  • tianshide851049708
  • 2014年02月28日 22:39
  • 598
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NS2中RTP的简单应用
举报原因:
原因补充:

(最多只允许输入30个字)