亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plm.tex

?? 對IEEE 802.11e里的分布式信道接入算法EDCA進行改進
?? TEX
?? 第 1 頁 / 共 2 頁
字號:
\subsection{Instantiation of a PLM Source}To create a PLM source, place it at node \code{n}, and start it at {\tt t$_0$},  we callthe PLMTopology instproc {\tt place\_source n t$_0$}. This instproc return {\ttaddr}, the address required to attach a receiver to this source. {\ttplace\_source} calls the Simulator instproc \code{PLMbuild_source_set} thatcreates as many Application/Traffic/CBR\_PP instances as there are layers (in the following we call aninstance of the class Application/Traffic/CBR\_PP a layer). Each layer corresponds to adifferent multicast group. To speed up the simulations when the PLM sources start we use thefollowing trick:At $t=0$, \code{PLMbuild_source_set} restricts eachlayer to sendonly one packet ({\tt maxpkts\_} set to 1). That allows to build the multicast trees-- one multicast tree per layer -- without flooding the whole network. Indeed,each layer only sends one packet to build the corresponding multicast tree. The multicast trees take at most the maximum RTT of the network to be established andmust be established before {\tt t$_0$}, the PLM source starting time. Therefore,{\tt t$_0$} must be carrefully chosen, otherwise the source sends a large number of useless packets. However, as we just need to start the PLM source after the multicast trees are estabished,{\tt t$_0$} can be largely overestimated. At time {\tt t$_0$}, we set {\it maxpkts\_} to 268435456 for all the layers.It is fundamental, in order to have persistent multicast trees, that theprune timeout is set to a large value. For instance, with DM routing: \begin{program}  DM set PruneTimeout 1000\end{program}Each layer of a same PLM source has the same flow id {\tt fid\_}. Consequently,each PLM source is considered as a single flow for a Fair Queueingscheduler. The PLM code manages automatically the {\tt fid\_} to prevent differentsources to have the same {\tt fid\_}. The {\tt fid\_} starts at 1 for the firstsource and is increased by one for each new source. Be careful to avoid otherflows (for instance concurrent TCP flows) to have the same {\tt fid\_} than thePLM sources. Additionally, If you consider {\tt fid\_} larger than 32, do notforget to increase the {\tt MAXFLOW} in \nsf{fq.cc} ({\tt MAXFLOW} must be setto the highest {\tt fid\_} considered in the simulation).\subsection{Instantiation of a PLM Receiver}\begin{figure}[tbp]  \centerline{\includegraphics{figures/instanPLMrecv.eps}}  \caption{Inheritance and instantiation when we create a receiver.}  \label{fig:instanPLMrecv}\end{figure}All the PLM machinery is implemented at the receiver. In this section we decribethe instantiation process of a receiver. To create, place at node{\tt n},  attach to source {\tt S}, and start at {\tt t$_1$} a PLM receiver wecall the PLMTopology instproc {\tt   build\_receiver n addr t$_1$ C} where {\tt addr} is the address returnedby {\tt place\_source} when {\tt S} was created, and {\tt C} is the check value. Thereceiver created by {\tt build\_receiver} is an instance of the class PLM/ns,the ns interface to the PLM machinery. At the initialisation of the receiver, the PLM instproc {\tt init} iscalled due to inheritance. {\tt init} calls the PLM/ns instproc{\tt create-layer} and, by this way,  creates as many instances of the class PLMLayer/ns (the ns interface to the PLMLayer class) as there are layers. Eachinstance of PLMLayer/ns creates an instance of the class PLMLossTrace which isreponsible for monitoring the received and lost packets thanks to the fact that the classPLMLossTrace inherits from the class Agent/LossMonitor/PLM. Fig.~\ref{fig:instanPLMrecv} schematically describes the process  of a PLMreceiver instantiation. In the following we describe the behavior of a PLMreceiver when it receives a packet and when it detects a loss.\subsection{Reception of a Packet}\label{sec:PLMReception-Packet}We create a new c++ class PLMLossMonitor (\nsf{plm/loss-monitor-plm.cc}) thatinherits from LossMonitor. The OTcl class name of the c++ PLMLossMonitor class isAgent/LossMonitor/PLM.\begin{program}class PLMLossMonitor : public LossMonitor {public:        PLMLossMonitor();        virtual void recv(Packet* pkt, Handler*);protected:        // PLM only        int flag_PP_;        double packet_time_PP_;        int fid_PP_;};static class PLMLossMonitorClass : public TclClass {public:        PLMLossMonitorClass() : TclClass("Agent/LossMonitor/PLM") {}        TclObject* create(int, const char*const*) {                return (new PLMLossMonitor());        }} class_loss_mon_plm;\end{program}We add in {\tt void PLMLossMonitor::recv(Packet* pkt, Handler*)} a Tcl call to the  Agent/LossMonitor/PLM instproc {\tt log-PP} each time a packet is received :\begin{program}  void LossMonitor::recv(Packet* pkt, Handler*)  {    ...    if (expected_ >= 0) {      ...      }    Tcl::instance().evalf("%s log-PP", name());    }\end{program}The Agent/LossMonitor/PLM instproc {\tt log-PP} is empty. In fact, we define the {\tt  log-PP} instproc for the class PLMLossTrace. {\tt log-PP}computes an estimate of the available bandwidth based on a single PP burst (oflength {\tt PP\_burst\_length} in packets). Once {\tt log-PP} has received the   {\tt PP\_burst\_length} packets of the burst, it computes the estimate and  calls the PLM instproc {\tt make\_estimate} with the computed estimate as  argument. {\tt make\_estimate} puts the estimate based on a single PP({\tt PP\_value}) in an array of  estimate samples ({\tt PP\_estimate}). If {\tt  PP\_value} is lower than the current subscription level (i.e.~lower than thethroughput achieved according to the current number of layers subscribed), {\tt  make\_estimate} calls the PLM instproc {\tt stability-drop} which simply dropslayers until the current subscription level becomes lower than {\tt PP\_value}.{\tt make\_estimate} makes an estimate {\tt PP\_estimate\_value} by taking theminimum {\tt PP\_value} received during the last {\tt check\_estimate} period(if there are atleast {\tt PP\_estimation\_length} single PP estimate received). Once {\tt  make\_estimate} has a {\tt PP\_estimate\_value} it calls the PLM instproc {\tt  choose\_layer} which joins or drops layer(s) according to the current subscriptionlevel and to the {\tt PP\_estimate\_value}. For details about the PLM instproc\code{make_estimate}, refer to its code in \nsf{tcl/plm/plm.tcl}.\subsection{Detection of a Loss}Each time a loss is detected by an instance of the class PLMLossMonitor, a call tothe Agent/LossMonitor/PLM instproc {\tt log-loss} is triggered. TheAgent/LossMonitor/PLM instproc {\tt log-loss} is empty. In fact, we define the {\tt log-loss} instproc for the classPLMLossTrace. The PLMLossTrace instproc {\tt log-loss} simplycalls the PLM instproc {\tt log-loss} which contains the PLM machinery in caseof loss. In summary, {\tt log-loss} only drops a layer when the loss rateexceeds 10\% (this test is executed by the PLM instproc {\tt  exeed\_loss\_thresh}). After a layer drop {\tt log-loss} precludes anyother layer drop due to loss for 500ms. For details about the PLM instproc {\tt  log-loss}, refer to its code in \nsf{tcl/plm/plm.tcl}. \subsection{Joining or Leaving a Layer}To join a layer the PLM instproc {\tt add-layer} is called. This instproccalls the PLMLayer instproc {\tt join-group} which calls the PLMLayer/ns instproc {\tt  join-group}.To leave a layer the PLM instproc {\tt drop-layer} is called. This instproccalls the PLMLayer instproc {\tt leave-group} which calls the PLMLayer/ns instproc {\tt  leave-group}.\section{Commands at a Glance}Note: This section is a copy paste of the end ofsection~\ref{sec:Configuration}. We add this section to preserve homogeneity withthe ns manual.All the simulations for PLM should be set using the PLMTopology environment (asin the example script where we define a PLMTopology superclass called Scenario0). Theuser interface is (all the instproc can be found in \nsf{tcl/plm/plm-topo.tcl}):\begin{description}\item[\tt build\_link a b d bw] creates a duplex link between node  \code{a} and \code with a delay \codellhvpzh and a bandwidth \code{bw}. If  either node does not exist, \code{build_link} creates it.\item[\tt place\_source n t] creates and places a PLM source at node \code{n} and  starts it at time \code{t}. \code{place_source} returns \code{addr} which  allows to attach receivers to this source.\item[\tt place\_receiver n addr C nb] creates and places a PLM receiver at node  \code{n} and attached it to the source which return the address \code{addr}. The  check value for this PLM receiver is \code{C}. An optional parameter \code{nb}  allows to get an instance of the PLM receiver called \code{PLMrcvr($nb)}. This  instance is only useful to get some specific statistics about this receiver  (mainly the number of packets received or lost). %$\end{description}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片免费看爆迷你毛片| 欧美一区二区在线观看| 五月激情六月综合| 亚洲另类在线一区| 中文字幕乱码一区二区免费| 欧美精品一区二区久久久| 日韩欧美国产系列| 欧美va亚洲va在线观看蝴蝶网| 在线成人免费观看| 91精品国产福利在线观看| 国产在线一区观看| 三级欧美韩日大片在线看| 欧美男同性恋视频网站| 精品1区2区3区| 欧美女孩性生活视频| 91精品国产麻豆| 日韩精品最新网址| 国产日韩欧美a| 亚洲欧美在线视频观看| 一区二区国产盗摄色噜噜| 伊人色综合久久天天| 五月天中文字幕一区二区| 丝袜诱惑制服诱惑色一区在线观看| 日韩电影免费在线看| 麻豆成人av在线| 波多野结衣精品在线| 在线看日本不卡| 日韩一二三区不卡| 国产日韩av一区二区| 亚洲日本一区二区三区| 日本不卡123| 成人黄色av电影| 91丨porny丨最新| 欧美日韩国产一区| 26uuu精品一区二区三区四区在线| 国产精品蜜臀av| 婷婷久久综合九色国产成人| 国产精品18久久久久久久网站| 99久久国产综合精品色伊| 欧美剧在线免费观看网站| 久久婷婷色综合| 亚洲一区二区三区四区在线免费观看 | 国产福利一区二区| 欧美网站一区二区| 欧美国产欧美综合| 日本中文字幕一区| 99久久国产综合精品色伊| 日韩一区二区三区四区| 亚洲免费资源在线播放| 国产综合色在线视频区| 精品视频在线免费看| 亚洲视频一区在线| 极品美女销魂一区二区三区免费 | 亚洲一二三区在线观看| 国产麻豆精品在线| 日韩一区二区麻豆国产| 亚洲精品亚洲人成人网| 国产精品正在播放| 日韩欧美中文一区二区| 亚洲线精品一区二区三区| 成人动漫视频在线| 久久综合久久综合亚洲| 免费一区二区视频| 欧美日韩黄色影视| 洋洋av久久久久久久一区| 成人性生交大合| 日本一区二区视频在线| 国产在线播放一区二区三区| 制服丝袜亚洲播放| 亚洲国产精品久久人人爱蜜臀| www.亚洲激情.com| 国产精品欧美久久久久一区二区| 激情五月播播久久久精品| 91精品国产91热久久久做人人| 一级日本不卡的影视| 日本道精品一区二区三区| 综合亚洲深深色噜噜狠狠网站| 粉嫩欧美一区二区三区高清影视| 精品久久久久久久久久久院品网 | 手机精品视频在线观看| 色婷婷综合久久久中文字幕| 亚洲欧美在线aaa| 色素色在线综合| 一区二区三区国产豹纹内裤在线| 99视频在线精品| 亚洲欧美日韩一区| 91成人国产精品| 天天av天天翘天天综合网色鬼国产| 91理论电影在线观看| 一区二区三区不卡视频| 欧美性猛交xxxx乱大交退制版| 亚洲国产视频一区二区| 91精品欧美久久久久久动漫| 免费观看30秒视频久久| 精品久久久网站| 成人av在线看| 午夜婷婷国产麻豆精品| 亚洲精品一区在线观看| 成人中文字幕电影| 一区二区三区免费在线观看| 9191成人精品久久| 韩日av一区二区| 亚洲精品免费看| 日韩视频在线一区二区| 不卡大黄网站免费看| 亚洲成人动漫av| 久久久噜噜噜久久中文字幕色伊伊 | 精品国产91乱码一区二区三区| 激情伊人五月天久久综合| 国产精品久久久久久久裸模| 欧美三级日韩在线| 国产精品一色哟哟哟| 亚洲欧美激情在线| 欧美va亚洲va| 92精品国产成人观看免费| 日本视频在线一区| 国产精品免费人成网站| 日韩美一区二区三区| 97久久超碰国产精品| 日韩高清一区二区| 亚洲美女视频在线| 久久综合久久综合亚洲| 欧美日韩国产综合一区二区| 成人黄色片在线观看| 久久99蜜桃精品| 亚洲va欧美va天堂v国产综合| 国产亚洲欧洲一区高清在线观看| 在线日韩一区二区| 99久久伊人网影院| 久久99精品国产麻豆不卡| 一二三区精品视频| 中文字幕一区三区| xfplay精品久久| 日韩一区二区三区在线视频| 欧美在线综合视频| 菠萝蜜视频在线观看一区| 开心九九激情九九欧美日韩精美视频电影 | 日韩一级大片在线观看| 91官网在线免费观看| 99国产精品久久久久久久久久| 黄一区二区三区| 美女爽到高潮91| 性久久久久久久久| 亚洲尤物在线视频观看| 亚洲欧洲日韩在线| 中文字幕一区二区日韩精品绯色| 精品国产精品网麻豆系列| 欧美一级生活片| 在线播放国产精品二区一二区四区| 91色视频在线| 色噜噜狠狠色综合欧洲selulu| 懂色一区二区三区免费观看| 国产一区二区主播在线| 久草热8精品视频在线观看| 免费人成黄页网站在线一区二区| 国产日韩欧美综合一区| 樱桃视频在线观看一区| 欧美aaa在线| 欧美va日韩va| 国产片一区二区三区| 精品一区二区成人精品| 一区二区三区在线视频观看| 国产精品成人一区二区三区夜夜夜| 久久久久久久电影| 精品sm捆绑视频| 亚洲国产精品二十页| 国产精品无圣光一区二区| 中文字幕永久在线不卡| 亚洲免费资源在线播放| 亚洲成人动漫精品| 美国十次了思思久久精品导航| 国产一区二区三区香蕉| 粉嫩一区二区三区性色av| 久久久久久**毛片大全| 奇米色777欧美一区二区| 亚洲国产精品一区二区久久恐怖片| 性做久久久久久免费观看| 日本欧美在线看| 成人教育av在线| 欧美日韩一区三区| 精品国产乱码久久久久久久| 国产精品国产自产拍高清av王其| 一区二区三区四区不卡在线| 首页亚洲欧美制服丝腿| 成人福利在线看| 制服丝袜在线91| 最新国产成人在线观看| 天使萌一区二区三区免费观看| 狠狠色综合色综合网络| 色天天综合久久久久综合片| 久久久久国产精品免费免费搜索| 日本一区二区免费在线| 亚洲影视在线播放| 韩国一区二区三区| 欧美在线一二三四区| 欧美va日韩va| 视频一区二区三区在线| 成人avav在线| 久久综合色综合88| 亚洲成人资源在线|