• NS2网络模拟(7)-homework03.tcl


      1: #NS2_有线部分homework03.tcl
    
      2: 
    
      3: #Create a simulator object
    
      4: set ns [new Simulator]
    
      5: 
    
      6: #Define different colors for data flows
    
      7: $ns color 1 Blue
    
      8: $ns color 2 Red
    
      9: 
    
     10: #Open the nam trace file
    
     11: set nf [open szsh.nam w]
    
     12: $ns namtrace-all $nf
    
     13: 
    
     14: #Open the trace record file
    
     15: set nd [open szsh.tr w]
    
     16: $ns trace-all $nd
    
     17: 
    
     18: #Define a 'finish' procedure
    
     19: proc finish {} {
    
     20:     global ns nf nd
    
     21:     $ns flush-trace
    
     22:     #Close the trace file
    
     23:     close $nf
    
     24:     #Close the record file
    
     25:     close $nd
    
     26:     #Execute nam on the trace file
    
     27:     exec nam szsh.nam &
    
     28:     exit 0
    
     29: }
    
     30: 
    
     31: 
    
     32: #Create two nodes
    
     33: set NODE_ShenZhen [$ns node]
    
     34: $NODE_ShenZhen color red
    
     35: $NODE_ShenZhen shape circle
    
     36: $NODE_ShenZhen label "ShenZhen"
    
     37: $NODE_ShenZhen label-color red
    
     38: $NODE_ShenZhen label-at up
    
     39: 
    
     40: set NODE_ShangHai [$ns node]
    
     41: $NODE_ShangHai color blue
    
     42: $NODE_ShangHai shape circle
    
     43: $NODE_ShangHai label "ShangHai"
    
     44: $NODE_ShangHai label-color blue
    
     45: $NODE_ShangHai label-at down
    
     46: 
    
     47: 
    
     48: #Create a duplex link between the nodes
    
     49: $ns duplex-link $NODE_ShenZhen $NODE_ShangHai 1Mb 100ms DropTail
    
     50: #Monitor the queue for the link between node 2 and node 3
    
     51: $ns duplex-link-op $NODE_ShenZhen $NODE_ShangHai queuePos 0.5
    
     52: $ns duplex-link-op $NODE_ShenZhen $NODE_ShangHai color green
    
     53: $ns duplex-link-op $NODE_ShenZhen $NODE_ShangHai orient right
    
     54: 
    
     55: ##TCP Traffic from NODE_ShangHai to NODE_ShenZhen
    
     56: #Create a TCP agent and attach it to node NODE_ShangHai
    
     57: set Agent_Sender_TCP [new Agent/TCP]
    
     58: $Agent_Sender_TCP set class_    2
    
     59: $Agent_Sender_TCP set fid_      1
    
     60: $Agent_Sender_TCP set window_   20
    
     61: $ns attach-agent $NODE_ShangHai $Agent_Sender_TCP
    
     62: # Create a FTP source and attach it to Agent_Sender_TCP
    
     63: set APP_FTP [new Application/FTP]
    
     64: $APP_FTP attach-agent $Agent_Sender_TCP
    
     65: $APP_FTP set type_  FTP
    
     66: #Create a TCPSink agent and attach it to node NODE_ShenZhen
    
     67: set Agent_Receiver_TCPSink [new Agent/TCPSink]
    
     68: $ns attach-agent $NODE_ShenZhen $Agent_Receiver_TCPSink
    
     69: $ns connect $Agent_Sender_TCP $Agent_Receiver_TCPSink
    
     70: 
    
     71: ##UDP Traffic from NODE_ShenZhen to NODE_ShangHai
    
     72: #Create a UDP agent and attach it to node NODE_ShenZhen
    
     73: set Agent_Sender_UDP [new Agent/UDP]
    
     74: $Agent_Sender_UDP set agent_addr_   1000
    
     75: $Agent_Sender_UDP set agent_port_   100
    
     76: $Agent_Sender_UDP set fid_          2
    
     77: $ns attach-agent $NODE_ShenZhen $Agent_Sender_UDP
    
     78: ## Create a Exponential traffic source and attach it to Agent_Sender_UDP
    
     79: #set APP_EXP [new Application/Traffic/Exponential]
    
     80: #$APP_EXP set packetSize_    400
    
     81: #$APP_EXP set burst_time_    400ms
    
     82: #$APP_EXP set idle_time_     100ms
    
     83: #$APP_EXP set rate_          150kb
    
     84: #$APP_EXP attach-agent $Agent_Sender_UDP
    
     85: #set APP_PARETO [new Application/Traffic/Pareto]
    
     86: #$APP_PARETO set packetSize_     400
    
     87: #$APP_PARETO set burst_time_     400ms
    
     88: #$APP_PARETO set idle_time_      100ms
    
     89: #$APP_PARETO set rate_           200kb
    
     90: #$APP_PARETO set shape_          1.2
    
     91: #$APP_PARETO attach-agent $Agent_Sender_UDP
    
     92: set APP_CBR [new Application/Traffic/CBR]
    
     93: $APP_CBR set packetSize_    1000
    
     94: $APP_CBR set burst_time_    500ms
    
     95: $APP_CBR set idle_time_     100ms
    
     96: $APP_CBR set rate_          1050kb
    
     97: $APP_CBR set random_        On
    
     98: $APP_CBR attach-agent $Agent_Sender_UDP
    
     99: #Create a Null agent (a traffic sink) and attach it to node NODE_ShangHai
    
    100: set Agent_Receiver_NULL [new Agent/Null]
    
    101: $Agent_Receiver_NULL set dst_addr_   2000
    
    102: $Agent_Receiver_NULL set dst_port_   200
    
    103: $ns attach-agent $NODE_ShangHai $Agent_Receiver_NULL
    
    104: 
    
    105: #Connect the traffic source with the traffic sink
    
    106: $ns connect $Agent_Sender_UDP $Agent_Receiver_NULL
    
    107: 
    
    108: #Schedule events for the CBR agent
    
    109: $ns at 0.2 "$APP_FTP start"
    
    110: $ns at 0.5 "$APP_CBR start"
    
    111: $ns at 7.5 "$APP_CBR stop"
    
    112: $ns at 9.7 "$APP_FTP stop"
    
    113: 
    
    114: 
    
    115: #Call the finish procedure after 5 seconds of simulation time
    
    116: $ns at 10.0 "finish"
    
    117: 
    
    118: #Run the simulation
    
    119: $ns run
    
    120: 
  • 相关阅读:
    LeetCode 167. 两数之和 II
    LeetCode 97. 交错字符串
    LeetCode 35. 搜索插入位置
    LeetCode 120. 三角形最小路径和
    LeetCode 350. 两个数组的交集 II
    LeetCode 174. 地下城游戏
    LeetCode 315. 计算右侧小于当前元素的个数
    LeetCode 309. 最佳买卖股票时机含冷冻期
    面试题 17.13. 恢复空格
    去除字符串首尾空格
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468732.html
Copyright © 2020-2023  润新知