Saturday, January 26, 2013

Free networking class via Coursera.org...

I signed up for a class on coursera.org.  Well, that's not true - I signed up for 17 classes on coursera.org.  The classes are all free, and they are taught by professors from top notch universities.  I just started the "Introduction to Computer Networks" class.  It's already been incredibly interesting, and I'm very happy I signed up for it.

The class has already started, but if you don't really care about the grade you get out of the class, and you have an interest in learning how computer networks work, then don't hesitate to sign up. 

The lecture videos have been very straight forward so far, and the video length for each of the lecture segments are in easy to digest (short) segments. This lends itself to being easy to watch during a lunch break, or if you have 30 minutes or less available in the evenings. Most videos have been around 15 minutes or less, but I have found it useful to re-watch segments after realizing that I might have missed something important.

We covered information that explains how latency is computed and it made me realize that, even though it is not difficult to understand latency, there is more to latency than I thought. I have always generalized latency to meaning lag.  ie, playing some online game might be choppy for me due to network latency. That might be true, but now I understand what the latency is.

The way I understood latency explained is that latency is the transmission delay (amount of time it takes to put bits of data onto a "wire") plus the propagation delay (amount of time  for the bits to travel the distance from source host to the target host). 

L = latency, M = message length in bits, R = transmission rate, C = speed of light, and D = length / (2/3) C, then:

Transmission delay : M/R
Propagation delay : R = Length / (2/3) C

Therefore:

Latency : L = M/R + D

When you break it down in that way, then it seems pretty clear as to what might be causing high latency if you check out 1) where the target host is that you are connected to, 2) what your bandwidth is for your network connection, and 3) how much data you are transferring.

Something else we covered was the Nyquist Limit which tells us how much data can be sent given a certain bandwidth.  It was a fairly brief description, and the main thing I got out of it was how to use the formula.  :)  

The formula is :

Rate = 2 * Bandwidth * log(base 2)V bits per second

V is the number of signal levels that are being used.

Here is a sample question from the homework:

TV channels are 6 MHz wide. How much data can be sent per second, if four-level digital signals are used? Assume a noiseless channel, and use the Nyquist limit.

Fun stuff! Apparently the class will eventually include some java programming assignments, so I'm looking forward to those.



No comments:

Post a Comment