Create a c-based client-server architecture using a udp


Assignment: Introduction to Computer Networks

Objective:

Simulate the working of DHCP server using a client-server architecture.

Requirements:

1. Create a C-based client-server architecture using a UDP socket

2. The DHCP server should be able to receive DHCP messages from multiple clients

3. The server should run on cse01.cse.unt.edu machine and the client can run on any cse machines

4. Simulate the client requesting an IP address and the DHCP server offering one available IP address

5. The client should receive the IP address and send a DHCP request for the received IP address to the server

6. The DHCP server should register that the client selected IP address is taken and should acknowledge to the client

7. The client should randomly generate the transaction ID. The lifetime (lease time) should be set to 3600 seconds

8. Simulate several clients requesting IP address from the DHCP server.

Procedure:

1. Create a C-based server that can accept data from multiple clients using UDP sockets

2. Make sure the server runs on cse01.cse.unt.edu and the format to start the server is as follows.

dhcp_server
gateway:
subnet_mask:

where dhcp is the UDP server executable and port_number is the port number on which the UDP server can accept data. The gateway is the IP address of the gateway or the router. The subnet mask indicates the subnet part and the host part of the IP address. For example: A subnet mask of 255.255.254.0 tells that the higher 23 bits of the host's IP address is the subnet part which is same for all the hosts in the subnet and the lower 9 bits is the host part which changes according to each host.

3. Create a C-based client that can communicate with the server using UDP sockets

4. The client can run on any cse machine and sends and receives messages to the server as follows

client

where client is the client executable, port_number is the port number on which the client sends messages to the DHCP server

5. The client tries to request an IP address from the DHCP server by contacting the server and sending a packet with siaddr: 129.120.151.94, yiaddr: 0.0.0.0 and a randomly generated transaction ID

6. The DHCP server responds with the IP address offer, transaction ID, and a lifetime (lease time for 3600 seconds). The offer IP address is the next available IP address from the pool of available IP addresses. For example, if the gateway is 192.168.1.1 and the subnet mask is 255.255.255.0 then the available IP addresses are between the range 192.168.1.2 - 192.168.1.254

7. The client responds with a DHCP request by choosing the offered IP address and a new transaction ID (old transaction ID + 1)

8. The DHCP server responds with an acknowledgement confirming the chosen IP address. The DHCP server registers that the IP address is taken

9. Every new client connection to the DHCP server will start a new DHCP server transaction and an offer. Test for new client requesting IP address

10. When the simulation is in progress, do not close the server or clients and if the DHCP server is killed all the IP allocations are lost

11. Print all the communication between the DHCP server and the client on the terminal console

12. A structure can be used to store the IP addresses, transaction ID, and the lifetime as shown below. The structure is then used for all the communications

13. An example DHCP transaction is shown below in Figure 1

14. Test the DHCP server and client to make sure the demonstrations are working.

Request for Solution File

Ask an Expert for Answer!!
Computer Networking: Create a c-based client-server architecture using a udp
Reference No:- TGS02741033

Expected delivery within 24 Hours