<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2015.31001</article-id><article-id pub-id-type="publisher-id">JCC-53493</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  MAC Throughput Improvement Using Adaptive Contention Window
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>hun-Liang</surname><given-names>Lin</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Wei-Ting</surname><given-names>Chang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Min-Huei</surname><given-names>Lu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Electrical Engineering, National Chung Hsing University, Taichung, Taiwan</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>chunlin@dragon.nchu.edu.tw(HL)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>23</day><month>01</month><year>2015</year></pub-date><volume>03</volume><issue>01</issue><fpage>1</fpage><lpage>14</lpage><history><date date-type="received"><day>2</day>	<month>January</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>19</month>	<year>January</year>	</date><date date-type="accepted"><day>23</day>	<month>January</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  HomePlug AV (HPAV) is a standard developed by HomePlug Powerline Alliance (HPA) for power line communication. In HomePlug AV, it uses a technology named Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) to reduce collision happened in network. However, when network nodes increase, the contention window number may not be wide enough. It will cause collision probability to increase. In this paper, we introduce a new idea of adaptive contention window which will produce suitable contention window under actual network environment. Our method only requires the information of CSMA/CA parameters. It means that one doesn’t need to correct the original CSMA/CA procedure but substitutes old parameters by the new ones. Simulation experiments conducted in the network simulator NS3 show that compared with HomePlug AV, our method promotes throughput significantly when the node number increases.
 
</p></abstract><kwd-group><kwd>CSMA/CA</kwd><kwd> Contention Window</kwd><kwd> Power Line Communication</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Power-Line Communication (PLC) is developed rapidly in recent years. Because it doesn’t need to build additional transmit channel and exists almost everywhere even in the backward areas, it is mostly recognized as the solution of “last mile” to the current network communication. Since power line was not originally built for information transmission, there are several problems. One of these is the data collision. When channel transmits multiple packets at the same time, packets will collide naturally causing packets to be destroyed. The station has to retransmit packets which will cause throughput decrease in the end. Thus, HomePlug AV [<xref ref-type="bibr" rid="scirp.53493-ref1">1</xref>] uses CSMA/CA [<xref ref-type="bibr" rid="scirp.53493-ref2">2</xref>] to avoid collision happening. The principle is as follows: each time the station tries to send package, it will detect channel’s status. If the channel is idle, the station sends the packets. Otherwise, it goes into the contention mode. This method can avoid too many stations transmitting at a time hence to effectively reduce the chance of data collision.</p><p>A PLC architecture consists of head end (HE) and user modem. HE erects at the transformer side and one side is connected to the transmission backbone, like Ethernet. Another side is connected to the power line to receive request from PLC users. The user modem connects to the communication equipment to communicate through the power line. If a PLC modem accesses the Internet, it will receive packets from the head end through the power line.</p><p>Although HomePlug AV standard can guarantee high throughput when the number of nodes is very limited, when the node number increases, the value of contention window setting in HomePlug AV will be big which leads throughput to decrease accordingly. In [<xref ref-type="bibr" rid="scirp.53493-ref3">3</xref>] , information theory and data mining technique were applied for network traffic profiling. Some research tasks focused on enhancing throughput via the revised MAC layers [<xref ref-type="bibr" rid="scirp.53493-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.53493-ref4">4</xref>] - [<xref ref-type="bibr" rid="scirp.53493-ref8">8</xref>] . Among which, the authors of [<xref ref-type="bibr" rid="scirp.53493-ref3">3</xref>] proposed an adaptive contention window mechanism for HomePlug AV and verified their designs through experiments. They have conducted an experiment to reach the best successful transmission number in a beacon period. That is, if the number of successful transmits is less than the optimal one, it means that the current contention window size is inappropriate. It will then change it in the next beacon period. In 2011, the authors of [<xref ref-type="bibr" rid="scirp.53493-ref4">4</xref>] found the optimal contention window value for the situation of different nodes. Both of them show that throughput can be improved in an efficient manner if the size of contention window is optimized.</p><p>Even though previous research can achieve the desired effect, most of them require information of all stations. That means that they need another bit to transmit that information to each node. Or, they have to modify the protocol. In this research, we propose a new strategy of an adaptive contention window mechanism that doesn’t change the original CSMA/CA procedure or require station’s information as a basis of modifying the contention window size. Our correction factor includes the CSMA/CA parameters. Soft experiments at the network simulator, NS3, show the improved effect in throughput.</p></sec><sec id="s2"><title>2. Principles of CSMA/CA</title><p>For PLC, when a station tries to send a packet, it first checks the channel condition. If the channel is in idle, it transmits data accordingly. Otherwise, it enters the contention mode. The contention period is a region to contend the authority of using channel by other stations.</p><p>Before going into the contention period, the station will allocate each packet priority. Packets with higher priority use the channel first. If there are several packets possessing the same priority, it will become the contention period. In priority resolution, HPAV define four parameters, CA0, CA1, CA2 and CA3. CA3 present the highest priority, and CA0 is the lowest, etc. Each station will be defined the packet’s priority in two priority regions denoted PRS0 and PRS1 respectively. At each PRSi, the station chooses to send or not to send signals. According to the PRS, we can determine the packet’s priority level. Different priority level corresponds to different parameter settings. <xref ref-type="table" rid="table1">Table 1</xref> shows the role of it.</p><p>After implementing the setting of priority, each station equips with a specific packet priority level. Higher priority level wins the contention and possesses more chances to send the packet. If there are several stations with the same priority, it will proceed to the next stage-random backoff procedure.</p><p>For the random backoff procedure, we first introduce contention window and three counters, backoff counter, deferral counter and backoff procedure counter.</p><p>1) Contention window (CW): Contention window is a fixed number defined in <xref ref-type="table" rid="table2">Table 2</xref>. It is used to determine the value of backoff counters.</p><p>2) Backoff counter (BC): Backoff counter’s value chooses from a random value of contention window. It means that CW is the maximal value of BC could be. BC will be decreased by one, each time when it senses a busy status in the channel until BC equals to zero. The station will transmit the packet.</p><p>3) Deferral counter (DC): When the number of users in the local area network is large, using only BC to delay the transmission time is not enough. Deferral counter is used to avoid collision further. At the beginning, DC is fixed. Different CAs have different initial values of DC corresponding to. If the channel status sensed is idle, DC remains unchanged. On the contrary, if it is busy, DC will be decreased by one. When DC reaches to zero, the time contention is declared “fail”. It will restart contention again.</p><p>4) Backoff procedure counter (BPC): Backoff procedure counter is set to be zero initially. When the station</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Relationship between PRS and CA</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  ></th><th align="center" valign="middle"  colspan="2"  >Low priority</th><th align="center" valign="middle"  colspan="2"  >High priority</th></tr></thead><tr><td align="center" valign="middle" >CA0</td><td align="center" valign="middle" >CA1</td><td align="center" valign="middle" >CA2</td><td align="center" valign="middle" >CA3</td></tr><tr><td align="center" valign="middle" >PRS0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >PRS1</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Parameter setting</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >BPC</th><th align="center" valign="middle"  colspan="2"  >CA</th></tr></thead><tr><td align="center" valign="middle" >CA3, CA2 High priority</td><td align="center" valign="middle" >CA1, CA0 Low priority</td></tr><tr><td align="center" valign="middle" >BPC = 0</td><td align="center" valign="middle" >DC = 0 CW = 7</td><td align="center" valign="middle" >DC = 0 CW = 7</td></tr><tr><td align="center" valign="middle" >BPC = 1</td><td align="center" valign="middle" >DC = 1 CW = 15</td><td align="center" valign="middle" >DC = 1 CW = 15</td></tr><tr><td align="center" valign="middle" >BPC = 2</td><td align="center" valign="middle" >DC = 3 CW = 15</td><td align="center" valign="middle" >DC = 3 CW = 31</td></tr><tr><td align="center" valign="middle" >BPC ≥ 3</td><td align="center" valign="middle" >DC = 15 CW = 31</td><td align="center" valign="middle" >DC = 15 CW = 63</td></tr></tbody></table></table-wrap><p>fails to transmit packets (happened collision). Station will attempt to contend again and BPC will be increased by one. According to different BPC, there are different DC and CW settings to respond.</p><p>We express the behavior through Markov chain [<xref ref-type="bibr" rid="scirp.53493-ref4">4</xref>] in <xref ref-type="fig" rid="fig1">Figure 1</xref>. Each time we begin the backoff procedure by setting the same probability to obtain the value of BC from zero to CW (=W). Therefore, each probability at the top statement is 1/W. At each time slot (defined in HPAV is 35.85 ms), the station will detect the communication channel. The probability is P to sense an “busy”, and it is 1 − P to sense a “idle”. When DC or BC is equal to zero but the channel status sensed is still in busy. BPC will be increased by one and BC will be rechosen. That means that there are too many users occupying the channel. Then, DC and BC need to be increased for longer waiting time for collision avoidance. When BC reaches to zero and the channel status sensed is idle, the station can then transmit packets. The complete flow chart is illustrated in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p><p>The time of successful transmission can be expressed as in <xref ref-type="fig" rid="fig3">Figure 3</xref>. PRS0 and PRS1 are regions to decide packets priority, a contention region refer to the waiting time of the contended channel before transmitting packets, data transmission is the time of packets sent in the PHY layer; RIFS refers to the time before sending acknowledgement, ACK is the time of transmitting acknowledgement, and CIFS is time before starting the next packet. Among which, PRS0, PRS1, RIFS, ACKS, and CIFS are fixed numbers in HomePlug AV, see <xref ref-type="table" rid="table3">Table 3</xref>.</p></sec><sec id="s3"><title>3. Slot Utilization and Relation with Throughput</title><p>Referring to <xref ref-type="fig" rid="fig3">Figure 3</xref>, we define <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x5.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x6.png" xlink:type="simple"/></inline-formula> respectively, the time required for a successful data transmission and the time for a collision happened during data transmission. The two terms can be expressed by</p><disp-formula id="scirp.53493-formula1"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x7.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x8.png" xlink:type="simple"/></inline-formula> is the total slot time in the contention region and</p><disp-formula id="scirp.53493-formula2"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x9.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.53493-formula3"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x10.png"  xlink:type="simple"/></disp-formula><p>If we define <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x11.png" xlink:type="simple"/></inline-formula> as the probability of slot sensed in busy. From [<xref ref-type="bibr" rid="scirp.53493-ref2">2</xref>] , <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x12.png" xlink:type="simple"/></inline-formula>can be expressed by</p><disp-formula id="scirp.53493-formula4"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x13.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x14.png" xlink:type="simple"/></inline-formula> is the probability of the station transmitted in a slot and n is the number of stations. Since P<sub>b</sub> reflects</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Markov chain of CSMA/CA</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x15.png"/></fig><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Operational flow chart of the CSMA/CA procedure</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x16.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> The process for a successful transmission</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x17.png"/></fig><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> HPAV system parameters</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Parameters</th><th align="center" valign="middle" >Time</th></tr></thead><tr><td align="center" valign="middle" >Beacon period</td><td align="center" valign="middle" >33.33 ms</td></tr><tr><td align="center" valign="middle" >CIFS</td><td align="center" valign="middle" >100 μs</td></tr><tr><td align="center" valign="middle" >RIFS</td><td align="center" valign="middle" >30.72 μs</td></tr><tr><td align="center" valign="middle" >PRS0</td><td align="center" valign="middle" >35.84 μs</td></tr><tr><td align="center" valign="middle" >PRS1</td><td align="center" valign="middle" >35.84 μs</td></tr><tr><td align="center" valign="middle" >Slot time</td><td align="center" valign="middle" >35.84 μs</td></tr><tr><td align="center" valign="middle" >MAX_FL</td><td align="center" valign="middle" >2501.12 μs</td></tr><tr><td align="center" valign="middle" >Response tineout</td><td align="center" valign="middle" >140.48 μs</td></tr></tbody></table></table-wrap><p>the probability of channel in busy status, it can also be defined as</p><disp-formula id="scirp.53493-formula5"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x18.png"  xlink:type="simple"/></disp-formula><p>This is also referred as “slot utilization” [<xref ref-type="bibr" rid="scirp.53493-ref9">9</xref>] .</p><p>We conduct several extensive simulation experiments on the Network Simulator 3 (NS3) [<xref ref-type="bibr" rid="scirp.53493-ref10">10</xref>] . NS3 is an event driver developed to mimic network environment. Compared with its predecessor NS2, NS3 is completely developed by C++ and the system architecture is simpler than that of NS2. We record slot utilization every 30 seconds at various node arrangement. There are four CW cases in the simulation. The results are shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>(a) where T<sub>s</sub> defined in Equation (1) is set to be 3500 μs and the slot time is similar to that defined in <xref ref-type="table" rid="table3">Table 3</xref>.</p><p>In <xref ref-type="fig" rid="fig4">Figure 4</xref>(a), red line refers to HomePlug AV standard which let CW = [7 15 31 63]. Other lines are the situation with different CW values. When CW is set to be larger, the probability for obtaining a larger BC is higher. Correspondingly, its slot utilization is comparatively smaller. However, even the CW setting is as such, the slot utilization increases continuously. This fact inspires us to consider whether one can use slot utilization to relate the congestion level. Another simulation been conducted is to observe the variation of throughput at the same setting, illustrated as in <xref ref-type="fig" rid="fig4">Figure 4</xref>(b).</p><p>In <xref ref-type="fig" rid="fig4">Figure 4</xref>(b), HomePlug AV standard has the highest throughput when the number of contention nodes is small. However, when the node number increases, the throughput will decrease because of the higher collision probability. On the contrary, CW = [63 127 255 511] setting possesses the worst throughput at the beginning. That’s because it wastes too much time in the idle slot. However, it will cause low collision probability when the node number becomes larger. This why it possesses highest throughput when the node number is more than 35.</p><p>Therefore, if one can assign the system a low CW setting when the node number is few and a high CW when the node number is large then better throughput could be expected. This is the basic idea behind the adaptive contention window mechanism proposed in this research.</p><p>To compare <xref ref-type="fig" rid="fig4">Figure 4</xref>(a) and <xref ref-type="fig" rid="fig4">Figure 4</xref>(b), from the node number 5 to 12, CW = [15 31 63 127] has the highest throughput. From 13 to 35 nodes, CW = [31 63 127 255] possesses the highest throughput. After 35, CW = [63 127 255 511] has the highest throughput. Most of their slot utilization are in 0.1 ~ 0.2 when they possess the highest throughput. One can thus infer that the value of slot utilization in 0.1 ~ 0.2 would be the best setting in this case.</p><fig-group id="fig4"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Simulation on different CW setting: (a) Slot utilization; (b) Throughput.</title></caption><fig id ="fig4_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x19.png"/></fig><fig id ="fig4_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x20.png"/></fig></fig-group><p>In summary, if one can control slot utilization in an appropriate region then better throughput could be expected.</p></sec><sec id="s4"><title>4. Adaptive Contention Window Mechanism</title><p>From [<xref ref-type="bibr" rid="scirp.53493-ref11">11</xref>] , it was known that when <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x21.png" xlink:type="simple"/></inline-formula> defined in Equation (3) as the following way, throughput of the network will exhibit the best performance:</p><disp-formula id="scirp.53493-formula6"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x22.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x23.png" xlink:type="simple"/></inline-formula> is the average time of collision transmission <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x24.png" xlink:type="simple"/></inline-formula> in the slot time <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x25.png" xlink:type="simple"/></inline-formula> as</p><disp-formula id="scirp.53493-formula7"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x26.png"  xlink:type="simple"/></disp-formula><p>Substituting Equation (6) into Equation (5) yields the new <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x27.png" xlink:type="simple"/></inline-formula> as</p><disp-formula id="scirp.53493-formula8"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x28.png"  xlink:type="simple"/></disp-formula><p>Substituting Equation (7) into Equation (3) gives the optimal slot utilization which will lead to the optimal throughput. We set this optimal slot utilization as the standard which is expressed as<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x29.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.53493-formula9"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x30.png"  xlink:type="simple"/></disp-formula><p>where<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x31.png" xlink:type="simple"/></inline-formula>.</p><p>After recognized data received, every station records the slot utilization by using Equation (4) for the last successful transmission packet. If slot utilization of the last packet is greater than<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x32.png" xlink:type="simple"/></inline-formula>, it means that the current contention window is not big enough which may cause the congestion. It will assign the system a larger contention window. Otherwise, it will adjust the contention window for reduction. Our adaptive contention window architecture can be illustrated as in <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><p>In this figure, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x33.png" xlink:type="simple"/></inline-formula>is expressed as slot utilization of the last packet. By the revised function-<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x34.png" xlink:type="simple"/></inline-formula>, it converts the slot utilization to a revising factor to multiply the original contention window (CW = [7 15 31 63]). That is, the contention window of the next packet will be changed to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x34.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x35.png" xlink:type="simple"/></inline-formula>.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> System architecture of the proposed adaptive contention window mechanism</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x36.png"/></fig><p>We suppose that the revised function <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula> is given in the form shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>. While the slot utilization is in between <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x38.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x39.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x40.png" xlink:type="simple"/></inline-formula>appears as a linear positive gain. Since CW = [7 15 31 63] is originally suitable for the case with only a few nodes, it doesn’t need to be small when the slot utilization is apparently too small. Therefore, we set <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x41.png" xlink:type="simple"/></inline-formula> to be 1. On the other hand, we define M as the expression of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x38.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x41.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x42.png" xlink:type="simple"/></inline-formula> to be a variable.</p><p>Assume <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x43.png" xlink:type="simple"/></inline-formula> is expressed by the following form when <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x44.png" xlink:type="simple"/></inline-formula> is in between <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x45.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x45.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x46.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.53493-formula10"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x47.png"  xlink:type="simple"/></disp-formula><p>Substituting <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x48.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x48.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x49.png" xlink:type="simple"/></inline-formula> into Equation (9) yields m and k as</p><disp-formula id="scirp.53493-formula11"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x50.png"  xlink:type="simple"/></disp-formula><p>Finally, we obtain the complete form of the revised function<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x51.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.53493-formula12"><label>(10)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x52.png"  xlink:type="simple"/></disp-formula><p>The main idea here is to incorporate slot utilization to determine congestion level of the network. However, slot utilization determined by Equation (4) leads to a large alteration if the last packet is successfully transmitted at BPC = 0 (<xref ref-type="table" rid="table2">Table 2</xref>). Under this situation, it will bring the next packet with incorrect information in the congestion level. To tackle, we propose a virtual slot utilization instead of the previous slot utilization. A virtual slot utilization will lie in between <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x53.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x53.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x54.png" xlink:type="simple"/></inline-formula>. The neighboring two packets will not exhibit large difference virtual slot utilization. The virtual slot utilization comes from the following process.</p><p>We define <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x55.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x55.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x56.png" xlink:type="simple"/></inline-formula> as the virtual slot utilization of the packets m and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x55.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x57.png" xlink:type="simple"/></inline-formula>, respectively and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x55.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x56.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x57.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x58.png" xlink:type="simple"/></inline-formula> is the slot utilization of the packet m, shown as in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>The packet m + 1 uses <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x59.png" xlink:type="simple"/></inline-formula> as the previous slot utilization which adopts Equation (10) to obtain the revising factor as its contention window. <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x59.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x60.png" xlink:type="simple"/></inline-formula>is obtained by the previous packet’s virtual slot utilization <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x59.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x61.png" xlink:type="simple"/></inline-formula></p><p>and the slot utilization of the packet m. If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula>will be <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula> to increase the revising factor. If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x65.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x66.png" xlink:type="simple"/></inline-formula>will be<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x67.png" xlink:type="simple"/></inline-formula>. If<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x68.png" xlink:type="simple"/></inline-formula>, set<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x64.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x65.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x66.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x67.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x69.png" xlink:type="simple"/></inline-formula>. We replace the slot utilization by the virtual slot utilization according to Equation (10):</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Correction factor of the contention window<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x71.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x70.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Sketch of slot utilization <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x73.png" xlink:type="simple"/></inline-formula> and virtual slot utilization<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x73.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x74.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x72.png"/></fig><disp-formula id="scirp.53493-formula13"><label>(11)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x75.png"  xlink:type="simple"/></disp-formula><p>By this process, every station CW will reach to a region which the probability of every station transmitting packets will be close. The revising factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x76.png" xlink:type="simple"/></inline-formula> will be increasing continuously when <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x76.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x77.png" xlink:type="simple"/></inline-formula> as well.</p><p>While the previous method works in an efficient way, there is a weakness, i.e. the contention window mechanism shows lower throughput when the node number is few. That’s because if we modify the contention window at BPC = 0 by the previous method, it tends to prompt a larger revising factor when the node number is few. Thus, it still exhibits a large contention window causing lower throughput. It is expected that, at each time instant, ρ could really reflect the previous congestion level. Thus, when n is large, we don’t want the station transmits at the first contention period time. It means that one still needs a larger CW at BPC = 0 when the node number is large. Therefore, one has to define an updated revising factor for the state BPC = 0.</p><p>Unlike the revising factor characterized in <xref ref-type="fig" rid="fig5">Figure 5</xref> using a simple multiplication to modify the contention window, the revising factor at BPC = 0 should be updated in the way of addition. Comparing to the multiplication operation, the amount of addition should be smaller. It will be more suitable for the case of BPC = 0 since its deferral counter is 0.</p><p>The modification is to introduce a correction factor<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x78.png" xlink:type="simple"/></inline-formula>, say</p><disp-formula id="scirp.53493-formula14"><label>(12)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730160x79.png"  xlink:type="simple"/></disp-formula><p>where the operator<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x80.png" xlink:type="simple"/></inline-formula>. By this way, we obtain an integer<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x80.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x81.png" xlink:type="simple"/></inline-formula>, with its values in between 1 to 4, to indicate the congestion level.</p><p>Next, we record the counter of the backoff procedure of the last packet, denoted<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x82.png" xlink:type="simple"/></inline-formula>. To proceed, set the maximum value of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x82.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x83.png" xlink:type="simple"/></inline-formula> to be 3 and define</p><disp-formula id="scirp.53493-formula15"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x84.png"  xlink:type="simple"/></disp-formula><p>Therefore, the value of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x85.png" xlink:type="simple"/></inline-formula> will be from 1 to 4. Combining <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x85.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x86.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x85.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x86.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x87.png" xlink:type="simple"/></inline-formula> forms a congestion level indicator as</p><disp-formula id="scirp.53493-formula16"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x88.png"  xlink:type="simple"/></disp-formula><p>where <xref ref-type="table" rid="table4">Table 4</xref> lists all possible values of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x89.png" xlink:type="simple"/></inline-formula>.</p><p>We choose <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x90.png" xlink:type="simple"/></inline-formula> as our revising factor when BPC = 0. By this process, the station will has less probability to transmit at the first round in the backoff region when the node number is large. It doesn’t influence throughput when the node number is fewer.</p><p>The complete design process of our adaptive contention window process can be summarized as follows:</p><p>Step 1: Based on the given slot time<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x91.png" xlink:type="simple"/></inline-formula>, collision transmission time <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x92.png" xlink:type="simple"/></inline-formula> and node number n obtain <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x91.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x92.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x93.png" xlink:type="simple"/></inline-formula> as</p><disp-formula id="scirp.53493-formula17"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x94.png"  xlink:type="simple"/></disp-formula><p>Step 2: Define the revising factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x95.png" xlink:type="simple"/></inline-formula> by<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x95.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x96.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.53493-formula18"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x97.png"  xlink:type="simple"/></disp-formula><p>Step 3: Count the idle and busy slot numbers of the last transmission packet to obtain the virtual slot utilization:</p><disp-formula id="scirp.53493-formula19"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x98.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.53493-formula20"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x99.png"  xlink:type="simple"/></disp-formula><p>Step 4: Specify the revising factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x100.png" xlink:type="simple"/></inline-formula> when BPC = 0 in <xref ref-type="table" rid="table2">Table 2</xref>:</p><disp-formula id="scirp.53493-formula21"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x101.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.53493-formula22"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x102.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.53493-formula23"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x103.png"  xlink:type="simple"/></disp-formula><p>Step 5: Update the contention window via:</p><p>1) Backoff procedure is at BPC = 0:</p><disp-formula id="scirp.53493-formula24"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x104.png"  xlink:type="simple"/></disp-formula><p>2) Backoff procedure is at BPC &gt; 0:</p><disp-formula id="scirp.53493-formula25"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x105.png"  xlink:type="simple"/></disp-formula><p>So far, our focus is only in own station. However, the station number in Equation (8) is not fixed which is unknown in general. To resolve this problem, we calculate P<sub>b.opt</sub> <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x106.png" xlink:type="simple"/></inline-formula> with different n, see <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p><p>When the node number is in 1 ~ 200, its value will not significantly affect<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x107.png" xlink:type="simple"/></inline-formula>. To prove the node numbers will not influence <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x107.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x108.png" xlink:type="simple"/></inline-formula> further, we calculate the sensitivity when n is larger than 200.</p><p>Define<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x109.png" xlink:type="simple"/></inline-formula>. It follows that the sensitivity function of P<sub>b.opt</sub> with respect to the node number n is given by</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> List of the values of ω</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x110.png" xlink:type="simple"/></inline-formula></th><th align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x111.png" xlink:type="simple"/></inline-formula></th><th align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x112.png" xlink:type="simple"/></inline-formula></th><th align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x113.png" xlink:type="simple"/></inline-formula></th><th align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x114.png" xlink:type="simple"/></inline-formula></th></tr></thead><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x115.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x116.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >16</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x117.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >27</td><td align="center" valign="middle" >81</td></tr><tr><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x118.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >64</td><td align="center" valign="middle" >256</td></tr></tbody></table></table-wrap><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Variation of P<sub>b.opt</sub> on different node numbers</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x119.png"/></fig><disp-formula id="scirp.53493-formula26"><graphic  xlink:href="http://html.scirp.org/file/1-1730160x120.png"  xlink:type="simple"/></disp-formula><p>When n &gt; 200, the terms <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x121.png" xlink:type="simple"/></inline-formula> and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x121.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x122.png" xlink:type="simple"/></inline-formula> will be smaller than 1. However, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x121.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x122.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x123.png" xlink:type="simple"/></inline-formula>. Thus,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x121.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x122.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x123.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x124.png" xlink:type="simple"/></inline-formula>.</p><p>In the following study, the network node number n is set to be 10. Furthermore, if we consider CW = [127 255 511 1023] as the largest contention window, which will be approximately 15 times to the case of CW = [7 15 31 63], then we set the maximum revising function M to be 15.</p><p>The operational flow chart of the updated adaptive contention window mechanism is illustrated in <xref ref-type="fig" rid="fig9">Figure 9</xref>.</p></sec><sec id="s5"><title>5. Experimental Results</title><p>The goal of this research is to acquire higher throughput while maintaining slot utilization. The simulation experiments have been conducted at the network simulator NS3. We set <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x125.png" xlink:type="simple"/></inline-formula> to be 35.84 μs which remains the same as in HomePlug AV. Simulation study is mainly conducted for different T<sub>s</sub> and CW.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>0(a) shows slot utilization for various CW settings. No matter HomePlug AV standard or other CW settings, their slot utilizations exhibit large variations when the number of nodes increases. However, there is</p><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Operational flow chart of the proposed adaptive CW mechanism</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x126.png"/></fig><p>only slight difference among different cases in our proposed approach. This result shows that our method is effectively to control slot utilization. Even for a large scale network, it shows no significant difference.</p><p>After verifying slot utilization, the main point of this research is to get better throughput on the large scale network.</p><p>We prove in the follows that the proposed approach exhibits the best throughput performance while comparing to other fixed CW settings.</p><p>Including the original HomePlug AV (CW = [7 15 31 63]). All packets are supposed to possess the same priority and all stations are on the saturated situation which means that all stations have packets to transmit at all time. We record the average throughput every 30 seconds for each condition.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>0(b) shows throughput of various CW settings with T<sub>s</sub> equal to 3500 μs. HomePlug AV standard exhibits the highest throughput at the beginning. When the node number becomes large, HomePlug AV standard’s CW setting is not big enough because its throughput decreases seriously. On the other hand, CW = [63 127 255 511] has the lowest throughput at the beginning because the system wastes too much time on the idle slots. However, it rises subsequently when the node number become large. Our method shows the highest at all time since its CW setting is not fixed. When the node number is relatively few, it uses a small CW. When the node number increases, it automatically increases the CW value accordingly. Thus, when the node number becomes large, it still exhibits low probability in network collision. That’s why it can keep high throughput of the network over the whole communication time. This is as expected before. <xref ref-type="fig" rid="fig1">Figure 1</xref>0(c) shows that when the node</p><fig-group id="fig10"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Various CW settings in different simulation cases: (a) Slot utilization; (b) Throughput (T<sub>s</sub> = 3500 μs); (c) Throughput (large node number and large CW); (d) Throughput (T<sub>s</sub> = 5500 μs).</title></caption><fig id ="fig10_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x127.png"/></fig><fig id ="fig10_2"><label>(c)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x128.png"/></fig><fig id ="fig10_3"><label> (d)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x129.png"/></fig><fig id ="fig10_4"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x130.png"/></fig></fig-group><p>number is increased to 95, it performs as the cases of CW = [127 255 511 1023] in the simulation study. The simulation result shows that when the node number approaches to a large value, throughput will converge to a small region. Thus, setting an extremely large CW doesn’t bring positive effect. That’s also the reason that we set a limit to<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730160x131.png" xlink:type="simple"/></inline-formula>.</p><p>To prove performance robustness of the present mechanism, we conduct experiments for different transmission time. <xref ref-type="fig" rid="fig1">Figure 1</xref>0(d) illustrates that throughput of the successful transmission time equals 5500 μs. This shows the similar result, our method performs the best at all time. From <xref ref-type="fig" rid="fig1">Figure 1</xref>0(b) and <xref ref-type="fig" rid="fig1">Figure 1</xref>0(d), it can be seen that if transmission time is less, the degree of CW affecting throughput is larger and our adaptive CW mechanism performs better than other cases as well.</p><p>We also verify the case when there is an abrupt change in the node number and examine if it still works. Consider the network has 40 nodes at the beginning. At 60 seconds, it reduces to 10 nodes. We compare the situation with 10 nodes at the beginning and record throughput at each second. The simulation result is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>1(a). It displays that after 60 seconds, throughput of the situation 1 has been improved and quickly approaches to the line of situation 2. This endorses performance robustness of our proposed mechanism</p><p>Finally, the number n in Equation (8) was changed to 10 at the previous simulation test. To prove that it won’t significantly alter the result, we conduct extra tests with the number of nodes n = 30 and compare it to the case of n = 10. See <xref ref-type="fig" rid="fig1">Figure 1</xref>1(b) for the result. It clearly shows that the value of n doesn’t significantly affect throughput. That demonstrates robustness of our proposed approach to the network complexity.</p><fig-group id="fig11"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Throughput at different special case: (a) Situation 1: 40 nodes at network beginning. It remains 10 nodes after 10 s. Situation 2: 10 nodes at all time; (b) Various setting of P<sub>b.opt</sub>.</title></caption><fig id ="fig11_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x132.png"/></fig><fig id ="fig11_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730160x133.png"/></fig></fig-group></sec><sec id="s6"><title>6. Conclusion</title><p>PLC is becoming mature in recent years. However, as the usual network communication, the network congestion problem is crucial when considering maintaining communication quality. While HomePlug AV is already a mature protocol in PLC, we propose here an adaptive contention mechanism instead of formulating a new protocol. The adaptive contention window scheme only needs the information from CSMA/CA in HomePlug AV. In addition, because the information needed is self-contained, one does not need not to correct the PHY layer setting to acquire extra information from other stations. All needed are to substitute the new CW and BC into the original HomePlug AV mechanism. This makes the approach more practical and presents better feasibility. From the simulation experiments conducted at NS3, it is found that the proposed scheme can effectively improve throughput. We have tested it with a variety of several scenarios; satisfactory results have been observed which show identifiable improvement of our proposed design.</p></sec><sec id="s7"><title>Acknowledgements</title><p>This research was sponsored by National Science Council, Taiwan, under the Grant NSC 101-2221-E-005- 015-MY3.</p></sec><sec id="s8"><title>Cite this paper</title><p>Chun-LiangLin,Wei-TingChang,Min-HueiLu, (2015) MAC Throughput Improvement Using Adaptive Contention Window. Journal of Computer and Communications,03,1-14. doi: 10.4236/jcc.2015.31001</p></sec></body><back><ref-list><title>References</title><ref id="scirp.53493-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">HomePlugPowerline Alliance (2007) HomePlug AV Specification, Ver. 1.1.</mixed-citation></ref><ref id="scirp.53493-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Chung, M.Y., Jung, M.H., Lee, T.J. and Lee, Y. (2006) Performance Analysis of HomePlug 1.0 MAC with CSMA/CA. IEEE Journal on Selected Areas in Communications, 24, 1411-1420. http://dx.doi.org/10.1109/JSAC.2006.874404</mixed-citation></ref><ref id="scirp.53493-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Velarde-Alvarado, P., Martinez-Pelaez, R., Ruiz-Ibarra, J. and Morales-Rocha, V. (2014) Information Theory and Data-Mining Techniques for Network Traffic Profiling for Intrusion Detection. Journal of Computer and Communications, 2, 24-30. http://dx.doi.org/10.4236/jcc.2014.211003</mixed-citation></ref><ref id="scirp.53493-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Yoon, S.G. and Bahk, S. (2011) Adaptive Rate Control and Contention Window-Size Adjustment for Power-Line Communication. IEEE Transactions on Power Delivery, 26, 809-816. http://dx.doi.org/10.1109/TPWRD.2010.2094629</mixed-citation></ref><ref id="scirp.53493-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Kriminger, E. and Latchman, H. (2011) Markov Chain Model of HomePlug CSMA MAC for Determining Optimal Fixed Contention Window Size. Proceedings of IEEE International Symposium on Power Line Communications and Its Applications, Udine, 3-6 April 2011, 399-404.</mixed-citation></ref><ref id="scirp.53493-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Liu, K.H., Hsieh, D.R., Hsu, J.Y. and Chang, S.Y. (2012) Throughput Improvement for Power Line Communication by Adaptive MAC Protocol. Proceedings of IEEE International Power Engineering and Optimization Conference, Melaka, 6-7 June 2012, 135-140.</mixed-citation></ref><ref id="scirp.53493-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Luca, D.B., Alessandro, S.D. and Tonello, A.M. (2013) MAC Enhancements for G3-PLC Home Networks. Proceedings of IEEE International Symposium on Power Line Communications and Its Applications, Johannesburg, 24-27 March 2013, 155-160.</mixed-citation></ref><ref id="scirp.53493-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Tsokalo, I., Radeke, R. and Lehnert, R. (2013) Enhancement of Backoff Algorithm in CSMA/CA Protocols for Broadband PLC. Proceedings of IEEE International Symposium on Power Line Communications and Its Applications, Johannesburg, 24-27 March 2013, 47-52.</mixed-citation></ref><ref id="scirp.53493-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Wu, H., Long, K. and Heng, S. (2002) IEEE 802.11 Distributed Coordination Function (DCF): Analysis and Enhancement. Proceedings of IEEE International Conference on Communications, 28 April-2 May 2002, 605-609.</mixed-citation></ref><ref id="scirp.53493-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">NS3. https://www.nsnam.org/</mixed-citation></ref><ref id="scirp.53493-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Bianchi, G. (2000) Performance Analysis of the IEEE 802.11 Distributed Coordination Function. IEEE Journal on Selected Areas in Communications, 18, 535-547. http://dx.doi.org/10.1109/49.840210</mixed-citation></ref></ref-list></back></article>