├── fr.netwhat_subject.pdf ├── README.md └── research.md /fr.netwhat_subject.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rchallie/netwhat/HEAD/fr.netwhat_subject.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # netwhat 2 | Netwhat (42cursus) 2019-2020 3 | 4 | - Actual Status : Finished 5 | - Result : 100% 6 | - Observations : Mainly my research to reply at the MCQ. I know that's can be easy to just read it and use it for the test but use it like complement, make your own research, that will be more usefull. Thanks to [@Mazoise](https://github.com/Mazoise) for the orthographics corrections 7 | 8 | Others : 9 | - Russian : https://github.com/markveligod/netwhat 10 | - English : https://github.com/edithturn/42-silicon-valley-netwhat 11 | - Korean : https://github.com/ChoiKanghun/netwhat 12 | 13 | Tools : 14 | - Ip calculator : https://github.com/matboivin/netwhat-ip-calculator

15 | [![forthebadge](https://forthebadge.com/images/badges/made-with-markdown.svg)](https://forthebadge.com) 16 | [![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://forthebadge.com) 17 | 18 | This is my netwhat project from the 42 cursus, 19 | need help: 20 | rchallie@student.42.fr 21 | -------------------------------------------------------------------------------- /research.md: -------------------------------------------------------------------------------- 1 | ### Gros merci à Mazoise (mchardin) pour la correction de l'ortographe 👌 2 | #### Abonne toi, lache un like, active la cloche tout ça tout ça :star2: 3 | 4 | ### Russian : https://github.com/markveligod/netwhat 5 | ### English : https://github.com/edithturn/42-silicon-valley-netwhat 6 | ### Korean : https://github.com/ChoiKanghun/netwhat 7 | 8 | ## Général 9 | #### > IP (Internet protocol) 10 | - Identifier chaque appareil sur internet 11 | - Coder sur 4 octets (32 bits) 12 | 13 | ##### > Les différentes classes d'IP : 14 | - Classe A : (gros réseau) 15 | - 1 octet pour identifier le réseau 16 | - 3 octets pour identifier les machines 17 | - 16 777 214 adresses possibles 18 | - Commence toujours par la suite de bits 0, donc compris entre 0 et 127, mais certaines adresses sont réservées à des usages particuliers. 19 | - Plage d'adresse de 0.0.0.0 à 127.255.255.255 20 | - Classe B : (réseau moyen) 21 | - 2 octets pour identifier le réseau 22 | - 2 octets pour identifier les machines 23 | - 65535 adresses possibles 24 | - Commence toujours par la suite de bits 10, donc compris entre 128 et 191. 25 | - Plage d'adresse de 128.0.0.0 à 191.255.255.255 26 | - Classe C : (réseau simple) 27 | - 3 octets pour identifier le réseau 28 | - 1 octet pour identifier les machines 29 | - 256 adresses possibles 30 | - Commence toujours par la suite de bits 110, donc compris entre 192 et 223. 31 | - Plage d'adresse de 192.0.0.0 à 223.255.255.255 32 | - Classe D : (multicast) 33 | - Un émetteur vers plusieurs récepteurs 34 | - Commence toujours par la suite de bits 1110, donc compris entre 224 et 239. 35 | - Plage d'adresse de 225.0.0.0 à 239.255.255.255 36 | - Classe E : (IANA) 37 | - Réservé à l'IANA 38 | - Commence toujours par la suite de bits 1111, donc compris entre 240 et 255. 39 | - Plage d'adresse de 240.0.0.0 à 255.255.255.255 40 | 41 | > Les adresses privées entre les classes : 42 | > - Classe A : 10.0.0.0 à 10.255.255.255 43 | > - Classe B : 172.16.0.0 à 172.31.255.255 44 | > - Classe C : 192.168.1.0 à 192.168.255.255 45 | 46 | - Résumé : 47 | 48 | | Classe | Bits de départ | Début | Fin | CIDR (Masque) | Masque de sous réseau par défault | 49 | | --------- | -------------- | --------- | --------------- | ------------- | --------------------------------- | 50 | | Classe A | 0 | 0.0.0.0 | 127.255.255.255 | /8 | 255.0.0.0 | 51 | | Classe B | 10 | 128.0.0.0 | 191.255.255.255 | /16 | 255.255.0.0 | 52 | | Classe C | 110 | 192.0.0.0 | 223.255.255.255 | /24 | 255.255.255.0 | 53 | | Classe D | 1110 | 224.0.0.0 | 239.255.255.255 | | Non définie | 54 | | Classe E | 1111 | 240.0.0.0 | 255.255.255.255 | | Non définie | 55 | 56 | --- 57 | 58 | #### > IPv4 et IPv6 : 59 | - ##### IPv4: (Longueur de 32 bits soit 4 octets) 60 | La plage d'attribution s'étend de 0.0.0.0 à 255.255.255.255. Elle est prémunie contre la pénurie d'adresses par la norme RFC 1918. L'obtention d'une de ces adresses se fait par attribution statique ou automatique. _(Voir dans "UTILS" pour l'explication des deux termes)_ 61 | - ##### IPv6: (Longueur de 128 bits soit 16 octets) 62 | - 2128 possibilités d'adresses uniques 63 | - 16 bits sous la forme de quatre chiffres hexadécimaux * 8 séparés par 2 points (":") 64 | - 64 bits sont réservés pour l'adresse réseau et les 64 autres restent pour fournir des détails sur l'interface réseau de l'hôte 65 | 66 | > Exemple : 67 | > 2001:0DB8:AC10:FE01:0000:0000:0000:0000\ 68 | > Soit :\ 69 | > 0010000000000001:0000110110111000:1010110000001000:1111111000000001:"Les zéro restent des zéro" 70 | 71 | - ##### Principales différences entre IPv4 et IPv6 72 | - espaces d'adressage plus importants en IPv6 73 | - IPv6 est fait pour rendre le transfert de paquets plus sécurisé 74 | - Avec l'IPv6, pas de limite géographique (Actuellement 50% des IP sont réservés aux États-Unis (car créés par eux)) 75 | - Meilleures fonctionnalités de multidiffusion dans le cas de l'IPv6 76 | 77 | - Objectifs sur le long terme : 78 | - Passer de l'IPv4 à l'IPv6 (Se fait en douceur grâce au NAT et au CIDR) 79 | 80 | --- 81 | 82 | #### > Adresse broadcast : 83 | Est une adresse par laquelle tous les appareils connectés au réseau peuvent recevoir des datagrammes. Un message envoyé à une adresse broadcast peut être reçu par tous les hôtes connectés au réseau. Elle est l'adresse IP la plus haute selon l'adresse réseau 84 | 85 | --- 86 | 87 | #### > Différence entre IP privée et IP publique 88 | ##### - Privée : 89 | Ces adresses ne sont pas sur Internet mais seulement sur les réseau privés. Elles renforcent la sécurité car elles ne sont pas directement reliées à Internet mais à un routeur, lui relié à Internet. Pour les entreprises etc. elle permet de communiquer sans consommer d'adresses publiques. Ainsi, deux entreprises différentes qui ne sont pas raccordées ensemble peuvent avoir le même adressage. Pour permettre à une adresse privée d'accéder à Internet, l'adresse doit être traduite en adresse publique appelée NAT _(Voir dans "UTILS" pour la définition et les types)_ 90 | ##### - Publique : 91 | Ces adresses permettent aux ordinateurs du réseau de communiquer entre eux sur internet. Ces adresses sont fournies par le FAI (fournisseur d'accès à Internet) au moment de l'installation et de la synchronisation de la box. Chaque adresse est unique au monde, non comprise dans la partie privée. 92 | 93 | ##### Exceptions : 94 | - Le réseau 127.0.0.0 est réservé pour les tests de boucle locale comme l'adresse IP 127.0.0.1 ("localhost") qui est une boucle locale sur le PC. 95 | - Le réseau 0.0.0.0 est lui aussi réservé. 96 | 97 | --- 98 | 99 | #### > Masque de sous réseau 100 | Il permet de distinguer la partie de l'adresse utilisée pour le routage et celle utilisable pour numéroter des interfaces (ordinateurs, imprimantes, etc..)\ 101 | Étant codé sur 4 octets et constitué d'une suite de 1 puis de 0, il y a 32 possibilités de masque 102 | - L'adresse de sous-réseau est obtenu en appliquant l'opérateur "ET" binaire entre l'adresse IP et le masque de sous-réseau 103 | 104 | > #### Exemple : 105 | > Adresse : 192.168.1.2 - Masque : 255.255.255.0\ 106 | > _(Voir dans "UTILS" pour la conversion decimal vers binaire)_\ 107 | > - 0 ET 0 = 0 108 | > - 1 ET 0 = 0 109 | > - 0 ET 1 = 0 110 | > - 1 ET 1 = 1\ 111 | > \ 112 | >                192          .         168           .            1             .            2\ 113 | >       1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 1 0\ 114 | > ET 1 1  1 1  1 1  1 1  . 1 1  1 1  1 1  1 1  . 1 1  1 1  1 1  1 1 . 0 0 0 0 0 0 0 0\ 115 | > =   1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 0 0 116 | >                192          .         168           .            1             .            0 117 | > #### L'adresse de sous-réseau est : 192.168.1.0 118 | 119 | - L'adresse de l'hôte à l'intérieur du sous-réseau est obtenue en appliquant l'opérateur "ET" binaire entre l'adresse IP et le "complément à un" _(Voir dans "UTILS" pour la définition)_ du masque 120 | 121 | > #### Exemple : 122 | > Adresse : 192.168.1.2 - Masque : 255.255.255.0\ avec complément à un 0.0.0.255 123 | >                192          .         168           .            1             .            2\ 124 | >       1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 1 0\ 125 | > ET 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 1 1  1 1  1 1  1 1\ 126 | > =   1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 0 0 127 | >                192          .         168           .            1             .            0 128 | > #### L'adresse de l'hôte est : 0.0.0.2 129 | 130 | En résumé : 131 | 132 | | | | 133 | | ---------------------- | --------------- | 134 | | La notation | 91.198.174.2/19 | 135 | | désigne l'adresse IP | 91.168.174.2 | 136 | | avec le masque | 255.255.224.0 | 137 | | avec l'adresse SR | 91.168.160.0 | 138 | | et l'adresse hôte | 0.0.14.2 | 139 | 140 | Ça signifie que les 19 premiers bits de l'adresse sont dédiés à l'adresse du sous-réseau et le reste à l'adresse de l'interface hôte à l'intérieur du réseau\ 141 | _(Voir dans "UTILS" pour la liste des masques de sous réseau)_ 142 | 143 | --- 144 | 145 | ### TCP : (Transmission Control Protocol) (Dans la langue de Molière : Protocole de contrôle de transmission) 146 | Est un protocole de paquet fiable\ 147 | N'est pas orienté datagramme 148 | Il ne prend pas en charge la diffusion (multicast) 149 | Il utilise un system de handshaking _(Voir dans "UTILS" pour la définition)_ 150 | 151 | #### > Fonctionnement : 152 | - Etablissement de la connexion 153 | - Transfert de données 154 | - Fin de connexion 155 | 156 | #### > Connexion entre les appareils : 157 | En règle générale, un système ouvre une 'socket' (point d'accès à une connexion TCP) et se met en attente passive de connexion d'un autre système. On appel ça l'ouverture passive, utilisé par le côté serveur de la connexion. 158 | 159 | #### > Transferts de données : (sécurité) 160 | - Les numéros de séquence sont utilisés pour ordonner les segments TCP reçus et détecter les données perdues 161 | - Les sommes de contrôle permettent la détection d'erreur 162 | - Les acquittements et les temporisations permettent la détection des segments perdus ou retardés 163 | 164 |   165 |

Tcp talk.svg
Par Sébastien KoechlinTravail personnel, CC BY-SA 3.0, Lien

166 | 167 | #### > La somme de contrôle : 168 | Sur 16 bits, constitués par le complément à un de la somme complémentée à un de tous les éléments d'un segment TCP (en-tête et données) tout ça calculé par l'émetteur et inclus dans le segment émis. Puis est recalculé par le destinataire. Si elle correspond à la somme de contrôle reçue, on considère que le segment a été reçu intact et sans erreur. 169 | 170 | #### > Terminaison d'une connexion : 171 | Chaque extrémité de la connexion effectue sa terminaison de manière indépendante 172 | 173 | #### > Alternative : 174 | Les applications multimédia (audio, vidéo), des jeux multi-joueurs en temps réel, l'échange de fichiers, etc n'ont pas besoin du TCP et peuvent même les limiter car il est nécessaire de gérer les pertes et les erreurs plutôt que d'essayer de les éviter. 175 | - UDP : est souvent utilisé pour le temps réel mais est moins fiable 176 | - SCTP : comme le TCP, mais permettant la communication multi-cibles comme l'UDP 177 | - MPTCP : surcouche de TCP, exploite tous les chemins disponibles en parallèle, et donc améliore significativement les performances et la fiabilité d'une connexion. 178 | 179 | #### > Le Modèle TCP/IP (Modèle internet): 180 | Il utilise des couches réseau _(Voir dans "UTILS" pour la définition)_ : 181 | 1. Application 182 | 2. Transport 183 | 3. Internet 184 | 4. Accès réseau 185 | 186 | --- 187 | 188 | ### > UDP : (User Datagram Protocol) (Protocole de datagramme utilisateur) 189 | Permet l'échange entre deux utilisateur de manière simple, chacun défini par une adresse IP et un port. Il n'est pas nécessaire d'avoir une communication préalable pour établir la connexion, contrairement au TCP qui utilise le handshaking _(Voir dans "UTILS" pour la définition)_. Les paquets envoyés en UDP sont préfixés d'une en-tête contenant l'adresse de destination, suffisant pour son envoi. 190 | 191 | #### > Propriétés : 192 | - Ne retient pas d'information sur l'état des messages UDP. Il est défini comme un protocole non fiable 193 | - "Orienté transaction", pratique pour les protocoles simples de type requête-réponse 194 | - Il fournit des datagrammes utiles pour modéliser d'autres protocoles 195 | - Il est simple, bon pour le bootstrapping _(Voir dans "UTILS" pour la définition)_, le DHCP et les protocoles simplifiés de transfert de fichiers 196 | - Il est dit sans état, pratique pour le streaming (Télévision sur Tel./Ordinateur) 197 | - Absence de délai, pratique pour le temps réel (Chats Vocaux, jeux-vidéo etc.) 198 | - Efficace pour des communications unidirectionnelles 199 | 200 | --- 201 | 202 | ### Le Model OSI : (Open Systems Interconnection) 203 | Est une norme de communication, en réseau, pour tous les systèmes informatiques, il a une architecture en couches _(Voir dans "UTILS" pour la définition)_\ 204 | Il est proposé par l'ISO (International Organization for Standardization) 205 | 206 |

OSI Model v1.svg
Par OffnfoptTravail personnel, Domaine public, Lien

207 | 208 | #### > Son architecture : 209 | 210 | | | PDU | Couche | Fonction | 211 | | ------------------- | ---------- | --------------- | ------------------------------------------------------------------------- | 212 | | Couches hautes | Donnée | 7. Application | Point d'accès aux services réseau | 213 | | | | 6. Présentation | Fait la conversion entre données manipulées et octets transmis | 214 | | | | 5.Session | Gère la synchronisation entre les échanges, permet l'ouverture et la fermeture de la session | 215 | | | Datagramme | 4. Transport | Gère la communication de proche en proche, généralement entre machine : routage et adressage des paquets | 216 | | Couches matérielles | Paquet | 3. Réseau | Détermine le parcours des données et l'adressage logique (Adresse IP) | 217 | | | Trame | 2. Liaison | Gère la communication entre 2 machines directement connectées entre elles, ou par commutateur | 218 | | | Bit | 1. Physique | Gère la transmission des signaux entre les entités. Limité à l'émission et à la réception d'un bit ou d'un train de bit | 219 | 220 | #### > Divers : 221 | - Pas forcément compatible avec la pile IP 222 | - Le modèle OSI est connu pour ses fonctionnalités permettant de garantir une bonne qualité de service. 223 | - Il est universel, on retrouve ce modèle dans beaucoup de système, car il permet une meilleur organisation des normes par rapport aux systèmes applicatifs. 224 | 225 | | Num | Couche | Norme | 226 | | --- | ------------ | -------------------------------------- | 227 | | 7 | Application | Web | 228 | | 6 | Présentation | HTML / XML | 229 | | 5 | Session | HTTP / HTTPS | 230 | | 4 | Transport | TCP | 231 | | 3 | Réseau | IP | 232 | | 2 | Liaison | Ethernet / xDSL | 233 | | 1 | Physique | RJ45 / RJ11 / RJ12 / Cable cat. 5 et + | 234 | 235 | --- 236 | 237 | ### > Serveur et protocole DHCP : 238 | Est un service qui délivre des adresses IP aux ordinateurs qui se connectent au réseau 239 | Le serveur va délivrer un bail DHCP à l'ordinateur qui comprend : 240 | - La durée de vie du bail (Libère l'adresse au bout d'un moment. Si l'ordinateur est encore connecté il lui redonnera une nouvelle adresse IP. Ce système permet de faire tourner les adresses IP) 241 | - Une adresse IP (Adresse dynamique : attribution statique) 242 | - Et les paramètres réseau (Adresse passerelle, Adresse du DNS) 243 | 244 | --- 245 | 246 | ### > Serveur et protocole DNS : 247 | Permet de traduire les noms de domaines en adresse IP 248 | 249 | --- 250 | 251 | ### > Configuration minimale pour faire communiquer deux adresses en utilisant l'IP : 252 | Ordinateur -> Passerelle -> Internet -> Passerelle -> Serveur\ 253 | 172.18.3.82 172.18.0.253 254 | 255 | --- 256 | 257 | ### > Une passerelle : 258 | Dispositif permettant de relier deux réseaux informatiques, de type différent, ensemble : 259 | - Répéteur (niveau 1) 260 | - Pont (niveau 2) 261 | - Relais / Routeur (niveau 3) 262 | 263 | Une passerelle est plus communément appelée modem-routeur ou box, relie un réseau local à Internet. Elle sert également de pare-feu, de proxy, et effectue la qualité de service. Une passerelle par défaut est une passerelle qui gère le routage au niveau IP. 264 | 265 | --- 266 | 267 | ### Routage d'IP : 268 | Sélection des chemins, dans un réseau, par lesquels on va faire acheminer les données, de l'expéditeur vers le ou les destinataire(s). 269 | 270 | --- 271 | 272 | ### Ports : 273 | 274 | - 0 à 1023 : Controlés et assignés par l'IANA, appelés Well Known Ports 275 | - 1024 à 49156 : Ports enregistrés 276 | - 49152 à 65535 : Ports dynamiques 277 | 278 | Une adresse IP + un port = un socket : Chemin par lequel transitent des paquets 279 | 280 | --- 281 | ## UTILS 282 | #### > Conversion décimal vers binaire : 283 | 284 | On connaît la traduction d'un nombre décimal en binaire, en soustrayant des puissances de 2 à notre décimale:\ 285 | 192 = 27 + 26          = 128 + 64\ 286 | 168 = 27 + 25 + 23 = 128 + 32 + 8\ 287 | 1      = 20                  = 1\ 288 | 2      = 21                  = 2 289 | > Tableau de conversion :\ 290 | > On traduira : 192.168.1.2 291 | 292 | |     | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 293 | | ------------------ | --- | --- | --- | --- | --- | --- | --- | --- | 294 | | Décimale | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 295 | | 192 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 296 | | 168 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 297 | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 298 | | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 299 | 300 | --- 301 | 302 | #### > Calcul du nombre d'hôte possible sur une adresse : 303 | 232-CIDR(masque)-2 304 | 305 | > Ainsi pour un masque de 19, on obtient 306 | > 232-19-2 = 8190 hôtes possibles 307 | 308 | --- 309 | 310 | #### > Complément à un : 311 | 312 | Il s'agit de convertir du décimal au binaire puis d'inverser tous les bits de 1 vers 0 et de 0 vers 1 313 | > Ainsi :\ 314 | >  1 1  1 1  1 1  1 1  . 1 1  1 1  1 1  1 1  . 1 1  1 1  1 1  1 1 . 0 0 0 0 0 0 0 0\ 315 | > Deviens :\ 316 | >  0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 1 1  1 1  1 1  1 1 317 | 318 | --- 319 | 320 | #### > NAT (Network Adresse Translation) : 321 | - statique : Correspondance un pour un établie entre les adresses locales et globales 322 | - dynamique : mappage de plusieurs adresses locales vers plusieurs adresses globales 323 | - traduction d'adresses de port (PAT) : mappages de plusieurs adresses locales et globales vers une seule. Cette méthode est également appelée "surcharge" (Surcharge NAT) 324 | 325 | --- 326 | 327 | #### > Attribution statique : 328 | - Défini par l'administrateur réseau 329 | - Permet un bon contrôle mais à faire que sur des petites structures car sinon la surcharge de travail peut être trop importante 330 | - Utile pour les routeurs et les firewall 331 | 332 | #### > Attribution automatique : 333 | - Défini par le serveur DHCP 334 | 335 | --- 336 | 337 | #### > Handshaking : 338 | - Principe sur lequel deux entités entreprennent d'abord une "négociation" avant une communication 339 | 340 | #### > Bootstrapping : 341 | - Est un compilateur écrit dans son propre langage 342 | 343 | --- 344 | 345 | #### > Les couches réseau : 346 | - Fonctionnalités nécessaires à la communication et l'organisation des fonctions 347 | 348 | --------------------------------------------------------------------------------