510 行
20 KiB
Markdown
510 行
20 KiB
Markdown
# TP Réseau Bonnet Ronan et Billard Nathan
|
|
|
|
## Question 1
|
|
|
|
__Réaliser un échange de données via TCP et UDP__
|
|
|
|
Choix arbitraire du port : 5678
|
|
|
|
### avec TCP
|
|
|
|
On lance la commande suivante sur la machine puits:
|
|
|
|
```sh
|
|
tsock -p 5678
|
|
```
|
|
|
|
ensuite on execute tsock sur la machine source:
|
|
|
|
```sh
|
|
tsock -s insa-20155 5678
|
|
```
|
|
|
|
Sur la machine puits, on observe:
|
|
|
|
```
|
|
PUITS: lg_buf_appli=30, port=5678, nb_buf_appli=infini, TP= tcp
|
|
PUITS: socket
|
|
PUITS: Reception n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 2 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 3 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
PUITS: Reception n° 4 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
PUITS: Reception n° 5 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
PUITS: Reception n° 6 ( 30) [ 6fffffffffffffffffffffffff]
|
|
PUITS: Reception n° 7 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
PUITS: Reception n° 8 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
PUITS: Reception n° 9 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
PUITS: Reception n° 10 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
```
|
|
|
|
|
|
Sur la machine source, on observe:
|
|
|
|
```
|
|
SOURCE: lg_buf_appli=30, port=5678, nb_buf_appli=10, TP= tcp -> insa-20155
|
|
SOURCE: socket
|
|
SOURCE: connect
|
|
SOURCE: fin
|
|
SOURCE: Envoi n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
SOURCE: Envoi n° 2 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
SOURCE: Envoi n° 3 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
SOURCE: Envoi n° 4 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
SOURCE: Envoi n° 5 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
SOURCE: Envoi n° 6 ( 30) [ 6fffffffffffffffffffffffff]
|
|
SOURCE: Envoi n° 7 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
SOURCE: Envoi n° 8 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
SOURCE: Envoi n° 9 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
SOURCE: Envoi n° 10 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
```
|
|
|
|
|
|
*Observation* :
|
|
|
|
- déséquencement: pas de déséquencement car sur un même réseau local + TCP qui garantit l'ordre
|
|
- pertes: TCP garantit la fiabilité (non perte de données)
|
|
|
|
### avec UDP
|
|
|
|
Sur la machine puits
|
|
```sh
|
|
tsock -p -u 5678
|
|
```
|
|
|
|
Sur la machine source
|
|
```sh
|
|
tsock -s -u insa-20155 5678
|
|
```
|
|
|
|
À la source, on observe:
|
|
|
|
```
|
|
SOURCE: lg_buf_appli=30, port=5678, nb_buf_appli=10, TP= udp -> insa-20155
|
|
SOURCE: socket
|
|
SOURCE: Envoi n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
SOURCE: Envoi n° 2 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
SOURCE: Envoi n° 3 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
SOURCE: Envoi n° 4 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
SOURCE: Envoi n° 5 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
SOURCE: Envoi n° 6 ( 30) [ 6fffffffffffffffffffffffff]
|
|
SOURCE: Envoi n° 7 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
SOURCE: Envoi n° 8 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
SOURCE: Envoi n° 9 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
SOURCE: Envoi n° 10 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
```
|
|
|
|
Dans le puits, on observe
|
|
|
|
```
|
|
PUITS: lg_buf_appli=30, port=5678, nb_buf_appli=infini, TP= udp
|
|
PUITS: socket
|
|
PUITS: Reception n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 2 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 3 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 4 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 5 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
PUITS: Reception n° 6 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
PUITS: Reception n° 7 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
PUITS: Reception n° 8 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
PUITS: Reception n° 9 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
PUITS: Reception n° 10 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
PUITS: Reception n° 11 ( 30) [ 6fffffffffffffffffffffffff]
|
|
PUITS: Reception n° 12 ( 30) [ 6fffffffffffffffffffffffff]
|
|
PUITS: Reception n° 13 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
PUITS: Reception n° 14 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
PUITS: Reception n° 15 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
PUITS: Reception n° 16 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
PUITS: Reception n° 17 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
PUITS: Reception n° 18 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
PUITS: Reception n° 19 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
PUITS: Reception n° 20 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
```
|
|
|
|
*Observation* :
|
|
|
|
- désequencement: pas de déséquencement car on est sur un réseau local
|
|
- pertes: pas de pertes quand les buffers ont de la place
|
|
|
|
### Proposition d'experience pour montrer la non-fiabilité
|
|
|
|
On réduit la place dans les buffers et on envoie des messages qui vont congestionner les buffers.
|
|
|
|
|
|
```sh
|
|
tsock -p -u -t 10 5678
|
|
```
|
|
|
|
|
|
```sh
|
|
tsock -s -u -n 20 insa-20155 5678
|
|
```
|
|
|
|
Output de la source
|
|
|
|
```
|
|
SOURCE: lg_buf_appli=30, port=5678, nb_buf_appli=20, TP= udp -> insa-20155
|
|
PUITS: socket
|
|
SOURCE: Envoi n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
SOURCE: Envoi n° 2 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
SOURCE: Envoi n° 3 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
SOURCE: Envoi n° 4 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
SOURCE: Envoi n° 5 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
SOURCE: Envoi n° 6 ( 30) [ 6fffffffffffffffffffffffff]
|
|
SOURCE: Envoi n° 7 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
SOURCE: Envoi n° 8 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
SOURCE: Envoi n° 9 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
SOURCE: Envoi n° 10 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
SOURCE: Envoi n° 11 ( 30) [ 11kkkkkkkkkkkkkkkkkkkkkkkkk]
|
|
SOURCE: Envoi n° 12 ( 30) [ 12lllllllllllllllllllllllll]
|
|
SOURCE: Envoi n° 13 ( 30) [ 13mmmmmmmmmmmmmmmmmmmmmmmmm]
|
|
SOURCE: Envoi n° 14 ( 30) [ 14nnnnnnnnnnnnnnnnnnnnnnnnn]
|
|
SOURCE: Envoi n° 15 ( 30) [ 15ooooooooooooooooooooooooo]
|
|
SOURCE: Envoi n° 16 ( 30) [ 16ppppppppppppppppppppppppp]
|
|
SOURCE: Envoi n° 17 ( 30) [ 17qqqqqqqqqqqqqqqqqqqqqqqqq]
|
|
SOURCE: Envoi n° 18 ( 30) [ 18rrrrrrrrrrrrrrrrrrrrrrrrr]
|
|
SOURCE: Envoi n° 19 ( 30) [ 19sssssssssssssssssssssssss]
|
|
SOURCE: Envoi n° 20 ( 30) [ 20ttttttttttttttttttttttttt]
|
|
```
|
|
|
|
Output du puit
|
|
```
|
|
PUITS: lg_buf_appli=30, port=5678, nb_buf_appli=infini, lg_buf_TP=10, TP= udp
|
|
PUITS: socket
|
|
PUITS: setsockopt: rcvbuf OK
|
|
PUITS: rcvbuf
|
|
PUITS: Reception n° 1 ( 20) [ 1aaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 2 ( 20) [ 1aaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 3 ( 20) [ 1aaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 4 ( 20) [ 1aaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 5 ( 20) [ 2bbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 6 ( 20) [ 2bbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 7 ( 20) [ 9iiiiiiiiiiiiiii]
|
|
PUITS: Reception n° 8 ( 20) [ 15ooooooooooooooo]
|
|
PUITS: Reception n° 9 ( 20) [ 17qqqqqqqqqqqqqqq]
|
|
PUITS: Reception n° 10 ( 20) [ 18rrrrrrrrrrrrrrr]
|
|
```
|
|
|
|
> On peut aussi enlever l'affichage et augmenter le nombre de messages
|
|
|
|
*Observation* :
|
|
|
|
- pertes quand le buffer du puits est plein
|
|
|
|
## Question 2
|
|
|
|
__Même chose en changeant l'ordre du puits et de la source__
|
|
|
|
### avec TCP
|
|
|
|
Sur la machine source
|
|
```sh
|
|
tsock -s insa-20155 5678
|
|
```
|
|
|
|
On observe sur la machine source :
|
|
|
|
```
|
|
SOURCE: lg_buf_appli=30, port=5678, nb_buf_appli=10, TP= tcp -> insa-20155
|
|
SOURCE: socket
|
|
SOURCE: connect: Connection refused
|
|
errno=111
|
|
```
|
|
|
|
|
|
On lance la commande suivante sur la machine puits :
|
|
```sh
|
|
tsock -p 5678
|
|
```
|
|
|
|
Rien ne se passe car on est arrivé trop tard.
|
|
|
|
|
|
*Observation* :
|
|
|
|
- La connexion échoue -> pas de données échangées
|
|
|
|
### avec UDP
|
|
|
|
On exécute sur la machine source :
|
|
```sh
|
|
tsock -s -u insa-20155 5678
|
|
```
|
|
|
|
et ensuite sur la machine puits :
|
|
```sh
|
|
tsock -p -u 5678
|
|
```
|
|
|
|
On observe à la source :
|
|
|
|
```
|
|
SOURCE: lg_buf_appli=30, port=5678, nb_buf_appli=10, TP= udp -> insa-20155
|
|
SOURCE: socket
|
|
SOURCE: Envoi n° 1 ( 30) [ 1aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
SOURCE: Envoi n° 2 ( 30) [ 2bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
SOURCE: Envoi n° 3 ( 30) [ 3ccccccccccccccccccccccccc]
|
|
SOURCE: Envoi n° 4 ( 30) [ 4ddddddddddddddddddddddddd]
|
|
SOURCE: Envoi n° 5 ( 30) [ 5eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
SOURCE: Envoi n° 6 ( 30) [ 6fffffffffffffffffffffffff]
|
|
SOURCE: Envoi n° 7 ( 30) [ 7ggggggggggggggggggggggggg]
|
|
SOURCE: Envoi n° 8 ( 30) [ 8hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
SOURCE: Envoi n° 9 ( 30) [ 9iiiiiiiiiiiiiiiiiiiiiiiii]
|
|
SOURCE: Envoi n° 10 ( 30) [ 10jjjjjjjjjjjjjjjjjjjjjjjjj]
|
|
```
|
|
|
|
On ne reçoit rien sur la machine puits.
|
|
|
|
Quand on envoie beaucoup de données, on reçoit certaines trames dans le puits
|
|
|
|
```
|
|
PUITS: lg_buf_appli=30, port=5678, nb_buf_appli=infini, TP= udp
|
|
PUITS: socket
|
|
PUITS: Reception n° 26406 ( 30) [-2125wwwwwwwwwwwwwwwwwwwwwwwww]
|
|
PUITS: Reception n° 26407 ( 30) [-2125xxxxxxxxxxxxxxxxxxxxxxxxx]
|
|
PUITS: Reception n° 26408 ( 30) [-2125xxxxxxxxxxxxxxxxxxxxxxxxx]
|
|
PUITS: Reception n° 26409 ( 30) [-2125yyyyyyyyyyyyyyyyyyyyyyyyy]
|
|
PUITS: Reception n° 26410 ( 30) [-2125yyyyyyyyyyyyyyyyyyyyyyyyy]
|
|
PUITS: Reception n° 26411 ( 30) [-2125aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 26412 ( 30) [-2125aaaaaaaaaaaaaaaaaaaaaaaaa]
|
|
PUITS: Reception n° 26413 ( 30) [-2125bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 26414 ( 30) [-2125bbbbbbbbbbbbbbbbbbbbbbbbb]
|
|
PUITS: Reception n° 26415 ( 30) [-2125ccccccccccccccccccccccccc]
|
|
PUITS: Reception n° 26416 ( 30) [-2125ccccccccccccccccccccccccc]
|
|
PUITS: Reception n° 26417 ( 30) [-2125ddddddddddddddddddddddddd]
|
|
PUITS: Reception n° 26418 ( 30) [-2125ddddddddddddddddddddddddd]
|
|
PUITS: Reception n° 26419 ( 30) [-2125eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
PUITS: Reception n° 26420 ( 30) [-2125eeeeeeeeeeeeeeeeeeeeeeeee]
|
|
PUITS: Reception n° 26421 ( 30) [-2124fffffffffffffffffffffffff]
|
|
PUITS: Reception n° 26422 ( 30) [-2124fffffffffffffffffffffffff]
|
|
PUITS: Reception n° 26423 ( 30) [-2124ggggggggggggggggggggggggg]
|
|
PUITS: Reception n° 26424 ( 30) [-2124ggggggggggggggggggggggggg]
|
|
PUITS: Reception n° 26425 ( 30) [-2124hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
PUITS: Reception n° 26426 ( 30) [-2124hhhhhhhhhhhhhhhhhhhhhhhhh]
|
|
```
|
|
|
|
|
|
*Observation* :
|
|
|
|
- Des données sont reçues quand la source envoi beaucoup de données, sinon on n'observe aucune donnée
|
|
|
|
## Question 3
|
|
|
|
__Capturer l'échange avec `tcpdump`__
|
|
|
|
Ici, on suppose que l'on va sur la machine hôte insa-20155
|
|
|
|
```sh
|
|
ssh tcpdump@insa-20155
|
|
```
|
|
|
|
On lance tcpdump en tant que root
|
|
|
|
```sh
|
|
sudo tcpdump port 5678
|
|
```
|
|
|
|
Quand on envoie des données TCP avec un puits présent, on observe
|
|
|
|
```
|
|
09:08:17.635928 IP insa-20154.insa-toulouse.fr.51189 > insa-20155.insa-toulouse.fr.5678: Flags [S], seq 601705128, win 64240, options [mss 1460,sackOK,TS val 4131103046 ecr 0,nop,wscale 10], length 0
|
|
09:08:17.636037 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [S.], seq 4035589501, ack 601705129, win 65160, options [mss 1460,sackOK,TS val 621274796 ecr 4131103046,nop,wscale 10], length 0
|
|
09:08:17.636155 IP insa-20154.insa-toulouse.fr.51189 > insa-20155.insa-toulouse.fr.5678: Flags [.], ack 1, win 63, options [nop,nop,TS val 4131103047 ecr 621274796], length 0
|
|
09:08:17.636244 IP insa-20154.insa-toulouse.fr.51189 > insa-20155.insa-toulouse.fr.5678: Flags [P.], seq 1:31, ack 1, win 63, options [nop,nop,TS val 4131103047 ecr 621274796], length 30
|
|
09:08:17.636271 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [.], ack 31, win 63, options [nop,nop,TS val 621274809 ecr 4131103047], length 0
|
|
09:08:17.636308 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [.], ack 31, win 63, options [nop,nop,TS val 621274809 ecr 4131103047,nop,nop,sack 1 {1:31}], length 0
|
|
09:08:17.636416 IP insa-20154.insa-toulouse.fr.51189 > insa-20155.insa-toulouse.fr.5678: Flags [FP.], seq 31:301, ack 1, win 63, options [nop,nop,TS val 4131103047 ecr 621274796], length 270
|
|
09:08:17.636551 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [.], ack 302, win 63, options [nop,nop,TS val 621274810 ecr 4131103047,nop,nop,sack 1 {31:302}], length 0
|
|
09:08:17.636864 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [F.], seq 1, ack 302, win 63, options [nop,nop,TS val 621274810 ecr 4131103047], length 0
|
|
09:08:17.636919 IP insa-20154.insa-toulouse.fr.51189 > insa-20155.insa-toulouse.fr.5678: Flags [.], ack 2, win 63, options [nop,nop,TS val 4131103047 ecr 621274810], length 0
|
|
09:08:17.637055 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.51189: Flags [R], seq 4035589503, win 0, length 0
|
|
```
|
|
|
|
|
|
Quand on envoie des données TCP sans puits présent, on observe
|
|
|
|
```
|
|
09:27:40.382167 IP insa-20154.insa-toulouse.fr.35073 > insa-20155.insa-toulouse.fr.5678: Flags [S], seq 2178196670, win 64240, options [mss 1460,sackOK,TS val 4132265792 ecr 0,nop,wscale 10], length 0
|
|
09:27:40.382229 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.35073: Flags [R.], seq 0, ack 2178196671, win 0, length 0
|
|
09:27:40.382167 IP insa-20154.insa-toulouse.fr.35073 > insa-20155.insa-toulouse.fr.5678: Flags [S], seq 2178196670, win 64240, options [mss 1460,sackOK,TS val 4132265792 ecr 0,nop,wscale 10], length 0
|
|
09:27:40.382255 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.35073: Flags [R.], seq 0, ack 1, win 0, length 0
|
|
09:27:40.382471 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.35073: Flags [R.], seq 0, ack 1, win 0, length 0
|
|
09:27:40.382472 IP insa-20155.insa-toulouse.fr.5678 > insa-20154.insa-toulouse.fr.35073: Flags [R.], seq 0, ack 1, win 0, length 0
|
|
```
|
|
|
|
Quand on envoie des données UDP avec puits ou sans puit, on observe
|
|
|
|
```
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056896 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.056967 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.057001 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.057001 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.057001 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
09:10:25.057001 IP insa-20154.insa-toulouse.fr.32851 > insa-20155.insa-toulouse.fr.5678: UDP, length 30
|
|
```
|
|
|
|
Qu'il y ait un puits ou pas, UDP envoie des données contrairement à TCP.\
|
|
On voit donc que UDP n'établit pas de connexion.
|
|
|
|
S'il n'y a pas de puits, TCP n'envoie pas de données.\
|
|
S'il y a un puits, en regardant les drapeaux, on retrouve l'établissement de la connexion:
|
|
|
|
- S = Syn pour la demande de connexion
|
|
- S. = Syn-Ack pour validation de la connexion et demande d'une connexion dans l'autre sens\
|
|
- . = Ack validation de la connexion
|
|
- R = Reset pour finir la connexion une fois toutes les données envoyées
|
|
|
|
Empiriquement, on se rend compte que le protocole TCP est un protocole avec connexion.
|
|
|
|
Dans l'échange de données ci-dessus, on observe deux nouveaux drapeaux (P = packet et FP = final packet) responsables de l'envoi de données.\
|
|
On voit aussi que TCP n'envoie que deux trames de données alors que tsock en a envoyé dix.\
|
|
TCP ne conserve pas la frontière des messages, il se contente d'envoyer des octets.
|
|
|
|
|
|
*Observations*
|
|
|
|
- Mettre en évidence que UDP est sans connexion
|
|
- Mettre en évidence que TCP est avec connexion
|
|
- Trouver les différentes phases de la connexion de TCP
|
|
|
|
#### Faire une expérience pour montrer que les frontières des trames ne sont pas conservées
|
|
|
|
```sh
|
|
tsock -s -l 40 insa-20155 5678
|
|
```
|
|
|
|
```
|
|
09:17:12.042983 IP insa-20154.insa-toulouse.fr.56003 > insa-20155.insa-toulouse.fr.5678: Flags [P.], seq 1:41, ack 1, win 63, options [nop,nop,TS val 4131637453 ecr 621809196], length 40
|
|
09:17:12.043174 IP insa-20154.insa-toulouse.fr.56003 > insa-20155.insa-toulouse.fr.5678: Flags [FP.], seq 41:401, ack 1, win 63, options [nop,nop,TS val 4131637453 ecr 621809196], length 360
|
|
```
|
|
|
|
## Question 4
|
|
|
|
__Reprendre la Question 1 et capturer les trammes Ethernet avec `tcpdump`__
|
|
|
|
```sh
|
|
sudo tcpdump -xx port 5678
|
|
```
|
|
|
|
Trame TCP (numéro de protocole <span style="color:red">6</span>)
|
|
|
|
---
|
|
|
|
|
|
0x0000: 1866 da44 b21f 1866 da44 b5ac 0800 4500
|
|
|
|
0x0010: 0052 ffb4 4000 40<span style="color:red">06</span> 2483 0a01 0136 0a01
|
|
|
|
0x0020: 0137 82d5 162e 71c3 ecc9 8136 b67a 8018
|
|
|
|
0x0030: 003f 307c 0000 0101 080a f647 4eb2 2513
|
|
|
|
0x0040: 93ec 2020 2020 3161 6161 6161 6161 6161
|
|
|
|
0x0050: 6161 6161 6161 6161 6161 6161 6161 6161
|
|
|
|
---
|
|
|
|
|
|
Trame UDP (numéro de protocole <span style="color:red">17</span>)
|
|
|
|
---
|
|
|
|
|
|
0x0000: 1866 da44 b21f 1866 da44 b5ac 0800 4500
|
|
|
|
0x0010: 003a 5137 4000 40<span style="color:red">11</span> d30d 0a01 0136 0a01
|
|
|
|
0x0020: 0137 9535 162e 0026 3b9e 2020 2020 3161
|
|
|
|
0x0030: 6161 6161 6161 6161 6161 6161 6161 6161
|
|
|
|
0x0040: 6161 6161 6161 6161
|
|
|
|
|
|
### Analyse des résultats
|
|
|
|
Adresse Ethernet de la source: <span style="color:blue">18:66:da:44:b5:ac</span>
|
|
|
|
Adresse IP de la source: <span style="color:green">10.1.1.54</span>
|
|
|
|
Port de la source: <span style="color:red">33493</span>
|
|
|
|
---
|
|
|
|
|
|
0x0000: 1866 da44 b21f <span style="color:blue">1866 da44 b5ac </span>0800 4500
|
|
|
|
0x0010: 0052 ffb4 4000 4006 2483 <span style="color:green">0a01 0136 </span>0a01
|
|
|
|
0x0020: 0137 <span style="color:red">82d5</span> 162e 71c3 ecc9 8136 b67a 8018
|
|
|
|
0x0030: 003f 307c 0000 0101 080a f647 4eb2 2513
|
|
|
|
0x0040: 93ec 2020 2020 3161 6161 6161 6161 6161
|
|
|
|
0x0050: 6161 6161 6161 6161 6161 6161 6161 6161
|
|
|
|
---
|
|
|
|
Adresse Ethernet du puits: <span style="color:blue">18:66:da:44:b2:1f</span>
|
|
|
|
Adresse IP du puits: <span style="color:green">10.1.1.55</span>
|
|
|
|
Port du puits: <span style="color:red">5678</span>
|
|
|
|
---
|
|
|
|
0x0000: <span style="color:blue">1866 da44 b21f</span> 1866 da44 b5ac 0800 4500
|
|
|
|
0x0010: 0052 ffb4 4000 4006 2483 0a01 0136 <span style="color:green">0a01</span>
|
|
|
|
0x0020: <span style="color:green">0137</span> 82d5 <span style="color:red">162e</span> 71c3 ecc9 8136 b67a 8018
|
|
|
|
0x0030: 003f 307c 0000 0101 080a f647 4eb2 2513
|
|
|
|
0x0040: 93ec 2020 2020 3161 6161 6161 6161 6161
|
|
|
|
0x0050: 6161 6161 6161 6161 6161 6161 6161 6161
|
|
|
|
|
|
tsock en mode source choisi un port au hasard probablement entre 1024 et 65535 (non spécifié dans le manuel)
|
|
|
|
## Question 5
|
|
|
|
__Qu'est que le mode broadcast ?__
|
|
|
|
Le mode broadcast permet de transmettre des trames à toutes les machines sur le réseau.
|
|
|
|
|
|
### Trouver l'adresse broadcast physique du réseau
|
|
|
|
```sh
|
|
sudo tcpdump -xx broadcast
|
|
```
|
|
|
|
Adresse de broadcast: <span style="color:red">ff:ff:ff:ff:ff:ff</span>
|
|
|
|
---
|
|
|
|
0x0000: <span style="color:red">ffff ffff ffff</span> f8a2 d66e dac3 0806 0001
|
|
|
|
0x0010: 0800 0604 0001 f8a2 d66e dac3 0a20 2965
|
|
|
|
0x0020: 0000 0000 0000 a9fe a9fe 0000 0000 0000
|
|
|
|
0x0030: 0000 0000 0000 0000
|
|
|
|
|