Computer Networks Lab: Implementation Procedures
EXP 2 — Multi-User Chat Server (TCP)
Server
- Start server.
- Create ServerSocket and bind to port.
- Display server started.
- Accept client connection.
- Assign unique client ID.
- Send ID to client.
- Store client in list.
- Create thread for client.
- Read client messages continuously.
- Display messages on server.
- Enter target client ID and message for private send.
- Send message to selected client.
- Remove disconnected client.
- Repeat for new clients.
Client
- Start client.
- Connect to server (localhost:5000).
- Display connecting message.
- Receive client ID.
- Start thread to listen for messages.
- Display received messages.
- Enter message via console.
- Send message to server.
- Enter /exit to terminate.
- Close socket and stop.
EXP 3 — Web Proxy Server
Server
- Import required packages.
- Read port and server name.
- Create ServerSocket.
- Display server started.
- Accept client connection.
- Create input/output streams.
- Send response message.
- Close connection.
Proxy Server
- Import required packages.
- Create ServerSocket with proxy port.
- Display proxy server started.
- Accept client connection.
- Create input/output streams.
- Receive URL from client.
- Determine backend server port.
- Connect to selected server.
- Send request to server.
- Receive response.
- Forward response to client.
- Close all connections.
Client
- Import required packages.
- Connect to proxy server.
- Prompt user for URL.
- Read URL input.
- Send URL to proxy.
- Receive response.
- Display response.
- Close connection.
EXP 4 — UDP Time Server
Server
- Start server.
- Create DatagramSocket and bind port.
- Display server running.
- Create buffer for data.
- Receive request packet.
- Get client IP and port.
- Display request received.
- Get current date and time.
- Convert time to bytes.
- Create response packet.
- Send packet to client.
- Repeat for next requests.
Client
- Start client.
- Create DatagramSocket.
- Get server IP and port.
- Create TIME_REQUEST message.
- Convert message to bytes.
- Create and send request packet.
- Receive response packet.
- Convert bytes to string.
- Display server time.
- Close socket.
EXP 5 — Stop and Wait ARQ
Main
- Define frame with sequence number and info.
- Initialize frame values.
- Loop until disconnect.
- Call sender function.
- Call receiver until ACK received.
Sender
- Check sender turn.
- If no error: send frame.
- If error: print error message.
- Set receiver turn.
- If ACK received and last frame: set disconnect.
- Else: select next frame.
- Set sender turn.
Receiver
- Check receiver turn.
- If no error: receive packet, set sender turn.
- If error: print ACK error.
- Else: duplicate packet, set sender turn.
- Print error if occurs.
- End.
EXP 6 — Go Back N ARQ
Receiver
- Import headers.
- Create socket using socket().
- Set IP and port.
- Bind socket.
- Listen for connections.
- Accept connection.
- Discard out-of-order frames.
- Send ACK for correct frames.
- If no ACK, timer expires.
- Close connection and stop.
Sender
- Import headers.
- Create socket.
- Connect to server.
- Send frames based on window size.
- If ACK not received, retransmit from that frame.
- Close connection and stop.
EXP 7 — Selective Repeat ARQ
Receiver
- Import headers.
- Create socket.
- Set IP and port.
- Bind socket.
- Listen for connections.
- Accept connection.
- Maintain buffer equal to window size.
- Detect error, request retransmission.
- Receive and acknowledge frames.
- Close connection and stop.
Sender
- Import headers.
- Create socket.
- Connect to server.
- Send multiple frames without waiting.
- Maintain timeout, retransmit only specific frame.
- Close connection and stop.
EXP 8 — Distance Vector Routing
Algorithm
- Start.
- Set distance to itself = 0, others = Infinity.
- Send distance vector to all neighbours.
- Receive and store neighbour vectors.
- Recalculate on update or link failure.
- Compute min cost to each destination (Bellman-Ford).
- Update routing table with new minimum.
- Repeat until no updates occur.
- Stop.
EXP 9 — File Transfer Protocol
Server
- Import required packages.
- Create GUI.
- Create ServerSocket and start.
- Accept client connection.
- Create input/output streams.
- Receive file name from client.
- Check file existence.
- If exists: send file, else send NOT_FOUND.
- Continue for further requests and stop.
Client
- Import required packages.
- Create GUI.
- Connect to server.
- Create input/output streams.
- Send file name to server.
- Wait for response.
- If FOUND: receive and save file.
- Else display NOT_FOUND message.
- Close connection and stop.
EXP 10 — Leaky Bucket
Algorithm
- Start.
- Set bucket size and output rate.
- Check if incoming + remaining data exceed capacity.
- If packet size > bucket size: reject packet.
- Else if bucket capacity exceeded: drop excess data.
- Else transmit data at fixed output rate.
- Repeat until all packets transmitted.
- Stop.
