📄 udp.tex
字号:
\chapter{UDP Agents}\label{sec:udpAgents}\section{UDP Agents}\label{sec:udpagent}UDP agents are implemented in \code{udp.\{cc, h\}}. A UDP agent acceptsdata in variable size chunks from an application, and segments the data if needed. UDP packets also contain a monotonically increasing sequencenumber and an RTP timestamp. Although real UDP packets do not contain sequence numbers or timestamps, this sequence number does not incur any simulated overhead, and can be useful for tracefile analysis or forsimulating UDP-based applications.The default maximum segment size (MSS) for UDP agents is 1000 byte:\begin{program}Agent/UDP set packetSize_ 1000 \; max segment size;\end{program}This OTcl instvar is bound to the C++ agent variable \code{size_}. Applications can access UDP agents via the \fcn[]{sendmsg} function in C++,or via the \code{send} or \code{sendmsg} methods in OTcl, as described insection \ref{sec:systemcalls}. The following is a simple example of how a UDP agent may be used in a program. In the example, the CBR traffic generator is started at time 1.0, at which timethe generator begins to periodically call the UDP agent \fcn[]{sendmsg}function.\begin{program} set ns [new Simulator] set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 5Mb 2ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $udp0 set packetSize_ 536 \; set MSS to 536 bytes; set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 1.0 "$cbr0 start"\end{program}\section{Commands at a glance}\label{sec:udpcommand}The following commands are used to setup UDP agents in simulation scripts:\begin{flushleft}\code{set udp0 [new Agent/UDP]}\\This creates an instance of the UDP agent.\code{$ns_ attach-agent <node> <agent>}\\This is a common command used to attach any <agent> to a given <node>.\code{$traffic-gen attach-agent <agent>}\\This a class Application/Traffic/<traffictype> method which connects thetraffic generator to the given <agent>. For example, if we want to setupa CBR traffic flow for the udp agent, udp1, we given the following commands\\\begin{program}set cbr1 [new Application/Traffic/CBR]$cbr1 attach-agent $udp1\end{program}\code{$ns_ connect <src-agent> <dst-agent>}\\This command sets up an end-to-end connection between two agents (at thetransport layer).\begin{program}$udp set packetSize_ <pktsize>$udp set dst_addr_ <address>$udp set dst_port_ <portnum>$udp set class_ <class-type>$udp set ttl_ <time-to-live>..... etc\end{program}The above are different parameter values that may be set as shown abovefor udp agents. The default values can be found in \ns/tcl/lib/ns-default.tcl.For a typical example of setting up an UDP agent used in a simulation, seethe above section \ref{sec:udpagent}.\end{flushleft}\endinput
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -