Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
EE450 Socket Programming Project
(The deadline is the same for all on-campus and DEN off-campus students)
Hard Deadline (Strictly enforced)
The objective of this assignment is to familiarize you with UNIX socket programming. This
assignment is worth 10% of your overall grade in this course. It is an individual assignment and
no collaborations are allowed. Any cheating will result in an automatic F in the course (not
just in the assignment).
If you have any doubts/questions, post your questions on Piazza. You must discuss all
project related issues on Piazza. We will give those who actively help others out by
answering questions on Piazza up to 10 bonus points to the project.
You can ask TAs any question about the content of the project but TAs have right to reject
your request for debugging.
Problem Statement:
In information theory, the Shannon-Hartley theorem tells the maximum rate at which information
can be transmitted over a communications channel of a specified bandwidth in the presence of
noise. It is an application of the noisy-channel coding theorem to the archetypal case of a
continuous-time analog communications channel subject to Gaussian noise. The theorem
establishes Shannon's channel capacity for such a communication link, a bound on the maximum
amount of error-free information per time unit that can be transmitted with a specified bandwidth
in the presence of the noise interference. The law is named after Claude Shannon and Ralph
Hartley. Formulated by:
log (1 ) 2 N S C = B +
where
C is the channel capacity in bits per second, a theoretical upper bound on information rate;
B is the bandwidth of the channel in hertz (pass-band bandwidth in case of a band-pass signal);
S is the average received signal power over the bandwidth measured in watts (or volts squared);
N is the average noise power over the bandwidth, measured in watts (or volts squared).
In this project, you will implement a model computational offloading where a single client issues
two functions (compute and write) and parameters (depends on the function) to the AWS server
and expects the reply for the end-to-end delay of the designated link.
The setup of the network is illustrated in Figure 1. The server communicating with the client acts
similar as AWS (Amazon Web Server). There are two back-end servers, named Back-Server A
and Back-Server B. Back-Servers A is a storage server. It possesses a database file,
database.txt, in which attribute values regarding information of links are stored (Original data
and data wrote by client). A sample database is demonstrated in Table 1. There are five attributes
in the database, which are {Link ID, Bandwidth, Length, Velocity (Propagation Speed), Noise
Power}, from left to right. In database.txt, there will be only five columns of numbers without
names of attributes.The Back-end Server B is a computing server. It receives data from the AWS server, performs
computational tasks, and returns the result to the AWS server. The monitor connecting to the
AWS server is used to record results of every steps and print them out. The client, monitor and
the AWS communicate over TCP connections while the AWS and the Back-Servers A & B
communicate over UDP connections.