Wireless and Mobile Networks
Topics, Lecture Notes and References for Study
- Multiple access In a wireless environment: cellular systems,
3G, 4G and beyond
-
Packet radio, Aloha protocol family, CSMA/CA, IEEE 802.11
based wireless local area networks
-
Ad hoc and wireless sensor networks
-
Wireless Personal Area Networks (WPANS)
-
Beyond 3G Wireless Networks
-
Internet protocols for next generation mobile networks: Mobile-IPv6
Past Exams
Packet Radio Experiments and Project
-
Programming
environment warm-up and Introduction to
programming in UNIX/C (These short experiments aim to
introduce you the editing-compiling-running-debugging cycle
with the freely available tools in the Unix/Linux
environment. I think spending a couple of hours on exploring
the tutorials below will save you a
lot of time when you start doing the experiments and
assignments involving programming.)
-
Experiments and Assignment: Peer-to-peer chat and reliable file transfer with packet radios
-
About the Packet Radios
-
We use the 2nd generation (USB connected) packet
radio boards
-
You can test the boards with this sample
packet_radio program (Linux binary, source code
is not available, I don't want to give away all the
fun :-). Plug in two packet radio boards on two PCs,
download the program on both PCs, set as an
executable (chmod 700 packet_radio) and run
it like this: ./packet_radio /dev/radioXX
9600 (where XX is the number written
on the board, we will use these numbers as the
unique, 1-byte long board addresses, and 9600 is the
bit rate of data transmission).
-
Note:Do not operate the boards closer than 10 cm distance between them, otherwise receivers may get saturated.
-
Supporting Documentation
-
Software for the Peer-to-Peer Chat Program
You need
to write an "event-driven" program, i.e., the
main() function in your program will do nothing
but will wait for some external events to occur. In our
case, there are two possibilities: user presses a key to
write a message, or wireless radio board receives a
character. In Unix systems, one way of writing event
driven programs is to use poll() system
call. Through the following examples, let's have look at
how it works. Please spend a few minutes on studying the
following programs before working on your packet radio
project (try compiling and running them):
-
The read_keypress.c
waits for you to press a key and echoes the character
on screen.
-
The listen_radio.c
listens the radio device to process received bytes
over the wireless medium.
-
If we write a program that waits for any of these two
events to occur, we can merge the above examples into
a single C program as your starting point:
packet_radio.c.
-
Here is the Makefile for
compiling the above programs.
-
Software for the Reliable File Transfer Program
In order to improve the performance of the packet radio to
packet radio communications, we have added some symbol
encoding trickery into the transmission process, and now
provide the packet sending/receiving routines as library
functions. In the sample program packet_radio_wlibpr.c
you can see how these library routines are used. The
program demonstrates the following:
-
How to open a file and read its size (in bytes).
-
Timer usage - this timer is easier to use, and should now be used for
waiting for "ACK" packets instead of modifying the
timeout of poll().
-
How to send and receive bytes to and from a packet
radio using send_packet() and
recv_packet() respectively.
Further information can be found in the README
file. To start, you can download the sample program,
Makefile, and the required header files and library:
-
packet_radio_wlibpr.c (sample program)
-
pr.h (header file for packet handling library routines)
-
symbols.h (header file for byte encoding routines, they are used by packet handling functions)
-
libpr.a (library of packet handling routines)
-
Makefile (for compiling the sample program into an
executable, it creates the executable with the name packet_radio)
Software Tools
I prefer to use freely available software tools especially the
GNU ones developed by Free Software
Foundation. their Web site has quite extensive documentation,
it would be worthwhile exploring the pages. You may also find the below
documents useful to refer in printed form:
Tutorials
Linux/UNIX tutorial
Here is a beginners' guide to the Linux/UNIX operating
system. Eight simple tutorials cover the basics of Linux/UNIX
commands:
(courtesy of M. Stonebank, original version can be found here.)
Tutorials on C/C++ programming in the UNIX environment
The following tutorials may help polishing your C programming
skills in the UNIX environment (courtesy of the Little UNIX
Programmers Group. This site has also some additional
intermediate and advanced level UNIX programming tutorials).
I have also found Norm Matloff's debugging tutorial to be very useful.
Resources on learning, studying, report writing and presentation
[back to Ahmet's home]
[back to ECSE home]
[back to Monash home]
Last modified: Sat Sep 17 18:41:31 EST 2011
by Ahmet Sekercioglu