$29
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:
C = Blog<sub2</sub( 1 + S/N)
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 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 three parameters (link ID, file/packet size, and signal power) 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 three backend servers, named Back-Server A, Back-Server B and Back-Server C. Back-Servers A and B are storage servers. Each of them possesses a database file, database_a.csv and database_b.csv, respectively, in which attribute values regarding information of links are stored. A toy 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_a.csv and database_b.csv, there will be only five columns of numbers without names of attributes. The Back-Server C is a computing server. It receives data from the AWS server, performs computational tasks, and returns the results 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, & C. communicate over UDP connections.
The AWS server searches for the information of the designated link (identified by Link ID) over storage servers. After receiving replies from storage servers, the AWS server then sends the link information (bandwidth, link length, propagation velocity, noise power) with client inputs (link ID, file size, signal power) to the computing server. Once the AWS server receives the computed results (which will be end-to-end delay, propagation delay, and transmission delay) from server C, it finally communicates the end-to-end delay to the client in the required format (this is also an example of how a cloud-computing service such Amazon Web Services might speed up a large computation task offloaded by the client).