# Detection des collisions

Influende du temps de propagation.

```
Postes : A   B   C   D   E
         *---*---*---*---*
         .   .   .   .   .
T0 :     ####.___.___.___.
         .   .   .   .   .
T0+x :   .___.####___._xxx
         .   .   .   .   .
T0+y :   .___.__####_xxx_.
         .   .   .   .   .
T0+z :   .___.____#x#x___.
         .   .   .   .   .
```

à T0+z, la collision à lieu, A et E ont fini d'émettre et n'ont pas détecté la collision,
elles pensent pouvoir continuer à envoyer des trames sur le médium.

## Solution : slot-time

Pour éviter ce genre de collision, nous introduisons un délai avant chaque nouvelle transmission
pour s'assurer que l'information ait pu rejoindre tout le réseau avant d'émettre à nouveau.

Ce délai (slot-time) est généralement choisi à deux fois le temps de parcours de l'information sur tout le médium.

## Taille minimum d'une trame

Pour que l'on puisse détecter la collision, il faut que la station émettrice
soit toujours en train d'émettre lorsque la station la plus éloignée détecte l'émission.

Il faut donc que le temps d'émission d'un trame de longueur minimale soit supérieure au slot-time.

ex :

vitesse | taille mini | slot time

...

## Reprise après collision (binary exponential backoff)

Après la détection de la collision, la station doit retransmettre la même trame au bout d'un temps aléatoire dépassant le slot-time  et du nombre de collisions successives déjà subies.

Le nompre de collisions successives est proportionnel au  temps de retransmission.

Calcul du temps d'attente : M x slot Time
- 0 =< M < 2^k
	- 0 < k < 2^(n-1).
		- n est le nombre de collision par rapport à la station


- le nombre aléatoire est d'abord choisi dans [0, 1]
- puis dans [0, 3]
- puis [0, 7]
- ...
- à la 10e tentative, [0, 1023]
- à la 16e tentative, la transmission est abandonnée.

## Exemple

```
station :  A   B   C   D   E
          -*---*---*---*---*-

```

A et E subissent une collision :

### Cas 1

```
station :  A               E
          -*---*-#####-*---*-
n :        1               1
k :      [0,1]           [0,1]
```

règles :

- k_A = 0 & k_E = 0 => collision
- k_A = 0 & k_E = 1 => pas de collision
- k_A = 1 & k_E = 0 => pas de collision
- k_A = 1 & k_E = 1 => pas de collision

valeurs de k

| A | E |
|---|---|
| 0 | 0 |
| 0 | 1 |
| 1 | 0 |
| 1 | 1 |


probabilité que A gagne : 1/4
probabilité que E gagne : 1/4
probabilité de collision à nouveau : 1/2


### Cas 2

```
station :  A               E
          -*---*-#####-*---*-
n :        1               2
k :      [0,1]         [0,1,2,3]
```

valeurs de k

| A | E |
|---|---|
| 0 | 0 |
| 0 | 1 |
| 0 | 2 |
| 0 | 3 |
| 1 | 0 |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |

probabilité que A gagne : 5/8
probabilité que E gagne : 3/8
probabilité de collision à nouveau : 2/8 : 1/4


## Domaine de collision

- sur une topologie BUS, ou sur une topologie étoile constituée d'un HUB, le signal ethernet est ...

## Conclusion

le CSMA/CD n'est potentiellement pas adapté aux applications temps réel car non déterministe


# CSMA/CR (Collision .. with Collision Resolution)

dans la méthode CSMA/CR, la station utilises des fonctionnalité plus élabotées pour détecter une collision dès que possible.

Pour éviter les collisions en chaine, une station qui transmet une trame cesse d'émettre si elle recoit un bit différent du sien ; 
- Une station qui émet un bit à 1 s'arrete si elle voir passer sur le support un bit à zéro.
- Une station qui recoit un bit identique à celui qu'elle a émis continue à émettre.

## Évolutions

| Port        | mode        |
|-------------|-------------|
| 10BT        | Half-duplex |
| 100BASETx   | Full-duplex |
| GB ethernet | Full-duplex |

### Switch

```
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
  |     |     :     |     |
  A     B     C     D     E
```

| Port | Mac |
|------|-----|
| 1    | A   |
| 2    | B   |
| 3    | C   |
| 4    | D   |
| 5    | E   |
| 6    |     |

chaque port du switch est un domaine de collision.
Le switch n'envoie le trafic que sur le port concerné.

# Trame ethernet

```
+-----------+-----+-----------+----------+------+----------+-----+-----+
| préambule | SFD | Dést. MAC | Src. MAC | Type |  donnée  | FCS | IPG |
+-----------+-----+-----------+----------+------+----------+-----+-----+
```

- préambule :             7 octets pour synchroniser les horloges du traget.
- Start Frame DElimiter : 1 octet qui indique au récepteur que le champ destination MAC démarre au prochain octet (synchro)

- Dest : 6 octets d'une addresse MAC
- Src :  6 octets d'une addresse MAC

## Domaine de Broadcast

Au contraire d'une communication unicast, il est possible d'adresser des trames de données
à tous les membred d'un même réseau uniquement par des adresses spécifiques.

Adresse MAC de diffusion générale est FF.FF.FF.FF.FF.FF

Un switch recevant une trame broadcast sur l'un de ses ports la diffusera sur tous les autres ports.

> note :
> un broadcast propagé dans un réseau contenant un cycle risque de se répéter à l'infini sur ce dernier.
> La solution est d'utiliser des switch implémentant le protocole spanning tree ;
> Qui réduit le nombre de récepteur des paquets broadcast à un réseau ne contenant pas de cycles entre les switchs.

Un routeur ne propage pas de broadcast car il interface deux réseaux différents, et un broadcast est adressé à un seul réseau.

## VLAN

un VLAN permet de, virtuellement, utiliser une seule liaison pour véhiculer deux réseaux séparés entre deux switchs qui le supportent.

```
[ switch A ] =trunk= [ switch B ]
    |  |                 |  |
    |  |                 |  |
   [A][X]               [B][Y]
   /    \               /    \
vlan1  vlan2         vlan1  vlan2
  .      .              .    .
  . . . . . . . . . . . .    .
         . . . . . . . . . . .
```

Sur un switch, chaque VLAN est un domaine de broadcast.

Il est possible de joindre des VLAN avec un Routeur ;
mais il est préférable de contrôler l'accès entre deux VLAN
de responsabilités différentes avec un Routeur configuré en pare-feu.

> note : LAN est une norme 802

# Réseau WIFI

## Topologies

### Ad-Hoc / indépendant

```
 A
 | \
 |  \
 B -- C
```

Les enteines de chaques membre peut communiquer dirrectement avec celles des autres membres du réseau.

### Infrastructure

```
    A
    |
B --o-- C
    ^\_ point d'accès
```

Les membres du réseau sont tous connectés à un point d'accès.

## Utilisation des ondes

Comme la bande FM, les réseaux wifi sont divisées en canaux se chevauchant.

```
 -------------------------------------------------
  ......1...... ........6..... .......11.....
    ......2....... .......7...... .....12......
      .......3....... ......8....... .....13.....
        .......4....... ......9.......
          ........5....... ....10.......
 
  ^^^^^^^^^^^^^\_ 22 Mhz
```

- 13 bandes
-  3 bandes distinctes
- 22 Mhz de longueur
- 2.4 Ghz

## Codages

- DSSS
- FHSS
- OFDM :  Orthogonal Frequency Division Multiplexing
- OFDMA : Orthogonal Frequency Division Multiple Access

## Les couches 802.11

- Liaison
	- LLC : 802.2
	- MAC : 802.11
- Physique
	- FHSS
	- ...
	- OFDMA

## Standards

| Nom           |  802.11b | 802.11a | 802.11g |  802.11n | 802.11ac |     802.11ax |
|---------------|----------|---------|---------|----------|----------|--------------|
| Fréquences    |  2.4 Ghz |       5 |     2.4 | 2.4 ou 5 |        5 |     2.4 ou 5 |
| Transfert max |    11 Mb |      54 |      54 |      150 |   3.4 Gb |         10.5 |
| Modulation    |     DSSS |    OFDM |    OFDM |     OFDM |     OFDM | OFDL / OFDMA |
| Portée        | 35-140 m |  35-120 |  35-140 |   50-250 |   20-300 |       20-300 |
| année         |     1999 |    1999 |    2003 |     2009 |     2013 |         2021 |

## Méthode d'accès au médium

CSMA/CD inapproprié
- dificile d'écouter le médium lors de la transmission
- 2 stations peuvent être visibles l'une de l'autre

CSMA/CA méthode adapté
- carrier sense multiple access
- collision avoidance : évitement des collisions
- méthode par compétition

### principe du CSMA/CA

1. Une station souhaitant émettre écoute si le médium est libre.
	- si c'est le cas, elle attend pendant un temps fixe (DIFS) + temps aléatoire.
2. si le média est toujours libre, alors elle émet.

acquittement (ack) après un silence SIFS.

```
 ------------------------------
 Source :        .###..........
 Destination :   .....#........
 Autre station : .......###....
                     ^\_ ACK
```

