📄 node154.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>14.5.4 CSMA-based MAC</TITLE><META NAME="description" CONTENT="14.5.4 CSMA-based MAC"><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="node153.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node153.html"><LINK REL="up" HREF="node150.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node150.html"><LINK REL="next" HREF="node155.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node155.html"></HEAD><BODY ><!--Navigation Panel--><A NAME="tex2html3648" HREF="node155.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node155.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html3642" HREF="node150.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node150.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html3638" HREF="node153.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node153.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html3644" 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="tex2html3646" 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="tex2html3649" HREF="node155.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node155.html">14.6 LL (link-layer) Class</A><B> Up:</B> <A NAME="tex2html3643" HREF="node150.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node150.html">14.5 MAC Class</A><B> Previous:</B> <A NAME="tex2html3639" HREF="node153.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node153.html">14.5.3 Mac Class in</A>   <B> <A NAME="tex2html3645" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html3647" 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="SECTION031154000000000000000">14.5.4 CSMA-based MAC</A></H2><P>The CsmaMac../ns-2/mac-csma.cc extends the <TT>Mac</TT> classwith new methods that implements carrier sense and backoff mechanisms.The <TT>CsmaMac::send()</TT> method detects when the channel becomes idleusing <TT>Channel::txtime()</TT>. If the channel is busy, the MACschedules the next carrier sense at the moment the channel turns idle.Once the channel is idle, the <TT>CsmaMac</TT> object initiates thecontention period with <TT>Channel::contention()</TT>. At the end of thecontention period, the <TT>endofContention()</TT> method is invoked. Atthis time, the basic <TT>CsmaMac</TT> just transmits the packet using<TT>Channel::send</TT>.<P><PRE> class CsmaMac : public Mac { public: CsmaMac(); void send(Packet* p); void resume(Packet* p = 0); virtual void endofContention(Packet* p); virtual void backoff(Handler* h, Packet* p, double delay=0); . . . }; class CsmaCdMac : public CsmaMac { public: CsmaCdMac(); void endofContention(Packet*); }; class CsmaCaMac : public CsmaMac { public: CsmaCaMac(); virtual void send(Packet*); };</PRE><P>The <TT>CsmaCdMac</TT> extends <TT>CsmaMac</TT> to carry out collisiondetection procedure of the CSMA/CD (Ethernet) protocol. When thechannel signals the end of contention period, the <TT>endofContention</TT>method checks for collision using the <TT>Channel::collision()</TT>method. If there is a collision, the MAC invokes its <TT>backoff</TT>method to schedule the next carrier sense to retransmit the packet.<P>The <TT>CsmaCaMac</TT> extends the <TT>send</TT> method of <TT>CsmaMac</TT> tocarry out the collision avoidance (CSMA/CA) procedure. Instead oftransmitting immediately when the channel is idle, the <TT>CsmaCaMac</TT>object backs off a random number of slots, then transmits if the channelremains idle until the end of the backoff period.<P><HR><!--Navigation Panel--><A NAME="tex2html3648" HREF="node155.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node155.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html3642" HREF="node150.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node150.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html3638" HREF="node153.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node153.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html3644" 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="tex2html3646" 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="tex2html3649" HREF="node155.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node155.html">14.6 LL (link-layer) Class</A><B> Up:</B> <A NAME="tex2html3643" HREF="node150.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node150.html">14.5 MAC Class</A><B> Previous:</B> <A NAME="tex2html3639" HREF="node153.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node153.html">14.5.3 Mac Class in</A>   <B> <A NAME="tex2html3645" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html3647" 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 + -