免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1286 | 回复: 0
打印 上一主题 下一主题

NS2入门实例 3---有线观察排队和丢包,三节点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:53 |只看该作者 |倒序浏览
  场景比较简单,主要是为了观察排队和丢包情况!
  关于NS2的网络仿真原理, 请看 NS2中文教材(1):NS2网络模拟的原理
  脚本的拓扑结构:
                   
 
  通过利用NAM演示功能,可以明显看到TCP和UDP机制的区别: 三次握手、ACK消息、慢启动等!
 
实例3:
        (以下的代码,在 入门实例1 中已进行了详细的注释)

  1. # 场景描述:
  2. # 主要用于观察数据包在节点Agent上的排队和丢包情况
  3. # 有线场景,四个节点,FTT+TCP用蓝色表示, CBR+UDP用红色表示
  4. set ns [new Simulator]
  5. #设置颜色
  6. $ns color 1 Blue
  7. $ns color 2 Red
  8. set tracefd [open out.tr w]
  9. $ns trace-all $tracefd
  10. set namtracefd [open out.nam w]
  11. $ns namtrace-all $namtracefd
  12. proc finish {} {
  13. global ns tracefd namtracefd
  14. $ns flush-trace
  15. close $tracefd
  16. close $namtracefd
  17. exec nam out.nam &
  18. exit 0
  19. }
  20. set n0 [$ns node]
  21. set n1 [$ns node]
  22. set n2 [$ns node]
  23. set n3 [$ns node]
  24. $ns duplex-link $n0 $n2 2Mb 10ms DropTail
  25. $ns duplex-link $n1 $n2 2Mb 10ms DropTail
  26. $ns duplex-link $n2 $n3 1.7Mb 10ms DropTail
  27. $ns queue-limit $n2 $n3 10
  28. #用于设置NAM显示时,各节点的相对位置
  29. $ns duplex-link-op $n0 $n2 orient right-down
  30. $ns duplex-link-op $n1 $n2 orient right-up
  31. $ns duplex-link-op $n2 $n3 orient right
  32. $ns duplex-link-op $n2 $n3 queuePos 0.5
  33. set tcp [new Agent/TCP]
  34. $tcp set class_ 2
  35. $ns attach-agent $n0 $tcp
  36. set sink [new Agent/TCPSink]
  37. $ns attach-agent $n3 $sink
  38. $ns connect $tcp $sink
  39. $tcp set fid_ 1
  40. set ftp [new Application/FTP]
  41. $ftp attach-agent $tcp
  42. $ftp set type_ FTP
  43. set udp [new Agent/UDP]
  44. $ns attach-agent $n1 $udp
  45. set null [new Agent/Null]
  46. $ns attach-agent $n3 $null
  47. $ns connect $udp $null
  48. $udp set fid_ 2
  49. set cbr [new Application/Traffic/CBR]
  50. $cbr attach-agent $udp
  51. $cbr set type_ CBR
  52. $cbr set packet_size_ 1000
  53. $cbr set rate_ 1mb
  54. $cbr set random_ false
  55. $ns at 0.5 "$cbr start"
  56. $ns at 1.0 "$ftp start"
  57. $ns at 4.0 "$ftp stop"
  58. $ns at 4.5 "$cbr stop"
  59. #一下这一行可有可无!
  60. $ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
  61. $ns at 5.0 "finish"
  62. #会在命令窗口中输出, 因为默认的stdout是命令窗口啊!
  63. puts "CBR packet size=[$cbr set packet_size_]"
  64. puts "CBR interval=[$cbr set interval_]"
  65. $ns run
运行结果:
                                   只有CBR运行时:
  
 
CBR和FTP同时运行时:
丢包的情况:
 



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP