Reliable transfer
Transfert fiable
Open questions
Questions ouvertes
Transmission links have sometimes different upstream and downstream bandwidths. A typical example are access networks that use ADSL (Asymmetric Digital Subscriber Lines). Consider two hosts connected via an ADSL link having an upstream bandwidth of 1 Mbps and a downstream bandwidth of 50 Mbps. The propagation delay between the two hosts is 10 milliseconds. What is the maximum throughput, expressed in frames/second, that the alternating bit protocol can obtain on this link if each data frame has a length of 125 bytes and acknowledgments are 25 bytes long. Same question if the protocol is modified to support 1500 bytes long data frames.
How would you set the duration of the retransmission timer in the alternating bit protocol ?
Comment fixeriez-vous le délai du timer de retransmission dans le protocole du bit alterné ?
A version of the Alternating Bit Protocol supporting variable length frames uses a header that contains the following fields :
Une version du protocole du bit alterné à frame de longueur variable utilise une entête qui contient les champs suivants :
a `number` (0 or 1)
un `nombre` (0 ou 1)
a `length` field that indicates the length of the data
un champ `length` (taille) qui indique la taille des données
a Cyclic Redundancy Check (`CRC`)
un contrôle de redondance cyclique (`CRC`)
Derive a mathematical expression that provides the `goodput`, i.e. the amount of payload bytes that have been transmitted during a period of time, achieved by the Alternating Bit Protocol assuming that :
Obtenez une expression mathématique pour le `goodput`, c'est-à-dire la quantité de bytes pouvant être transmis pendant une période de temps donnée, issu du protocole du bit alterné en considérant que :
Each frame contains `D` bytes of data and `c` bytes of control information
Chaque frame contient `D` bytes de donnée et `c` bytes d'information de contrôle
Each acknowledgment contains `c` bytes of control information
Chaque acknowledgment contient `c` bytes de information de contrôle
The bandwidth of the two directions of the link is set to `B` bits per second
La bande passante dans les deux directions du câble est de `B` bits par seconde
The delay between the two hosts is `s` seconds in both directions
Le délai entre deux hôtes est de `s` secondes dans les deux sens
there are no transmission errors
il n'y a pas d'erreur de transmission
when there are no losses
dans le cas où il n'y a pas de pertes
when every second acknowledgment is discarded due to transmission errors
lorsqu'un acknowledgment sur deux est ignoré à cause des erreurs de transmission
Same question when using selective repeat instead of go-back-n. Note that the answer is not necessarily the same.
Même question en utilisant du selective repeat à la place du go-back-n. Remarquez que la réponse n'est pas nécessairement la même.
Practice
Exercices
Reliable protocols depend on error detection algorithms to detect transmission errors. The following questions will reinforce your understanding of these algorithms.
Les protocoles fiables dépendent d'algorithmes de détection des erreurs de transmission. Les questions suivantes vont vous permettre d'approfondir votre compréhension de ces algorithmes.
Reliable protocols rely on different types of checksums to verify whether frames have been affected by transmission errors. The most frequently used checksums are :
Les protocoles fiables reposent sur différents types de checksums afin de vérifier si des erreurs de transmission ont affecté les frames. Les checksums les plus fréquemment utilisés sont :
the Internet checksum used by UDP, TCP and other Internet protocols which is defined in :rfc:`1071` and implemented in various libraries.
the 16 bits or the 32 bits Cyclical Redundancy Checks (CRC) that are often used on disks, in zip archives and in datalink layer protocols. See http://rosettacode.org/wiki/CRC-32 for CRC-32 implementations in various languages.
The Cyclic Redundancy Checks (CRCs) are efficient error detection codes that are able to detect :
Les contrôles de redondance cyclique (CRC) sont des outils efficaces de détection d'erreurs pouvant détecter :
all errors that affect an odd number of bits
toutes les erreurs affectant un nombre impair de bits
all errors that affect a sequence of bits which is shorter than the length of the CRC
toutes les errors affectant une séquence de bits plus courte que la longueur du CRC
Implement a small software that computes the CRC-32 for a text file. Then, modify the contents of the file to change an even number of bits or an odd number of bits inside the file. When modifying the file, remember that an ASCII file is composed of 8 bits characters that are encoded by using the ASCII table that you can find at : http://en.wikipedia.org/wiki/ASCII . You can also write a small program that produces binary files that are a small variation of each other.
Discussion questions
Questions de discussion
Consider two high-end servers connected back-to-back by using a 10 Gbps interface. If the delay between the two servers is one millisecond, what is the throughput that can be achieved by a reliable protocol that is using 10,000 bits frames and a window of
one frame
une frame
ten frames
dix frames
hundred frames
cent frames
Is it possible for a go-back-n receiver to inter-operate with a selective-repeat sender ? Justify your answer.
Est-il possible pour un récepteur go-back-n de fonctionner avec un émetteur selective-repeat ? Justifiez.
Is it possible for a selective-repeat receiver to inter-operate with a go-back-n sender ? Justify your answer.
Est-il possible pour un récepteur selective-repeat de fonctionner avec un émetteur go-back-n ? Justifiez.
Same question as above, but assume now that both the sender and the receiver implement selective repeat. Note that the answer can be different from the above question.