This page is dedicated to the class on network Fundamental given to MSc 1A (RES1) and Mastères Spécialisés (F2R001A). You will find on this page a record of the classes (when technology allows it). You can use comments to ask (and answer) questions about the classes. This blog contains also some exercises and old exams, you will find them by selecting the Tag “Exercice” on the left of the page. The answers to the questions are located in the comments. You can also add some precisions or ask questions on the answers using yourself comments.
All the classes will also be available on a RSS flow that can be synchronised with iTune, android,…
The goal of this first lecture is to give you an overview of terminology and main principles used in modern data networks. At the end of the classes you will understand the notion of packet data network and the impact of this technology. You will also be familiarised with the OSI Reference Model and its strange vocabulary.
This class contains video materials recorded 2 years ago. This year the class is evolving since we will introduce more practicals using Ardiuno devices. So basic program in C will help to better understand what is behind concepts. The lecture is also very close to the MOOC Principe des réseaux de données (see https://www.france-universite-numerique-mooc.fr/courses/ to register (only in French))
Teacher version (with animation and exercise corrections)Basis_profx2
I give the lecture agenda and how this blog works. If you read this blog you are certainly aware of its existence.
A Top dow approach of the network giving details of a well known application (Web) and how in fact we can just say that it is interaction with a black box. We give the name of these interaction (Request, Indication, Response and Confirmation) and see that the black box can be decomposed itself into black boxes.
ISO Reference Model
Here we are, the famous OSI seven layer model. We look at the strange name it uses such as PDU, SDU and SAP. We see the recursive nature of layering, We look at the seven layers and why we don’t have to focus on that number.
We have a quick view of the different standardization bodies in the telecommunication area and how we can access the documents
Even if we don’t focus too much on the physical layer, we see the property we expect from the physical layer (such as clock synchronization) and some way to code binary information.
Exercises on serial bus on Arduino
SPI bus with LCD
We are going to study some serial bus, we can find on Arduino UNO platform. We will use USB to download code and monitor its behavior. We will also use SPI bus to connect a LCD screen. To have a LCD screen working with the SPI, the Arduino Library has to be change to this one.
Program HeloWord_SPI.ino allows you to test if the SPI bus works.
Change the program to display a string you will type on the console.
Simple transmission with I2C
The connection between the two Arduino is given in the following scheme. Beware, if you have an Arduino UNO you may have to use A4 and A5.
For throughput measurement, we change the payload size and we measure the round trip time. Since no global clock exists between the sender and the receiver, the sender will include its own time when it will send the request, the receiver will echo that time.
When a byte is added, how many extra bits are sent on the wire? What is the speed of the serial bus?
Data Link Layer
We will wend more time on the Data Link layer since here we can illustrate the protocol behaviors and detail all the elements. One main goal of layer 2 is to protect against transmission errors that can occur.
I2C error rate
Do you have some error on the link ?
Adding transmission error
I2C bus is very reliable, so we will introduce artificially some transmission errors by modifying the Wire library. Look if your .../libraries/Wire/Wire.h and ..library/Wire/Wire.cpp contain those lines. If not, modify the library.
This new version of ping is needed to set the BER. The last version of pong with error checking is unchanged.
Is it really the BER ? Why is it an Integer ?
Draw the number of frames received regarding the BER.
IETF Checksum and parity
How many incorrect frames are considered correct ? what is the impact ?
How many correct frames are considered incorrect ? what is the impact ?
Which method is the most efficient? Why ?
Uses CRC-4, try to find an erroneous sequence not detected by the CRC. What is the hamming distance between the original and the erroneous one. Is it possible with CRC-8 or 16?
Then we go really into the communication world. We see how we can detect a transmission error using CRC and that a frame with a wrong CRC will be discarded.
Send and Wait
Now we have all the element to build our first protocol called Send and Wait. We will try to formalize its description to make it look like a real standard. We use Finite State Machine to describe its behavior.
Send and wait implementation
Modify the code to take a sentence through the monitor and display it on the LCD screen.
Let’s T1 the timer value and Tmin the time it takes to send correctly a frame.
Define analytically the time it takes to send 1 KiB of information.
Measure in the program the Tmin value.
Modify the program to verify the result in function of the BER
We will not have time during the class to study HDLC, but you can watch the video if you are interested.
For this protocol, we study the framing, how we divided a continuous flow of information into limited size PDUs and the meaning of all HDLC fields.
We look in more detail and at layer 3, why it is good to cut the information in little pieces called packets. We study French geography and why packets offer a better multiplexing and good performances.
Finally we have a look on the Connection Oriented mode and the Datagram, se the main differences in term of Quality of Service. When also visit the famous hour glass model for IP or how the OSI RM can be reviewed by IETF.
On the blog there is at the moment one and only one exercises, I fact it was last year exam. I will put more materials soon.
This exercise allows you to study the behavior of the TCP Finite State Machine, how we can convert positive acknowledgments into a negative one and problem we may have when we increase transmission speed.
There is some exams but without corrections on the old version of the blog.