Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Programming Assignment 1: UDP Ping Client and Server Using UDP sockets, you will write a client and server program in Python that enables the client

Programming Assignment 1: UDP Ping Client and Server

Using UDP sockets, you will write a client and server program in Python that enables the client to determine the round-trip time (RTT) to the server. To determine the RTT delay, the client records the time on sending a ping request to the server, and then records the time on receiving a ping response from the server. The difference in the two times is the RTT.

The ping message contains 2 4-byte integers and must be encoded in network-byte order as follows: 4-byte message type with an integer value of 1 or 2 => (Message type = 1 for a ping request (message from client to server) & Message type = 2 for a ping response (message from server to client)) Needs a 4-byte sequence number with a unique integer value starting from 1 (A message sequence number is a unique identifier for the packet. Start numbering from 1, and increment the number by one for each message sent. For example, the sequence number of the first ping request sent from the client is 1, the second ping request has a sequence number of 2, and so on, up until the last ping request which should have a sequence number of 10.) . In the ping response, the server should echo back the clients sequence number.

The client program should take the following input parameters: IP address of server & IP port of server

The client program will read in the above input parameters, and send 10 ping requests consecutively, waiting for a response each time, to the server running at the specified IP address and port. After each response is received, the client calculates and prints the RTT for the message. If no response is received within a certain amount of time (one second) (The socket library provides the ability to set a timeout value on a socket. An exception is raised if the timeout value expires before the socket operation has completed.), the client notes that the request timed out and then sends the next request up to the maximum. The program output should print out trace information when data is sent and received, and account for error conditions. Trace output must include: (At start of output, print a message indicating the IP address and port of the server being pinged, For each ping response received, print RTT along with sequence number of ping message, For no ping response, print Message timed out along with sequence number of the ping message)

After completion, print the following statistics (similar to output of UNIX ping utility); =>(Number of packets sent, received, lost (% loss rate), Min, Max, Average RTT for all acknowledged ping packets)

The server will wait in an infinite loop to receive ping requests from the client. On receiving a ping request, the server program will randomly (A programming language will typically provide a random number generator in a random standard library. For example, in Python, this can be found using import random and random.int() function.) decide whether to respond to ping requests to simulate network packet loss. In the case that the server responds, it sends a ping response containing the appropriate message type, and client sequence number. In the case that the server decides not to respond, no ping response is sent, and the server waits for another ping request. To implement random loss, the server should generate a random integer between 0 and 10 and if the result is

image text in transcribed

Examples of the client program trace output are as follows:

Pinging 127.0.0.1, 12000:

Ping message number 1 timed out

Ping message number 2 RTT: 0.002154 secs

.

Ping message number 10 RTT: 0.000194 secs

Examples of the server program trace output are as follows:

The server is ready to receive on port: 12000

Message with sequence number 1 dropped

Responding to ping request with sequence number 2

Responding to ping request with sequence number 10

In a ping request, the application data has the following format: 0 4 (bytes) Message Type (1- request) Message sequence number (e.g. 5) In a ping response, the application data has the following format 0 4 (bytes) Message Type (2 response) Message sequence number (e.g. 5)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

DB2 11 The Database For Big Data And Analytics

Authors: Cristian Molaro, Surekha Parekh, Terry Purcell, Julian Stuhler

1st Edition

1583473858, 978-1583473856

More Books

Students also viewed these Databases questions

Question

Did I see new opportunities and act on them? What surprised me?

Answered: 1 week ago

Question

How will the members be held accountable?

Answered: 1 week ago

Question

a. How will the leader be selected?

Answered: 1 week ago