tcpemu.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # Testing TCP emulation in ns 
  2. # Author : Alefiya Hussain  and Ankur Sheth
  3. # Date   : 05/14/2001
  4. # The transducer is constructed as follows :
  5. #    Entry Node            Exit Node  
  6. #        |                     |
  7. #    Agent/TCPTap          Agent/TCPTap
  8. #    Network/Pcap/Live     Network/IP
  9. #
  10. #  The TCPTap agents are attached to the nodes .
  11. #
  12. #  The transducer is the attached to a ns BayFullTcp agent. 
  13. #
  14. #
  15. #                          node f - Agent/TCP/BayFullTcp (tcp)
  16. #                          /  
  17. #        ------------------   ---------------------
  18. #       /                                          
  19. #      /                                            
  20. #   node 1 - Agent/TCPTap (tap1)                  node 2 - Agent/TCPTap (tap3)
  21. #    (n1)    Network/Pcap/Live (bpf)                       Network/IP (ipnet)
  22. #
  23. #
  24. set ns [new Simulator]
  25. $ns use-scheduler RealTime
  26. set f [open out.tr w]
  27. $ns trace-all $f 
  28. set entry_node [$ns node]
  29. set exit_node [$ns node]
  30. set tcp_node [$ns node]
  31. $ns simplex-link $entry_node $tcp_node 10Mb 1ms DropTail  
  32. $ns simplex-link $tcp_node $exit_node 10M 1ms DropTail
  33. # Configure the entry node  
  34. set tap1 [new Agent/TCPTap];               # Create the TCPTap Agent
  35. set bpf [new Network/Pcap/Live];           # Create the bpf
  36. set dev [$bpf open readonly eth0]
  37. $bpf filter "src 192.168.123.116 and src port 8191 and dst 192.168.123.253 and dst port 16384"
  38. $tap1 network $bpf;                        # Connect bpf to TCPTap Agent
  39. $ns attach-agent $entry_node $tap1;        # Attach TCPTap Agent to the node
  40. # Configure the exit node 
  41. set tap2 [new Agent/TCPTap];       # Create a TCPTap Agent
  42. set ipnet [new Network/IP];        # Create a Network agent
  43. $ipnet open writeonly        
  44. $tap2 network $ipnet;              # Connect network agent to tap agent
  45. $tap2 advertised-window 512
  46. $tap2 extipaddr "192.168.123.116" 
  47. $tap2 extport 8191
  48. $ns attach-agent $exit_node $tap2;        # Attach agent to the node.
  49. # Configure the TCP agent  
  50. set tcp [new Agent/TCP/FullTcp]
  51. $ns attach-agent $tcp_node $tcp
  52. # Connect the agents.
  53. $ns simplex-connect $tap1 $tcp
  54. $ns simplex-connect $tcp $tap2
  55. $ns at 0.01 "$tcp advance 1"
  56. $ns at 20.0 "finish"
  57. proc finish {} {
  58.     global ns f nf
  59.     $ns flush-trace
  60.     close $f
  61.     exit 0
  62. }
  63. $ns run