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窗口。现在也没有心思去琢磨背后是什么原因引起的,如果有谁知道的话,麻烦告知一声。
- 大小: 7.2 KB
分享到:
相关推荐
总之,“NS2新的RTP协议”涵盖了RTP协议的基本概念、在网络模拟器NS2中的实现,以及可能的新特性和应用场景。对于从事网络协议研究、多媒体通信或者网络工程的人员来说,理解和运用这一协议是至关重要的。
2 1 简单多播音频会议( Simple Multicast Audio Conference) 2 2 音频和视频会议(Audio and Video Conference) 2 3 混频器和转换器(Mixers and Translators) 2 4 分层编码(Layered Encodings) 3 ...
2. 集成与扩展:开发者可以将Shout2rtp作为一个模块集成到自己的应用中,或者基于其源代码开发新的RTP传输功能。 3. 故障排查:通过分析日志文件和RTCP反馈,可以对传输质量进行监控,及时发现并解决丢包、延迟等...
描述中的内容“rtp2mp4-rtp h264 acc 合成MP4.zip”与标题相同,表明该资源可能是一个程序或脚本,用于处理RTP数据流,将其转换为MP4格式,其中视频部分采用H264编码,音频部分采用AAC编码。 标签“rtp2mp4-rtp h...
**RTP(实时传输协议)**是互联网上用于传输实时数据的一种协议,它在RFC3550中被定义。RTP主要用于音频、视频等多媒体数据的传输,它...阅读这些文档,将有助于你全面掌握RTP和RTSP在实际应用中的工作原理和操作方法。
rtp2wav会解析抓包文件中的RTP包,提取出语音数据,并按照相应的编码格式(如G.711、G.729等)重构为.wav格式的音频文件,使我们能够听到原始的语音内容。 数据结构在rtp2wav的工作过程中扮演着关键角色。RTP包由头...
在本实验中,我们将深入探讨"柯志亨NS2仿真实验2",这是一个基于NS2(Network Simulator 2)的多媒体和无线网络通信实验。NS2是一个广泛使用的开源网络模拟器,它允许研究人员和学者模拟和分析各种网络协议、拓扑...
2. RTP(Real-time Transport Protocol,实时传输协议):RTP通常与RTSP配合使用,负责实际的媒体数据传输。RTP提供了一种标准格式,用于打包音频和视频数据,并在互联网上传输。它包含了时间戳和序列号,便于接收端...
该脚本展示了如何在NS2中构建一个简单的网络模型来比较TCP和UDP的丢包率。具体步骤如下: 1. **初始化NS2环境**: - 创建新的NS2模拟器实例。 - 打开追踪文件以便记录仿真过程中的数据。 2. **创建节点**: - ...
jrtp库是对RTP协议的一种实现,它简化了开发者在实际应用中的集成工作。 1. **初始化RTP服务端**: 在服务端启动RTP服务时,首先要进行初始化。这通常包括创建RTP会话、设置会话参数(如本地IP地址、端口号、SSRC ...
RTP 是一种应用层协议,提供了端到端的传输功能,通过多播或单播的方式,适合于传输如音频、视频等实时数据。RTP 并不保证服务质量,也没有提供资源预留。 RTP 协议的主要特点包括: 1. 端到端的传输功能 2. 多播...
一个简单的RTP服务器,rtp部分是纯C实现,编码则是利用了FFmpeg库
通过对《RTP Payload格式在H.264视频中的应用》这一文档的深入解析,我们可以更全面地了解H.264视频在RTP协议中的封装细节及其在网络传输中的应用策略。这对于设计和实现高效的视频传输系统至关重要。
总的来说,RTP2wav工具是VoIP分析和调试过程中的一种实用工具,它帮助我们把网络上的复杂音频数据转化为易于管理和分析的WAV文件。对于开发者和网络管理员来说,了解并掌握这样的工具可以极大地提高他们在问题排查和...
在现代多媒体技术中,实时传输协议(RTP)和H264编码技术是两个核心组件,广泛应用于视频流媒体领域。"rtp2h264.rar"这个压缩包提供了一个使用Visual C++实现的工程,它实现了通过RTP协议推送H264编码的视频流,并能...
以上内容是根据给定的部分内容所提炼出来的知识点,涵盖了NS2手册中关于OTcl接口和模拟器基础的重要方面。通过学习这些知识点,用户可以更好地理解和使用NS2模拟器来进行网络协议的研究和仿真。
总结来说,RTP是多媒体通信的重要协议,`javartp`和`jlibrtp`库为Java开发者提供了便利的工具,使得在Java环境中实现RTP应用变得更加简单。理解RTP的基本原理和使用`jlibrtp`进行实践,能够帮助你构建出高质量的实时...
2. **协议支持**:NS2支持多种网络协议,如TCP/IP、UDP、RTP等,以及各种路由算法,如Dijkstra、AODV、DSR等。在2.35版本中,这些协议的实现可能得到了优化,以适应更复杂和动态的网络环境。 3. **无线通信模型**:...