SYS2 1
Planning
- Process / tasks / thread
- Scheduling
- Mecanisme de synchro
- Réseaux
- File system
on va pas faire dans l’ordre !
Bouquin cool en OS:
modern operating system
operating system design livre avec des dino
understanding the linux kernel
the linux programming interface
Réseaux
OSI
Si on est sur la couche n, on a besoin de connaitre la couche n-1 (et un peu n+1).
TCP/IP
On a moins de couches que dans le modèle OSI

- Link: Ethernet
- Network: Fait le lien entre les differets réseaux. IPV4/IPV6 etc… Cela permet de dialoguer entre plusieurs réseaux.
- Transport: TCP/UDP
Trame ethernet
MTU: Metrique translation unit
Si on relie deux réseaux avec differnts MTU, on peut avoir des problèmes. Donc il nous faut être capable de dialoguer malgré tout.
Du coup on a des adresses IP.
IP: XX.XX.XX.XX
Un IP permet d’identifier des machines et des réseaux.
Dans 192.168.1.0/24 -> le /24 signifie que les 24 premiers bits correpondent à l’identitié du réseau. Les autres correspondent à la machine.
Switch: Va enregistrer les adresses des differents appareils lorsqu’il y a une connection. Si A veut envoyer à B, alors le switch va d’abord enregistrer l’adresse de A dans une table pour l’associer plus rapidement après puis, va check si il a B dans sa table. Si il l’a, il envoie les data à B, sinon il envoie à tout le monde et chacun check si il est censé avoir ces data.
Routeur: Si on veut envoyer un paquet sur un autre réseau, alors on va envoyer nos data au routeur de l’autre réseau, et le routeur va savoir à quelle machine le transmettre.
Netmask: Tous les bits pertinent pour le réseau. Permet de faire des choses similaires aux bitwise…
Table de routage: prefix -> endpoint
Ex: 10.0.0.1.0/24 -> 10.0.0.0.1
ARP: Pour retrouver dans un réseau quelles sont les addresses mac par rapport aux adresses IP.
TCP: Permet d’avoir de l’ordre dans les paquets et de la retransmission. (C’est embetant d’avoir les paquets dans le désordre). Pour chaque paquet, on va lui associer un numéro de séquence qui correspond à un offset dans le flux complet.
ACK: (Acknowledge) Accusé de réception.
Socket
Socket: renvoie un file descriptor
Côté client
Avec ça, on a pas d’IP, ni de port…
Du coup -> Connect() !
connect(fd,{address, port})
Côté server ?
bind(fd,{address, port})
listen(fd, ...)
new_fd_client = accept(fd, &{address, port})
Accept renvoie le fd du nouveau client.
Ensuite une fois conneter ?
- recv(): utiliser en tcp
- send(): utiliser en tcp
- recvfrom(): utiliser en udp
- sendto(): utiliser en udp
SYS2 1
Planning
Bouquin cool en OS:
modern operating system
operating system design livre avec des dino
understanding the linux kernel
the linux programming interface
Réseaux
OSI
Si on est sur la couche n, on a besoin de connaitre la couche n-1 (et un peu n+1).
TCP/IP
On a moins de couches que dans le modèle OSI
Trame ethernet
MTU: Metrique translation unit
Si on relie deux réseaux avec differnts MTU, on peut avoir des problèmes. Donc il nous faut être capable de dialoguer malgré tout.
Du coup on a des adresses IP.
IP: XX.XX.XX.XX
Un IP permet d’identifier des machines et des réseaux.
Dans 192.168.1.0/24 -> le /24 signifie que les 24 premiers bits correpondent à l’identitié du réseau. Les autres correspondent à la machine.
Switch: Va enregistrer les adresses des differents appareils lorsqu’il y a une connection. Si A veut envoyer à B, alors le switch va d’abord enregistrer l’adresse de A dans une table pour l’associer plus rapidement après puis, va check si il a B dans sa table. Si il l’a, il envoie les data à B, sinon il envoie à tout le monde et chacun check si il est censé avoir ces data.
Routeur: Si on veut envoyer un paquet sur un autre réseau, alors on va envoyer nos data au routeur de l’autre réseau, et le routeur va savoir à quelle machine le transmettre.
Netmask: Tous les bits pertinent pour le réseau. Permet de faire des choses similaires aux bitwise…
Table de routage: prefix -> endpoint
Ex: 10.0.0.1.0/24 -> 10.0.0.0.1
ARP: Pour retrouver dans un réseau quelles sont les addresses mac par rapport aux adresses IP.
TCP: Permet d’avoir de l’ordre dans les paquets et de la retransmission. (C’est embetant d’avoir les paquets dans le désordre). Pour chaque paquet, on va lui associer un numéro de séquence qui correspond à un offset dans le flux complet.
ACK: (Acknowledge) Accusé de réception.
Socket
Socket: renvoie un file descriptor
Côté client
Avec ça, on a pas d’IP, ni de port…
Du coup -> Connect() !
Côté server ?
Accept renvoie le fd du nouveau client.
Ensuite une fois conneter ?