📄 node213.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>17.3.3 Detailed look at satellite links</TITLE><META NAME="description" CONTENT="17.3.3 Detailed look at satellite links"><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="previous" HREF="node212.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node212.html"><LINK REL="up" HREF="node210.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node210.html"><LINK REL="next" HREF="node214.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node214.html"></HEAD><BODY ><!--Navigation Panel--><A NAME="tex2html4543" HREF="node214.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node214.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html4537" HREF="node210.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node210.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html4533" HREF="node212.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node212.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html4539" 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="tex2html4541" 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="tex2html4544" HREF="node214.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node214.html">17.4 Commands at a</A><B> Up:</B> <A NAME="tex2html4538" HREF="node210.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node210.html">17.3 Implementation</A><B> Previous:</B> <A NAME="tex2html4534" HREF="node212.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node212.html">17.3.2 Node structure</A>   <B> <A NAME="tex2html4540" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html4542" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <BR><BR><!--End of Navigation Panel--><H2><A NAME="SECTION031433000000000000000">17.3.3 Detailed look at satellite links</A></H2><DIV ALIGN="CENTER"><A NAME="fig:sat-stack"></A><A NAME="7986"></A><TABLE><CAPTION ALIGN="BOTTOM"><STRONG>Figure 17.6:</STRONG>Detailed look at network interface stack.</CAPTION><TR><TD><DIV ALIGN="CENTER">sat-stack</DIV></TD></TR></TABLE></DIV><P>Figure <A HREF="node213.html#fig:sat-stack" tppabs="http://www.isi.edu/nsnam/ns/doc/node213.html#fig:sat-stack">17.6</A> provides a more detailed look at how satellite linksare composed. In this section, we describe how packets move up and downthe stack, and the key things to note at each layer. The file tcl/lib/ns-sat.tcl contains the various OTcl instprocs that assemblelinks according to Figure <A HREF="node213.html#fig:sat-stack" tppabs="http://www.isi.edu/nsnam/ns/doc/node213.html#fig:sat-stack">17.6</A>. We describe the compositestructure herein as a ``network stack.'' Most of the code for thevarious link components is in satlink.{cc,h}.<P>The entry point to a network stack is the <TT>SatLinkHead</TT> object. TheSatLinkHead object derives from <TT>Class LinkHead</TT>; the aim of linkhead objects is to provide a uniform API for all network stacks.<A NAME="tex2html41" HREF="footnode.html#foot7995" tppabs="http://www.isi.edu/nsnam/ns/doc/footnode.html#foot7995"><SUP>17.4</SUP></A> The SatLinkHead object contains pointers tothe LL, Queue, MAC, Error model, and both Phy objects. The SatLinkHeadobject can also be queried as to what type of network stack it is- e.g.,GSL, interplane ISL, crossseam ISL, etc.. Valid codes for the <TT>type_</TT> field are currently found in sat.h. Finally, the SatLinkHeadstores a boolean variable <TT>linkup_</TT> that indicates whetherthe link to at least one other node on the channel is up. The C++implementation of SatLinkHead is found in satlink.{cc,h}.<P>Packets leaving a node pass through the SatLinkHead transparently to the <TT>class SatLL</TT> object. The SatLL class derives from LL (link layer).Link layer protocols (like ARQ protocols) can be defined here. The currentSatLL assigns a MAC address to the packet. Note that in the satellite case,we do not use an Address Resolution Protocol (ARP); instead, we simply usethe MAC <TT>index_</TT> variable as its address, and we use a helper functionto find the MAC address of the corresponding interface of the next-hop node. Since <TT>class LL</TT> derives from <TT>class LinkDelay</TT>, the <TT>delay_</TT>parameter of LinkDelay can be used to model any processing delay in thelink layer; by default this delay is zero.<P>The next object an outgoing packet encounters is the interface queue. However, if tracing is enabled, tracing elements may surround thequeue, as shown in Figure <A HREF="node213.html#fig:sat-stack" tppabs="http://www.isi.edu/nsnam/ns/doc/node213.html#fig:sat-stack">17.6</A>. This part of a satellitelink functions like a conventional link.<P>The next layer down is the MAC layer. The MAC layer draws packets fromthe queue (or deque trace) object- a handshaking between the MAC and the queue allows the MAC to draw packets out of the queue as it needs them. Thetransmission time of a packet is modelled in the MAC also- the MAC computesthe transmission delay of the packet (based on the sum of the LINK_HDRSIZE field defined in <TT>satlink.h</TT> and the <TT>size</TT> field in the common packet header), and does not call up for another packet untilthe current one has been ``sent'' to the next layer down. Therefore, itis important to set the bandwidth of the link correctly at this layer.For convenience, the transmit time is encoded in the <TT>mac</TT> header; thisinformation can be used at the receiving MAC to calculate how long it mustwait to detect a collision on a packet, for example.<P>Next, the packet is sent to a transmitting interface (Phy_tx) of class <TT>SatPhy</TT>. Thisobject just sends the packet to the attached channel. We noted earlierin this chapter that all interfaces attached to a channel are part of thelinked list for that channel. This is not true for transmit interfaces,however. Only receive interfaces attached to a channel comprise this linkedlist, since only receive interfaces should get a copy of transmitted packets.The use of separate transmit and receive interfaces mirrors the real worldwhere full-duplex satellite links are made up of RF channels at differentfrequencies.<P>The outgoing packet is next sent to a <TT>SatChannel</TT>, which copies thepacket to every receiving interface (of class <TT>SatPhy</TT>) on the channel. The Phy_rx sends the packet to the MAC layer. At the MAC layer, the packetis held for the duration of its transmission time (and any appropriatecollision detection is performed if the MAC, such as the Aloha MAC,supports it). If the packet is determined to have arrived safely at the MAC,it next passes to an <TT>ErrorModel</TT> object, if it exists. If not, thepacket moves through any receive tracing objects to the <TT>SatLL</TT>object. The SatLL object passes the packet up after a processing delay(again, by default, the value for <TT>delay_</TT> is zero).<P>The final object that a received packet passes through is an object of<TT>class NetworkInterface</TT>. This object stamps the <TT>iface_</TT> fieldin the common header with the network stack's unique index value. Thisis used to keep track of which network stack a packet arrived on. Thepacket then goes to the <TT>entry</TT> of the SatNode (usually, an addressclassifier). <P>Finally, ``geo-repeater'' satellites exist, as described earlier in thischapter. Geo-repeater network stacks are very simple- they only containa Phy_tx and a Phy_rx of <TT>class RepeaterPhy</TT>, and a SatLinkHead. Packets received by a Phy_rx are sent to the Phy_tx without delay. Thegeo-repeater satellite is a degenerate satellite node, in that it does notcontain things like tracing elements, handoff managers, routing agents, or any other link interfaces other than repeater interfaces.<P><HR><!--Navigation Panel--><A NAME="tex2html4543" HREF="node214.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node214.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html4537" HREF="node210.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node210.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html4533" HREF="node212.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node212.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html4539" 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="tex2html4541" 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="tex2html4544" HREF="node214.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node214.html">17.4 Commands at a</A><B> Up:</B> <A NAME="tex2html4538" HREF="node210.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node210.html">17.3 Implementation</A><B> Previous:</B> <A NAME="tex2html4534" HREF="node212.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node212.html">17.3.2 Node structure</A>   <B> <A NAME="tex2html4540" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html4542" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <!--End of Navigation Panel--><ADDRESS>2003-09-23</ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -