CMPE 257 : Wireless & Mobile Networking 
Spring 2003


Overview

There will be two projects for the class both requiring use of the GlomoSim-2.0.3 network simulator. For details about the GlomoSim simulator pls refer to the on-line GloMoSim tutorial. It may a good idea to join the GlomoSim mailing lists to help you with different simulator issues.  We will provide access to the simulator code which you can install in your SOE accounts or Class Server accounts (details  will be posted later).  Glomosim requires parsecc binaries which will be available for download from the class site. In case you are planning to install Glomosim in your SOE or Class Server accounts you can link to the parsecc binaries directly without having to install it. (More details on the paths to the parsecc binaries  will be posted ). This will save you about 3.3 Megs of disk space.


Download Glomosim:


Glomosim Install Instructions:

1. SOE Accounts:
  • Download the glomosim version without the parsec binaries.
  • Untar the glomosim files in your home directory. You should have a directory called glomosim-2.03.
  • Edit the makefile in ./main dir under the glomosim directory. Add the following lines after the section called 
    #Parsec
    ## echo Using Parsec in ${PCC_DIRECTORY}
    ## ${PCC_DIRECTORY}/bin/parsecc $*
    ##


    --Lines to be added
    PARDIR = /cse/classes/cmpe257/Spring03/parsec/solaris-gcc303
    PAR = $(PARDIR)/bin/pcc
    PARFLAG = -O2 -g $(COMFLAG) -clock longlong -pcc_directory $(PARDIR)
 
    Delete the other "PARFLAG line"
    PARFLAG = $(COMFLAG) -clock longlong

  • Save the makefile. Run make. If all goes well you should end up with a binary called glomosim in the ./bin directory under glomosim.
  • Test by running "glomosim config.in".

2. Class Server (sanskriti) Accounts:
  • Download the glomosim version without the parsec binaries.
  • Untar the glomosim files in your home directory. You should have a directory called glomosim-2.03.
  • Edit the makefile in ./main dir under the glomosim directory. Add the following lines after the section called 
    #Parsec
    ## echo Using Parsec in ${PCC_DIRECTORY}
    ## ${PCC_DIRECTORY}/bin/parsecc $*
    ##


    --Lines to be added
    PARDIR = /usr/local/share/glomosim-2.03/parsec/redhat-7.2
    PAR = $(PARDIR)/bin/pcc
    PARFLAG = -O2 -g $(COMFLAG) -clock longlong -pcc_directory $(PARDIR)
 
    Delete the other "PARFLAG line"
    PARFLAG = $(COMFLAG) -clock longlong

  • Save the makefile. Run make. If all goes well you should end up with a binary called glomosim in the ./bin directory under glomosim.
  • Test by running "glomosim config.in".
3. Other Accounts:
  • Download the glomosim version containing the parsec binaries.
  • Perform same procedure as above.
  • Under your glomosim 2.0.3 directory you will have a dir called parsec. Choose the sub-dir under parsec dir depending upon your OS (freebsd, linux, solaris etc)
  • Edit the makefile as instructed above and set
    PARDIR =  "path to the parsec binaries" (which depends on your OS)  
  • Save the makefile. Run make. If all goes well you should end up with a binary called glomosim in the ./bin directory under glomosim.
  • Test by running "glomosim config.in".







Project Description

 

Project  1 : Due Date 04/22/03 !!!

For the first project, you will need to download the GlomoSim source code from the class directory and install it in your accounts at UCSC (either SOE or Class Server) or elsewhere. Note that this requires parsecc binaries also available from the class page. There are different pre-compiled versions of parsecc available depending upon your platform. Check under the directories (freebsd, solaris or linux) depending on your OS.

Step 1: Compile Glomosim.

Step 2:  Test it with default config.in and app.conf (under /bin dir) to make sure it is running fine.

Step 3. You will need to modify the config.in file
  • Set up a topology of 50 nodes in a 1000 x 1000 m2 field.
  • Set the simulation time to 500 seconds.
  • Set the mobility model to the random way-point model with pause time 3secs , min-speed 0, max-speed 10m/s.
  • Set  Radio bandwidth to 11Mbps.
  • Set MAC protocol to 802.11
  • For the routing protocol use DSR.
  • Ensure that Application, Transport, Network, MAC statistics are set to yes.
Unless mentioned you can set all other parameters to their default values (from the config.in file).

Step 4: You need to modify the app.conf file
  • Set up CBR traffic as follows
  • <src> <dest> <items to send> <item size> <interval> <start time> <end time>
  •   1     10        250            256B       1s         10s           300s   
  •   2     20        250            256B       1s         20s           300s
  •   3     30        250            256B       1s         30s           300s
  •   4     40        250            256B       1s         40s           300s
Step 5:  Rerun the simulation, 10 different times with seeds from 1000-10,000 in steps of 1000. (It may be easier to write a script to do this). By default, the stats are put in glomo.stats. You will have to copy the file to a different name for each run. Finally for each CBR session find out the average Packet Delivery Ratio across all 10 runs. This information will be reported in the glomo.stats file.

Packet Delivery Ratio =   Total # of packets received by CBR client /
                          Total # of packets sent by correspnding CBR server.

Step 6: Plot a bar graph of session Vs packet delivery ratio for the 4 different CBR sessions.

        Y-axis         |
                       |
                       |
         Pkt           |
         del           |
          %            |
                       |
                       |  
                       |
                       |
                        -------------------------------------------              
                       1-10    2-20     3-30    4-40
                             CBR sessions              
   
Step 7: Turn in a project report detailing your results.




Project 2

The second project will be more involved,  requiring modification/addition of source code to the GloMoSim simulator. We have provided a list of suggested projects. Students can choose any one project based on their interests. Students are also encouraged to suggest other projects involving similar levels of complexity.  Projects suggested by students require professor's approval.

NOTE: All projects are  individual, which means no collaboration and sharing of code is allowed!!!!.

Suggested projects are outlined below. More details and specifics on each project will be provided later.


1. MAC

For this project, students will implement 802.11's PCF (Point Coordination Function). GloMoSim currently has only the DCF (Distributed Co-ordination function).  

With PCF, a point coordinator (generally the access point)  controls which stations can transmit during any given period of time. Within a time period called the contention-free period, the point coordinator will step through all stations operating in PCF mode and poll them one at a time. For example, the point coordinator may first poll station A, and during a specific period of time station A can transmit data frames (and no other station can send anything). The point coordinator will then poll the next station and continue down the polling list, while letting each station have a chance to send data. Thus, PCF is a contention-free protocol (unlike DCF) and enables stations to transmit data frames synchronously, with regular time delays between data frame transmissions.

This project requires that a performance study comparing 802.11 DCF and PCF modes (considering applications such as FTP, HTTP, etc) be conducted. The project's report will comment on the performance/overhead issues comparing the two modes.



2. Mobility Model

For this project,  students will have to look up different mobility models such as group mobility model, pursue model, etc. The project consists of implementing a new  mobility model not included in GloMoSim's   default distribution. GloMosim currently has two mobility models: Random Waypoint and Pathloss Matrix.

In terms of the project, students will have to implement the new mobility model and compare the performance of some applications (ftp, http) using the new mobility model and the random waypoint model (which is part of GloMoSim's distribution). Further, students will also have to compare the two mobility models using both DSR and AODV as the routing protocol (both included as part of GloMoSim) and hand in a report detailing the performance differences in terms of routing overhead and packet delivery ratios.



3. TCP-F for Wireless Networks

For this project, students will compare  the  performance of  TCP-F (feedback) with regular TCP over wireless links. In wireless networks, most packet  losses occur  due to bit  errors and routing  failures on account  of mobility. However  regular TCP  considers these  losses as indicators of  congestion and enters the congestion  control phase and reverts  to slow-start  phase affecting  performance. In  the modified version called TCP-F the source  is informed of route failures so that it does not  invoke congestion control and refrains  from sending more packets till  the route  is restored. (Pls  read the paper :  A Feedback Based  Scheme  For  Improving   TCP  Performance  In  Ad-Hoc  Wireless Networks, for details about the implementation).

In terms  of the project,  students will have  to modify TCP  to TCP-F with feedback mechanism. You can use either DSR or AODV as the routing protocol and compare  the performance of TCP-F with  TCP for different applications (ftp, http) under different mobility scenarios.



4.  Multipath Routing

This project will involve extending either DSR or AODV to do multipath routing.  DSR and AODV are on-demand protocols in which routes are established by a Route-Discovery phase. The Route Discovery process involves  flooding Route-Requests and receiving Route-Replies. In the normal version only the best route is chosen from the different Route-Replies received,  based on the shortest route or the route with the latest sequence number.

In the extended version, students will have to modify the routing protocol to maintain the two best routes to destinations instead of one. Both routes will have to be used for subsequent data transmissions.  To decide which route to use for transmitting data, you can use a simple probabilistic method or plain round-robin.

In the probabilistic method you can assign a probability for using  each route based on route metrics such as number of hops, delay etc.

In the round-robin method the first packet will traverse the first route and the second packet will traverse the second route and so on.

For the project,  students will have to compare the performance of the Multipath version of DSR or AODV with the normal version  and  turn in a  report detailing the performance differences in terms  of routing overhead and packet delivery ratios.