📄 node520.html
字号:
<html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4patched version by: Kenshi Muto, Debian Project.LaTeX2HTML 2002 (1.62),original version by: Nikos Drakos, CBLU, University of Leeds* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan* with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --><HTML><HEAD><TITLE>36.8 Putting together: a simple example</TITLE><META NAME="description" CONTENT="36.8 Putting together: a simple example"><META NAME="keywords" CONTENT="everything"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4"><META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"><LINK REL="STYLESHEET" HREF="everything.css" tppabs="http://www.isi.edu/nsnam/ns/doc/everything.css"><LINK REL="next" HREF="node521.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node521.html"><LINK REL="previous" HREF="node516.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node516.html"><LINK REL="up" HREF="node490.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node490.html"><LINK REL="next" HREF="node521.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node521.html"></HEAD><BODY ><!--Navigation Panel--><A NAME="tex2html9391" HREF="node521.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node521.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html9385" HREF="node490.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node490.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html9379" HREF="node519.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node519.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html9387" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html"><IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="file:/usr/share/latex2html/icons/contents.png"></A> <A NAME="tex2html9389" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html"><IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="file:/usr/share/latex2html/icons/index.png"></A> <BR><B> Next:</B> <A NAME="tex2html9392" HREF="node521.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node521.html">36.9 Http trace format</A><B> Up:</B> <A NAME="tex2html9386" HREF="node490.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node490.html">36. Web cache as</A><B> Previous:</B> <A NAME="tex2html9380" HREF="node519.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node519.html">36.7.1.0.2 OTcl methods</A>   <B> <A NAME="tex2html9388" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html9390" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <BR><BR><!--End of Navigation Panel--><H1><A NAME="SECTION07280000000000000000"></A><A NAME="sec:webcache-example"></A><BR>36.8 Putting together: a simple example</H1><P>We have seen all the pieces, now we present a script which provides acomplete view of all pieces together. First, we build topology and other usual initializations:<P><PRE> set ns [new Simulator] # Create topology/routing set node(c) [$ns node] set node(e) [$ns node] set node(s) [$ns node] $ns duplex-link $node(s) $node(e) 1.5Mb 50ms DropTail $ns duplex-link $node(e) $node(c) 10Mb 2ms DropTail $ns rtproto Session</PRE><P>Next we create the Http objects:<P><PRE> # HTTP logs set log [open "http.log" w] # Create page pool as a central page generator. Use PagePool/Math set pgp [new PagePool/Math] set tmp [new RandomVariable/Constant] ## Page size generator; $tmp set val_ 1024 ## average page size; $pgp ranvar-size $tmp set tmp [new RandomVariable/Exponential] ## Page age generator; $tmp set avg_ 5 ## average page age; $pgp ranvar-age $tmp set server [new Http/Server $ns $node(s)] ## Create a server and link it to the central page pool; $server set-page-generator $pgp $server log $log set cache [new Http/Cache $ns $node(e)] ## Create a cache; $cache log $log set client [new Http/Client $ns $node(c)] ## Create a client; set tmp [new RandomVariable/Exponential] ## Poisson process as request sequence; $tmp set avg_ 5 ## average request interval; $client set-interval-generator $tmp $client set-page-generator $pgp $client log $log set startTime 1 ## simulation start time; set finishTime 50 ## simulation end time; $ns at $startTime "start-connection" $ns at $finishTime "finish"</PRE> <P>Then we define a procedure which will be called after simulationstarts. The procedure will setup connections among all Http objects.<PRE> proc start-connection {} { global ns server cache client $client connect $cache $cache connect $server $client start-session $cache $server }</PRE> <P>At the end, the usual closing:<PRE> proc finish {} { global ns log $ns flush-trace flush $log close $log exit 0 } $ns run</PRE><P>This script is also available at /tcl/ex/simple-webcache.tcl. Examining its output <TT>http.log</TT>, one will find that the result of the absense cache consistency algorithm results in a lot of stale hits. This can be easily remedied by replacing ``new Http/Cache'' line with:<TT>set cache [new Http/Cache/TTL $ns $node(e)]</TT>. For more complicatedcache consistency algorithm examples, see /tcl/test/test-suite-webcache.tcl.<P><BR><HR><ADDRESS>2003-09-23</ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -