DESCRIPTION OF STANDARD - MAC COMMUNICATION PROTOCOL

IEEE802.11 PROVIDES 2 KINDS OF ACCESS CHANNEL METHOD

The so-called Coordination Function is one mechanism to decide when to be able to transfer the data for a certain station. DCF is the basic access method of IEEE 802.11 MAC, using the technique of CSMA/CA( carrier-sense multiple access/ collision avoidance) to let the stations transfer the assynchro data. We can apply the method to AD Hoc and Intrastructure WLAN. PCF provides the function that stations can transfer the time-bounded data by contention free method, so the frames collision won't occur. But PCF can be applied to the infrastructure WLAN. Figure describes the framework of IEEE 802.11 MAC communication protocol, and PCF operates by DCF.


DCF

BASED ON CSMA/CA

DCF is the basic access method in IEEE 802.11. DCF mode letw different stations share the same media and solves the collision between stations using the tech nique of CSMA/CA. CSMA/CA judges that the signal magnitude is above one thres hold by carrier-sense technique. If the signal magnitude is under this thres hold, it appears that the bandwidth is not occupied and stations can use the bandwidth to transfer data. On the contrary, if the signal magnitude is above the threshold, it appears that the channel is busy and stations have to defer to transfer data. Stations can not transfer frames until the channel is free.

INTER-FRAME SPACE(IFS) TIME INTERVALS

In fack, IEEE 802.11 divides the frame by three different priority level; every frame with individual priority level has to wait for a fixed period before being transfered. The period is called Inter-Frame Space, IFS:
  • SIFS(short IFS):
    This is the shortest inter-frame space. It is for immediate respondent action. The waiting time for the following frames is SIFS level: CTS, ACK, etc.
  • PIFS(PCF IFS):
    This is the IFS with mid length. It is the waiting time for PCF to transfer time-bounded data.
  • DIFS(DCF IFS):
    This is the IFS with the longest lenth. It is the waiting time for DCF to transfer assynchronous data.

  • The higher priority level the frames have, the shorter IFS is. Thus, the frames with higher priority level have better chance to use media. In other words, when stations find that the channel becomes free from busy situation, they can't transfer frames immediately. They should wait for a proper period by the priority level of frame and during this period the channel keeps free; they just can transfer frames. With this method, it is very possible that the frames with the same priority level collide. Because the frames with the same priority level waiting for the same time(IFS) and the channel is free, then the stations will transfer the frames simultaneously and collision occurs. The solving method is that afer waiting for the IFS, the stations wait for a random delay time and then transfer the frames. We call this time as backoff time. Because the time slot of backoff window selected by every station is different probably. The rate of collision reduces. This is the property of backoff algorithm.

    2 PROBLEMS IN WIRELESS LAN

    In WLAN, there are two problems:
  • It is difficult to detect collison:
    solution --
    Before transfering frames, the sender transfers the control frame "Request to Send, RTS" ; and when the receiver receives this control frame, it sends another control frame "Clear to Send, CTS" immediately. Only when sender receives CTS sended frome receiver properly (it indicates that RTS doesn't collide.) , sender can transfer frames. When other stations receive CTS which is transfer to receiver, they will stop transfering frames temporarily. Thus, the probabili ty of collision reduces.Figure shows the illustration of RTS/CTS.

  • In physical layer, it is easy to judge whether the channel is busy in error:
    solution --
    IEEE 802.11 solves this problem by Virtual Carrier Sense, which makes use of Net Allocation Vector, NAV, which records the time for other station to transfer frames, and stations can judge whether the channel is busy according to the information. Mentioned above, when one station transfers frames by RTS/CTS, data or ACK, if other stations receive these frames, they will stop transfering frames temporarily. In fact, the correct wording is that RTS, CTS and data frame all include a field record ing the duration for the sender to transfer frames. When other stations receive the RTS, CTS and data frame, they will register the duration field to their own NAV. The duration of NAV may be accumulated; the value of duration not becoming zero indicates that the station can't transfer frames because the channel is busy now ( the period for other station to transfer frames does not end yet). The NAV seems been equipped with the function of carrier sense, being able to tell stations whether now channel is busy. Thus we call it Virt ual Carrier Sense. Figures shows the illustratuion of NAV.



  • PCF

    SUPERFRAME:CONSISTING OF PCF and DCF

    The service offered by DCF is a contention service, that is used for asynchronous traffic. This service does not guarantee any boundaries for access delay or available bandwidth. In order to also offer contention free srevice for time bounded traffic or contention free asynchronous traffic the point coordinated mode PCF may also be used on top of DCF.
  • superframe:
    In point coordinated mode both services are available, the two coordination modes share the bandwidth available in a superframe structure(see figure): After the PCF-paret in the superframe, the PCF passes control to the DCF and regains control to the DCF and regains control of the bandwidth once the DCF-part is over.
  • polling:
    In PCF mode, the central coordination station polls stations, that are on its polling list and allows them undisturbed, contention free access to the medium. To get on the polling list, either once or repeatedly, the stations have to apply during DCF period at the point coordinator.


  • CSMA/CA + RTS/CTS FLOW FIGURE



    CSMA/CA + RTS/CTS ALGORITHMS

    while(1)
      {cs0location
        case1(qanting to send RTS)
        d0(we can write this as fcn1)
          {cs1location
            if(channel is free)
            then
              {
                time(start);
                while(1)
                  {
                    time(stop);
                    if(receiving RTS)
                    then goto cs2location;
                    else if(receiving CTS)
                    then goto cs3location;
                    if(time(stop)>=time(start)+DIFS)
                    then if(checking channel is free)
                         then
                           {
                             time(start2);
                             while(1)
                               {
                                 time(stop2);
                                 if(receiving RTS)
                                 then goto cs2location;
                                 else if(receiving CTS)
                                 then goto cs3location;
                                 if(time(stop2)>=time(start2)+random(10)*SIFS)
                                 then if(checking channel is free)
                                      then
                                        {
                                          time(start3);
                                          sending RTS;
                                          while(1)
                                            { 
                                              time(stop3);
                                              if(receiving CTS)
                                              then break;
                                              else if(time(stop3)>time(star+SIFS)
                                              then goto cs1location;
                                            }
                                          if(channel free>=SIFS)
                                          then
                                            {
                                              if(wanting to send #packet n>=5)
                                              then send i=5 packet
                                              else send i=n packet
                                              if(receiving ACK during timer<=i packet+SIFS)
                                              then goto cs1location;
                                            } 
                                          else goto cs1location;
                                        }            
                                      else goto cs1location;
                               }       
                           } 
                         else goto cs1location;
                  }                          
              }                         
            else goto cs1location;
          }
    
        case2(receiving RTS) 
        do
          {cs2location
            if(this RTS is for myself)
            then
              {
                if(channel free time>=SIFS)
                then
                  {
                    time(start4);
                    sending CTS;
                    while(1)
                      {
                        time(stop4);
                        if(receiving data)
                        then break;
                        else if(time(stop4)>time(start)+CTS+SIFS)
                        then goto cs0location;
                      }
                    if(channel free>=SIFS)
                    then
                      {
                        sending ACK;
                        goto cs0location;
                      }
                    else goto cs0location;
                  }
                else goto cs1location;
              }
            else 
              {
                tmp_begin=time(begin1);
                tmp_NAV=NAV1;
                while(1)
                  {
                    if(receiving RTS for others and time()=tmp_begin+tmp_NAV)
                        then
                          {
                            tmp_begin=new_begin;
                            tmp_NAV=new_NAV;
                          }      
                      }  
                      if(time(now)>=tmp_begin+tmp_NAV)
                      then goto cs0location;
                   }
                   
              }            
          }    
    
    
        case3(receiving CTS)
        do
          {cs3location
            if(this CTS is for myself)
            then goto cs1location;
            else waiting for the duration in CTS;
          }
      }
    


    SUMMARY

    The 802.11 draft standards consist of three main elements, the physical layer specification, the medium access control specification, and the power saving functionality. Two working modes ,Ad-Hoc and Infrastructure mode, are defined. In infrastructure mode either a contention service is ofered by using the distributed coordination function(DCF), or a contention free service with possible support for limited delay guarantees by using the point coordination function(PCF).Figure shows the elements in 802.11 and the services offered as well as their relation towards each other.
  • superframe:
    Both coordiantion modes coexist simultaneously within a superframe structure.
  • IFS:
    Different interframe spaces(IFS) are integrated as the supporting mechanism to separatethe different packet classes. They regulate the minimum time between packets.
  • CSMA/CA and RTS/CTS:
    As the basic access mechanism a CSMA/CA algorithm with rotaing backoff is applied,that may optionally be extended with the RTS/CTS mechanism to increase robustness against hidden terminals.