CS 33006 Computer Networks
(Spring Semester 2006)
Theory
Niloy Ganguly (NG) niloy@cse.iitkgp.ernet.in
Laboratory
Indranil Sengupta Indranil.Sengupta@iitkgp.ac.in
Niloy Ganguly niloy@cse.iitkgp.ernet.in
Teaching Assisstant
Anirvan DuttaGupta aduttagupta@gmail.com
Priyankar Ghosh priyankar.ghosh@gmail.com
Sonai Roy sonai@cse.iitkgp.ernet.in
Plaban Kumar Bhowmick plaban@cse.iitkgp.ernet.in
Notices
3.05.2006 - Marks are out. Check your marks, any problem come and meet me by tomorrow (4.05.2006). Remember the marks
are normalized, so even a single mark will not be given as grace. Thus if you have got 89.49, you get an A, similarly
you fail if you get 34.49.
3.05.2006 - There was one class test 1 script with no name, please check whether it is yours.
20.04.2006 - Please check whether you have being assigned any Aasignment/scribe, if not write back to me.
20.04.2006 - All the Assignments should reach me by 25th April.
20.04.2006 - If you have send assignment/scribe and find that it is not uploaded, it means I have not received it , kindly resend.
17.04.2006 - Class Test 2 and Lab QUiz will be held simulataneously from 2.30 pm. Each will last 30 minutes.
07.04.2006 - All scribes/assignments should be submitted by 12.04.2006.
07.04.2006 - Check whether you have to submit any Assignment
07.04.2006 - Please scribe the midsem (48,49) and class test I (36).
03.04.2006 - The scribes of all those who have submitted is up, please check whether your scribe is there or not.
If it is not there, you have to submit within 5th April. Otherwise your chance is lost
03.04.2006 - Class Test 2 on 21.03.2006 1.30 pm
03.04.2006 - Assignment 5 checking on 18.03.2006
03.04.2006 - Assignment 4 checking on 7.03.2006
03.04.2006 - Lab Quiz at 2.30 pm on 20.03.2006
21.03.2006 - All scribes upto 17.03.2006
have to submitted by 26.03.2006 - otherwise the concerned person loses chance.
27.02.2006 - Kindly prepare the scribes. Use latex. You will find the template
here. Please submit the tex, ps and all the fig files in a tarball.
Theory
       Class Room/Hour
       Books
       Evaluation
       Lectures
       Assignments
       Students List
          Student Lab group and marks
          Assignment 1
          Assignment 2
          Assignment 3
          Assignment 4
          Assignment 5
Class Room/Hours
Lectures : Wed - 3, Thu - 2, Fri - 4,5
Room : CSE 107
Lab : Fri - 6-8
Units : 4-0-3
Credits : 3
Contact : Room #313 (CSE), Phone 3460
Books
- Andrew S Tanenbaum, Computer Networks, PHI 2005
- William Stallings, Data and Computer Communications, 2005
Evaluation
Teacher's Assessment : 20
        Scribe/Assignment : 6
        Class Test 1 : 7
        Class Test 2 : 7
Mid-sem : 30 Answerscript (48,49)
End-sem : 50
Lectures
05.01.2006 - Introduction 1 (32)
06.01.2006 - Routing and Data transmission - Introduction 2
06.01.2006 - Routing and Data transmission - Introduction 3
12.01.2006 - Frequency, Spectrum and Bandwidth 4
16.01.2006 - Analog and Digital Transmission 5 (33)
16.01.2006 - Transmission Impairment 6 (34)
18.01.2006 - Noise Decibel and Channel Capacity 7
25.01.2006 - Transmission Media 8
27.01.2006 (ISG) - Open System Interconnection 9
27.01.2006 (ISG) - Open System Interconnection 10
31.01.2006 (AG) - Layering in Network Design 11
31.01.2006 (AG) - Layering in Network Design 12
07.02.2006 (AG) - Routing in Switched Network 13
07.02.2006 (AG) - Routing 14
10.02.2006 (ISG) - Data Encoding 15
10.02.2006 (ISG) - Data Encoding 16
14.02.2006 (AG) - Routing Protocols 17
14.02.2006 (AG) - Routing Protocols 18
28.02.2006 - Synchronous Transmission and Error handling 19
28.02.2006 - Error Detection 20
02.03.2006 - Error Detection 21
03.03.2006 - Error Detection and Correction 22
03.03.2006 - Error Detection and Correction 23
07.03.2006 - Interfacing and Data Link Control 24
07.03.2006 - Interfacing and Data Link Control 25
09.03.2006 - Flow and Error Control - Utilization 26
10.03.2006 - Flow Control - Performance Issues 27
10.03.2006 - 28 (37)
16.03.2006 - Time Division Multiplexing 29
17.03.2006 - Spread Spectrum 30
17.03.2006 - Spread Spectrum 31
21.03.2006 - CDMA and ATM 38
21.03.2006 - CDMA and ATM 39
23.03.2006 - Asynchronous Transfer Mode 40
24.03.2006 - 41
24.03.2006 - Congestion Control 42
29.03.2006 - ATM Traffic Management 43
31.03.2006 - GFR Traffic Contract 44
05.04.2006 - Cellular Networks 45
06.04.2006 - 46
07.04.2006 - Local Area Network 47
12.04.2006 - Bridges 35
13.04.2006 - Meadium Access Control of LAN 50
19.04.2006 - 51
20.04.2006 - 52
Assignments
Assignment
Answers
Assignment No 1
Assignment No 2
Assignment No 3
Laboratory
General Guidelines
- 2 people per group.
- Submission directly to your respective TA
- Each member of the group should specify what he/she has done.
- A tar ball of the assignment to be mailed to me after the assessment is over.
README file on how to compile and run the programmes, how to specify inputs, etc.
Mention the team number and names and roll numbers of the members.
Code.
Make file.
The name of the folder should be Assignment(N)_(Team-Number).
Assignment 1
Shortest Paths and Routing
For a given graph G
- Find the shortest paths from each node to every other node. Use
a.Floyd-Warshall algorithm
b.Dijkstra's Algorithm on every node.
- Compare the time complexities of the two algorithms over a set of graphs.
- Construct a routing table for each node in the graph.
Assignment 2
Assignment 2.1: Chat Server and Client
There should be a central Chat Server and multiple chat Clients.
The clients should provide the following facilities:
- New user sign-up.
- Old user sign-in.1
- Dedicated connection between two users logged on to the server – such chat sessions should be peer to peer (bypassing the server).
- Broadcast messages from a particular user to all other users logged on.
The server should provide the following facilities:
- Database of users.
- Send list of users currently logged on.
- Some authentication mechanism – validating username and password.
- Single login per user (a particular user cannot sign in simultaneously from more than one client).
- Avoid race conditions during sign-in/sign-up from multiple clients.
Design your own protocol for client/server communication. Multithreaded/multi-process implementation of client/server is encouraged.
Assignment 2.2: Railway Reservation System
There should be a central Railway Reservation Server and multiple Reservation Clients.
The server should provide the following facilities:
- Database of
- Train numbers.
- Number of seats per train.
- Number of seats available.
- Waiting list serial number.
- Seat numbers assigned to customers.
- Server transactions –
- New reservation.
- Cancellation.
- Automatic confirmation from the top of waiting list upon cancellation.
- Avoid race conditions when multiple customers try to buy tickets simultaneously.
The client should provide the interface for buying/canceling/viewing reservation status. Develop your own protocol.
Assignment 2.3: Online Auctioning Systems
There should be a central Auction Server and multiple Clients.
The server should provide the following facilities:
- Database of
- Items open to bidding.
- Highest bid so far for the items.
- Time when the bidding for an item closes (item is sold to the highest bidder so far).
- For an item a bidder
- Cannot lower his bid.
- Can only view the max bid before bidding.
- Can withdraw a bid for an item, but can’t bid for it subsequently.
- New items can be put up for auction with initial bid and sell out date.
The client should provide the interface for viewing/bidding for/buying new items. Avoid race conditions. Develop your own protocol.
Assignment 2.4: Online Gaming – Tic-Tac-Toe
There should be a central game server and multiple clients.
From a client, a player can
- Create a new game.
- Join an existing game (if it has only a single player).
The server should
- Maintain a list of open games.
- Report the winner and close the game when it ends.
- Suggest a move if requested.
Assignment 3
Consider the transmission of packets between two nodes, X and Y. Both the nodes maintain their own buffers of some finite size for sending and receiving packets at their ends. Error control in the data link layer is based on Automatic Repeat Request (ARQ). ARQ error control is implemented as an adjunct to flow control. In fact, stop and wait flow control is usually implemented as stop and wait ARQ and Sliding Window is usually implemented as Go-Back-n or Selective-Repeat.
Write a C programme to simulate the following three ARQs
Stop and Wait ARQ,
Go-Back-N Sliding Window ARQ,
Selective Repeat Sliding Window ARQ;
that must consider retransmission of data in the three cases
Damaged frames,
Lost frames,
Lost acknowledgement.
The programme must have the following features:
Statistical model for Traffic Rate: The delays between two successive transmissions should follow the Poisson distribution.
Simulate a fast sender and slow receiver.
A process that simulates physical layer errors. Introduce errors in transmitted frames at random - the probability of an arbitrary frame being damaged should be a programme parameter. In addition, the receiver should omit sending acknowledgement for random frames – this probability should again be a programme parameter.
Assignment 4
There are four sub-parts in Assignment 4. Group 1-8 should attempt part 1. Group 9 - 16 -- part 2;
Group 17 - 24 -- part 3 and the rest attempts part 4. The details of the assignment is
available in pdf format.
Assignment 5
There are three sub-parts in Assignment 5. Group 1-11 should attempt part 1. Group 11-22 -- part 2;
and the rest attempts part 3. The details of the assignments 5.1 and 5.2 are
available here and assignment 5.3 here.