UE Réseaux Avancés I P-F. Bonnefoi. Plan de la partie Fondamentaux

Dimension: px
Commencer à balayer dès la page:

Download "UE Réseaux Avancés I P-F. Bonnefoi. Plan de la partie Fondamentaux"

Transcription

1 Table des matières Master 1 ère année 1 Abstraction du réseau : les «couches» La programmation Socket ou la programmation de la couche L algorithme de routage : généralisation du premier pas Diffusion dans un réseau : Multicast et classe D Le format du datagramme IP Quelques métriques Les contraintes de gestion des communications Contrôle d erreur Protocole TCP, Transmission Control Protocol RFC UDP, User Datagram Protocol, RFC Conception de réseaux : la segmentation Le Firewall : la décision d autoriser ou non le traitement du datagramme QoS, «Quality of Service» UE Réseaux Avancés I P-F. Bonnefoi Version du 12 décembre 2013 Présentation générale du contenu du cours Le réseau : différents points de vue vision programmeur : un système de «couches OSI, Open Systems Interconnection» : de la couche physique, n 1, à la couche applicative n 7 ; des protocoles de communications à maîtriser : TCP, UDP, SMTP, POP, SSH etc. ; vision humaine et géographique : des échanges au sein de la même structure «humaine» (entreprise, université, etc) : matériels administrés par la même autorité : segmentation du réseau, DNS «Domain Name System» local, etc. demande de performances de haut niveau : QoS, partage d accès à des ressources, applications distribuées, etc. des échanges entre réseaux répartis sur la planète : de l organisation : organisme internationaux, DNS, etc. des réseaux interconnectés : INTERconnected NETworks : du routage de haut niveau avec BGP, etc. vision théorique : réseau «point à point» vs «diffusion» ; des mesures : latence, gigue, débit, bande passante, etc. des principes : contrôle de flux, contrôle de congestion, contrôle d erreur, etc. vision sécurité : surveillance du réseau : détection et identification du trafic, protection contre les attaques ; filtrage des échanges ; mise en place de tunnels d échanges sécurisés ; vision concepts fondamentaux : adressage : niveau 2, IPv4, IPv6, VLAN, MPLS ; switching ou commutation : sélectionner une sortie pour un paquet en entrée ; forwarding ou relayage : sélectionner intelligemment une sortie pour un paquet en entrée ; routing ou routage : construire une route pour l acheminement d un paquet. Plan de la partie Fondamentaux Éléments importants Deux topologies théoriques : diffusion et «point-à-point» ; Les réseaux utilisés et le matériel d interconnexion ; La gouvernance d Internet : les organisations et les RFCs ; Le réseau TCP/IP : adressage, encapsulation, routage direct & indirect ; Le DNS : global et local ; La configuration du poste de travail. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

2 1 Deux topologies de réseaux : diffusion et point-à-point Le réseau en mode «diffusion» Les réseaux à diffusion, broadcast network, n ont qu un seul canal de communication que toutes les machines partagent. Deux topologies de réseaux : diffusion et point-à-point Le réseau en mode «diffusion» Contraintes chaque machine appartenant au réseau doit disposer d une adresse. Computer Cable Une machine envoie de petits messages (a) qui sont reçus par toutes les autres machines : (b) dans le message un champ d adresse permet d identifier le destinataire à la réception du message, une machine teste ce champ : si le message est pour elle, elle le traite ; sinon, Fig. elle 1-7. l ignore. Two broadcast networks. (a) Bus. (b) Ring. Exemple : un couloir sur lequel débouche un certain nombre de portes de bureau. quelqu un sort dans le couloir et appelle une personne, tout le monde entend l appel mais une seule personne répond à l appel cas des annonces dans les gares ou les aéroports Computer Avantages envoyer un message vers tout le monde en utilisant une adresse particulière : Ce message est traité par toutes les machines. Ce procédé est appelé «diffusion générale» ou «broadcasting». transmettre un message à un sous-ensemble de machines : Ce procédé est appelé «diffusion restreinte» ou «multipoint» ou «multicast». Une façon de faire consiste à utiliser les n bits d adresse de la manière suivante : associer un bit à l indication de mode multipoint utiliser les n-1 bits restants pour l identification du groupe. permettre à chaque machine d appartenir à un ou plusieurs groupes. connaître le temps de transmission d un message : permet de simplifier des algorithmes de communication : «je suis sûr que le récepteur a reçu mon message, mais je ne connais pas son état et s il a pu le traiter.» Inconvénients la rupture du support de transmission entraîne l arrêt du réseau. Le «hub» ou «switch» tombe en panne. la panne d un des matériels connectés au réseau ne provoque pas de panne du réseau (en général... ). L adressage dans un réseau à diffusion Dans le cas d Ethernet, mais aussi de WiFi, de Bluetooth... Chaque carte réseau possède une adresse matérielle appelée adresse MAC (Medium Access Control) : unique par rapport à toutes les cartes réseaux existantes! exprimée sur 48 bits ou 6 octets. Syntaxe : 08:22:EF:E3:D0:FF Adresse de Broadcast : FF:FF:FF:FF:FF:FF (en IPv4). Pour garantir l unicité : a. des «tranches d adresses» sont affectées aux différents constructeurs : 00:00:0C:XX:XX:XX Cisco 08:00:20:XX:XX:XX Sun Unicité 08:00:09:XX:XX:XX 00:09:BF:XX:XX:XX 00:D0:F1:XX:XX:XX HP Nintendo Sega Sun Cisco HP Ce préfixe est appelé OUI, «Organization Unique Identifier». La liste est consultable à b. chaque constructeur numérote différemment chaque carte réseau qu il construit. Avantage impossible de trouver deux fois la même adresse dans un même réseau. Inconvénient elle ne donne aucune information sur la localisation d une machine «dans quel réseau est la machine avec qui je veux parler?» Solution utilisation de l adresse IP! id. constructeur sur 3 octets id. carte sur 3 octets... Les caractéristiques des réseaux «point-à-point» Réseaux en mode «point à point» (a) (b) (c) Ces réseaux sont formés d un grand nombre de connexions entres les machines prises deux à deux. Le trajet des communications est rendu plus complexe : Fig. pour aller de la source (a) Fully-interconnected au destinataire, un message doit alors network. passer par un (b) plusieurs Centralized intermédiaires. il existe plusieurs routes de longueurs différentes pour joindre ces deux machines, il est nécessaire d utiliser switch. (c) Two-level hierarchy. de bons algorithmes d acheminement des messages ; Inconvénient le temps de transfert d un message devient presque impossible à prévoir. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

3 Les caractéristiques des réseaux «point-à-point» Le support physique relie seulement une paire d équipements à la fois. La communication est : directe si les deux équipements sont connectés entre eux ; indirecte sinon : quand deux équipements veulent communiquer, ils le font par l intermédiaire des autres nœuds du réseau. Problème? Comment choisir par quels intermédiaires passer, ce qui s appelle du «routage»? Cas d un réseau en «étoile» Cas d une «boucle simple» L algo. de routage est simple : le site central reçoit et renvoie tous les messages. Le fonctionnement est simple, mais la panne du site central paralyse tout le réseau. chaque nœud recevant un message de son voisin en amont le réexpédie à son voisin en aval. 8 Chapter 1 Introduction to Computer Networking Pour que le message ne tourne par indéfiniment, il est retiré par le nœud émetteur. Si l un des nœuds tombe en panne, le réseau est bloqué. Une solution partielle est d utiliser une «double boucle». Ça se complique, on a deux possibilités : Maillage régulier l interconnexion est totale (plus besoin de passer par un intermédiaire) Bus la fiabilité est maximale A bus topology consists of multiple devices leconnected coût enalong câblage a single est shared maximal medium with two Maillage defined endpoints. irrégulier It is sometimes l interconnexion referred to as a high-speed n est plus linear totale bus and is a single broadcast domain in which all devices on the bus network receive all messages. Both endpoints of a bus topology have a 50 ohm latermination fiabilité diminue device, usually le routage a Bayonet Neill des messages peut devenir complexe impossible de prévoir le Concelman (BNC) connector with a 50 ohm temps resistor. dethe transfert bus topology d unis nœud now considered à l autre. a legacy design and was commonly used with early local area networking. One disadvantage to the bus topology is that if any point along the cable is damaged or broken, the entire LAN goes down. Troubleshooting a bus network is performed by something known as the half-split method. A network engineer breaks or separates the link at about the halfway point and measures the resistance on both ends. If the segment measures 50 ohms, there is a good chance that side of the LAN segment is functioning correctly. If the resistance measurement is not 50 ohms, it signals a problem with that part of the LAN segment. The engineer continues with this method until the exact location of the problem is Les différents types de réseaux utilisés identified. Figure 1.6 illustrates an example of the bus topology. Le bus FIGURE Ohm Terminator Troubleshooting the Bus Topology Example of the bus topology Computer the network, I decided to test the bus using the half-split method and checked to Computer Network Printer verify that the cable was reporting the correct resistance using a volt-ohm-milliamp Ring Network Topologies 9 I remember many years ago I was called to troubleshoot a problem on a small local area network using a bus topology. The network consisted of a network file server, about 20 client stations, and a few network printers. The users complained of intermittent problems with the network. After spending some time looking over (VoM) meter. Sure enough, one side of the network cable reported the correct resistance reading, but the other side was giving intermittent results. After spending some time repeating the troubleshooting method, I was able to determine the problem. It turns out that someone had run the coax (bus) cable underneath a heavy plastic office chair mat and one of the little pegs used to protect the flooring was causing the intermittent connection as it struck the cable when File Server Computer 50 Ohm Terminator The ring topology is rarely used with LANs today, but it is still widely used by Internet service providers (ISPs) for high-speed, resilient backhaul connections over fiber-optic links. In the ring topology, each device connects to two other devices, forming a ring pattern. Ring topologies ou «ring LANs» may use a token-passing access method, in which data Anneau An example of the ring topology travels around the ring in one direction. Only one device at a time will have the opportunity to transmit data. Because this access method does not use collision detection, it will File Server commonly outperform the bus topology, achieving higher data rates than are possible Computer using Computer a collision detection access method. Each computer on the ring topology can act as a repeater, a capacity that allows for a much stronger signal. Figure 1.7 shows an example of the ring topology. the user moved their chair around the mat. I quickly replaced and rerouted the section of cable in question. It is a good thing I was there during the normal business operating hours when the person was moving around in the chair or I might have never found the problem. Ah, the joys of troubleshooting a bus topology. FIGURE 1.7 c01.indd 8 8/25/2012 3:00:25 PM c01.indd 9 8/25/2012 3:00:25 PM ancienne technologie : n existe plus actuellement ; représentation «conceptuelle» d un LAN, «local area network» ; réseau à diffusion : tout matériel connecté peut communiquer avec tous les autres : «multiple access» ; un matériel décide de manière autonome quand il transmet : il peut y avoir des collisions d accès, et il faut s en protéger : «collision detection», «collision avoidance», etc. utilisé ches les fournisseurs d accès Internet ou ISP, «Internet Service Provider», pour des liaisons rapides en fibre optique ; chaque matériel est connecté à deux autres matériels : les données sont transmises dans un seul sens : elle «tourne» sur l anneau entre les différents matériels ; un matériel ne peut transmettre que lorsque c est son tour : un jeton d autorisation circule dans l anneau pour autoriser les transmissions (on parle de «token ring») ; Réseau de grande taille :combiner «point-à-point» et «diffusion» Subnet Router LAN Fig Relation between hosts on LANs and the subnet. Inter(connexion)Net(work) : du client à la maison ; de la ligne téléphonique au POP, «Point of Presence» vers ATM ; en passant par l ISP, Internet Service Provider ; au réseau national : backbone ; par une connexion à un réseau, Network Access Point ; vers le LAN de l entreprise Chapter 1 Star intelligence the ability to decide which port specific network traffic can be sent to. A big advantage over the bus and ring topologies is that if a connection broken or damaged the Les entire network différents is not down; only a single device types in the star topology deis affected. réseaux However, utilisés potential central point of failure. Étoile ou «star» Introduction to Computer Networking The star topology, as shown in Figure 1.8, is the most commonly used method of connecting devices together on a LAN today. It consists of multiple devices connected by a central connection device. Common central connection devices include hubs, switches, and wireless access points, although hubs are rarely used today. The hub provides a single broadcast domain similar to a bus topology. However, the switch and wireless access point both have the central connection device such as a switch or wireless access point can be considered a FIGURE 1.8 Network Printer A common star topology using either wired or wireless devices File Server Computer Computer 2011 and is now part of the IEEE standard. Wireless Computers Manufacturers currently are Computer using proprietary Layer 2 routing protocols, forming Wireless Computers FIGURE 1.9 Mesh Mesh networks can be either wired or wireless devices. Réseau maillé ou «Mesh» Each device in a mesh topology (Figure 1.9) has one or more connections to other devices that are part of the mesh. This approach provides both network resilience in case of link Client Host POP Corporate LAN diffusion : réseau de petite taille, LAN, Local Area Network ; Exemple :Ethernet point-à-point : réseau d interconnexion, constitué uniquement de routeur et de ligne de tranmission Exemple : liaison satellite. la combinaison des deux : WAN, Wide Area Network. Regional ISP Telephone system Fig Overview of the Internet. NAP Router Backbone Server farm la topologie la plus courante pour définir un LAN : plusieurs matériels connectés à un nœud de connexion central : un «hub» : un seul domaine de diffusion ; un «switch» ou un point d accès sans fil : le nœud a la capacité de mettre en relation deux matériels voulant communiquer entre eux (commutation ou «switching») ; avantage : si un matériel est en panne, le réseau continue à The OSI Model 11 or device failure and a cost savings compared to full redundancy. Mesh technology can operate with both wired and wireless infrastructure network devices. The amendment to the IEEE standard for mesh networking is s. This amendment was ratified in a self-healing wireless infrastructure (mesh) in which edge devices can communicate. Manufacturers of enterprise wireless networking infrastructure devices provide support for mesh access points (APs) such that the mesh APs connect back to APs that are directly fonctionner. wired into the network backbone infrastructure. This is Wireless a form Access Point of wireless distribution system (WDS) deployment. The APs or wireless controllers in this case are used to configure both the wired and mesh APs. Mesh Routers Before we continue with wireless LAN technology, you should have some background on computer networking theory. The basics of a computer networking discussion start with the OSI model. The Open Systems Interconnection (OSI) model has been around for several decades. It describes the basic concept of communications in the computer network environment. chaque matériel possède une ou plusieurs connexions avec les autres matériels ; cette topologie offre une meilleur : c01.indd 10 8/25/2012 3:00:25 PM une meilleure résistance, «resilience», en cas de rupture d un lien de connexion ou de panne d un matériel ; Computer Computer une économie de moyens par rapport à une redondance totale Computer (maillage complet) ; les liens peuvent être filaire ou sans fil ou un mélange des deux. Wireless Mesh Routers Dans le cas du WDS, «Wireless Distribution System», un AP, un seul matériel communique à la fois, pas de collision : les performances sont meilleures, le débit maximal est atteint. «access point», du maillage sert d intermédiaire de connexion vers des APs connectés au réseau filaire «backbone». The OSI Model Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

4 28 Chapter 1 u Internetworking Le matériel d interconnexion FIGU R E 1.17 A hub in a network le répéteur ou «repeater» : Le lien point à point, «point to point» correspond au «hub» : un répéteur multiport ; un seul émetteur d un coté du lien ; regénére, réamplifie la transmission physique et la relaie vers tous les ports un seul récepteur de l autre côté du lien ; (pour en augmenter la distance, lutter contre les atténuations)... contrôle des échanges MAC «Medium Access Control» : «flow control» ou contrôle de flux ; tous les hôtes connectés exemples : PPP, tunnels, Ethernet Gigabit, switch full duplex... font parti du même domaine de collision ; A B C D font parti du même domaine de diffusion ; 26 Chapter 1 Internetworking u Le lien à diffusion, «broadcast link» partagent le débit du réseau. de multiples matériels accèdent en émission et en réception au support de communication, «Multiple Access» ; le pont ou «bridge» : All devices in the same collision domain. Bridges and switches read each frame All as devices it passes in the through same broadcast the network. domain. The layer 2 device «divise» le domaine de collision en sous-domaines then puts : the source hardware address Devices in a filter share table the and same keeps bandwidth. track of which port the chaque matériel reçoit une copie du message émis ; relaie une trame d un sous-domaine de collision frame àwas unreceived autre seulement on. This information si l émetteur (logged etin lethe destinataire bridge s or switch s sont filter table) is contrôle des échanges MAC «Medium Access Control» : CSMA/CD «Carrier sense Multiple access with dans deux sous-domaines différents (un domaine what helps Hubs, par port, the machine like avec repeaters, un determine nombrethe don t très location examine limitéof de the any ports) specific of the ; sending device. Figure 1.16 shows a switch in an internetwork. traffic as it enters and is then transmitted out grâce to the à other son adresse parts of MAC the ; physical media. Every device connected to the hub, exemples or : Ethernet 10/100Mbits, hub, WiFi, bluetooth... Collision Detection», CSMA/CA «...with Collision avoidance» ; apprend le sous-domaine où chaque hôte est localisé le «switch» : FIGURE hubs, must 1.16 listen A switch if a device in an internetwork transmits. A physical star network where the hub is a central device and cables extend in all directions out from it is the type of topology a hub creates. bridge multi-ports, réalisant le travail en «hardware» : Les différents liens sous Linux Visually, the design really does resemble a star, whereas Ethernet networks run a logical circuits électronique dédiés : rapide et intelligent ; ip link bus topology, meaning that the signal has to run through the network from end to end. parallélisme : plusieurs trames relayées simultanément 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 entre des ports différents : débit aggrégé très élevé link/ether 00:0c:29:89:01:44 brd ff:ff:ff:ff:ff:ff Forwarding modes: Store-and-forward Hubs and repeaters can be used to enlarge the area covered 8: by mon_pt_a_pt: a single <POINTOPOINT,NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT Bandwidth: 48 Gbps for GS724TS, 96 Gbps for GS748TS LAN segment, although I do not recommend this. LAN switches link/sit are affordable peer chaque segment/port a son propre domaine de collision ; for almost every situation. tous les segments sont dans le même domaine de diffusion ; ne bloque pas les trames en «brodcast» ou en «multicast» ; évite les boucles avec STP, «Spanning Tree Protocol». Ethernet Each segment Networking has its own collision domain. All segments are in the same broadcast domain. La technologie Ethernet ou Ethernet II Download from Wow! ebook <www.wowebook.com> Les liens de communication Ethernet is a contention-based media access method that allows all hosts on a network to The real estate business is all about location, location, location, and it s the same way for both share layer the 2 and same layer bandwidth 3 devices. Though of a link. both Ethernet need to be able is popular to negotiate because the network, it s readily it s scalable, meaning that it s comparatively easy to integrate new technologies, such as upgrading La carte from Ethernet Fast et sa configuration Ethernet crucial to remember that they re concerned with very different parts of it. Primarily, layer «Half-Duplex» 3 machines Ethernet (such to Gigabit as routers) Ethernet, need to locate into specific an existing networks, network whereas infrastructure. layer 2 machines It s also relatively ethtool eth0 (switches simple and to bridges) implement need in to eventually the first place, locate specific and with devices. it, troubleshooting So, networks are to is routers what individual devices are to switches and bridges. And routing tables that map Supported ports: [ TP ] reasonably Settings straightforward. Ethernet uses both Data Link and Physical layer specifications, and this chapter for eth0: à l origine dans la norme IEEE Ethernet ; «CSMA/CD» : the internetwork are for routers what filter tables that map individual devices are for Supported link modes: switches will give and bridges. you both the Data Link layer and Physical layer information you need to effectively After a implement, filter table is built troubleshoot, on the layer and 2 device, maintain it will forward an Ethernet frames network. only to the seg- éviter les collisions ; retransmettre les trames en cas de collision ment ; Supported pause frame use: No where the destination hardware address is located. If the destination device is on the Supports auto-negotiation: Yes utilise une paire de fils dans le câble pour unesame transmission segment as the alternée frame, the dans layer les 2 device deuxwill sens block ; the frame from going to any other Advertised link modes: 30-40% d efficacité : 30 Mbps à 40 Mbps ; segments. Collision If the destination Domain is on a different segment, the frame can be transmitted only to that segment. This is called transparent bridging. «Full-Duplex» The When term a switch collision interface domain receives a is frame an Ethernet with a destination term that hardware refers address to a particular that isn t network Advertised pause frame use: No found scenario in the device s wherein filter one table, device it forwards sends the a packet frame to out all connected a network segments. segment, If the thereby Advertised forcing auto-negotiation: Yes utilise une liaison «point à point» entre l émetteur unknown etdevice le récepteur that was sent ; the mystery frame replies to this forwarding action, the plus de collisions possibles ; switch updates its filter table regarding that device s location. But in the event the destination address of the transmitting frame is a broadcast address, the switch will forward all exige un «switch» et non un «hub», avec un port «dédié» pour l hôte : broadcasts to every connected segment by default. un switch et un autre switch ; un hôte et un autre hôte à l aide d un câble croisé un switch et un hôte ; (le croisement est réalisé automatiquement un routeur et un autre routeur ; par une interface gigabit avec l option «Auto- un switch et un routeur ; MDIX») ; utilise deux paires de fils dans le câble pour une transmission simultanée dans les deux sens ; 100% d efficacité possible dans les deux directions : 20 Mbps pour de l Ethernet 10Mbps : 200 Mbps pour de l Ethernet 100Mbps ; Comment la carte choisit entre les deux modes et le débit? la «négociation» et un mécanisme d autodétection. La commande «ethtool» 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off Supports Wake-on: d Wake-on: d Current message level: 0x (7) drv probe link Link detected: yes On remarque que la commande nous renseigne sur l interface «eth0» : le gigabit Ethernet uniquement en «Full Duplex» ; le support du «câble croisé» ; Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

5 Différentes organisations IEEE, «Institute of Electrical and Electronics Engineers» : organisation internationale chargée de superviser le développement et l adaptation de standards internationaux. Par exemple dans le cadre des communications sans fil avec l IEEE ANSI, «American National Standards Institute» : organisation non gouvernementale à but non lucratif contribuant à l élaboration de standards pour l industrie en protégeant les intérêts du public. Par exemple, le code ASCII, American Standard Code for Information Interchange. EIA, «Electronic Industries Association» : organisation à but non lucratif proche de l ANSI dédiée à la résolution des problèmes de fabrication de composants électroniques. La prise du «twisted-pair» appelé RJ-45. ISO, «International Standards Organization» : le nom vient du grec «isos» qui veut dire «égaux», organisation de standardisation internationale dont les membres appartiennent à des comités de standardisation de différents pays. Elle est basée sur le volontariat (pour les Etats-Unis, c est l ANSI qui participe). Dans le cadre des réseaux, sa contribution principale est le modèle OSI : «Open Systems Interconnection Reference Model» qui sert de base à l analyse et la conception des protocoles de communication. ITU-T, «International Telecommunications Union-Telecommunication Standards Sector» : permettre une infrastructure mondiale non seulement dans les réseaux de données mais également dans la téléphonie, PSTN, «public switched telephone network». Les Nations Unies ont formées un comité le CCITT, «Consultive Committee for International Telegraphy and Telephony» compris dans l ITU, «International Telecommunications Union». Tout communication qui traverse les frontières d un pays doit se conformer aux recommandations de l ITU-T. Une technologie comme ATM, «Asynchronous Transfer Mode» est un standard ITU-T. Des forums : promouvoir une technologie et sa standardisation. Exemple le MEF, «Metro Ethernet Forum». Obligations de se conformer aux régulateurs nationaux, comme le FCC, «Federal Communications Commission» qui surveille, par exemple, l utilisation des différents fréquences dans le cas de transmission sans fil.?? a huge number are not). Work related to an experimental situation that does affect Internet operation comprise experimental RFCs. These RFCs should not feedback is required (most of the feedback is provided in the drafting process). be implemented Each as part of any functional Internet service. RFC is edited, assigned a number, and available to all. Not all RFCs are standards, even Informational RFCs Some RFCs contain general, historical, or tutorial information those that define protocols. Les documents This book will make de heavy références use of RFCs to explain all aspects of TCP/IP and rather the than instructions. Internet, so a few details are in order. RFCs have various maturity levels that they go Les «Request for Comment» & l IETF, «Internet Engineering Task Force» through in their lifetimes, according to their requirement levels. The RFCs RFC are life-cycle further classified into one of five requirement levels, as shown in Figure 1.6. maturity IETF :organisme levels are shown responsable in Figure 1.5. dunote développement that the timeline des does standards not always de apply, l Internet. or is not applied in a uniform fashion. Required These RFCs must be implemented by all Internet systems to ensure A specification son proprecan système fall into de one standardisation of six maturity levels, desafter protocoles which it minimum passes utilisés to historical Les status protocoles and is useful concernés only for tracking sonta plus protocol s proches development. l utilisateur Following this book, (applications) intro-are required queprotocols. du matériel. However, there are very few required RFCs. par conformance. les matérielsfor connectés example, à Internet. IPv4 and ICMP, both discussed in detail in duction as Internet draft, the specification can be a: Les standards Internet : des spécifications testées et qui doivent être suivies. Recommended These RFCs are not required for minimum conformance, but are Proposed la procédure standard The d élaboration specification est stricte is now : well understood, very stable, useful. and For example, FTP is a recommended protocol. sufficiently «Internet interesting draft» to : document the Internet de community. travail, souvent The specification modifié sans is now statut particulier et de durée de vie d au plus 6 mois ; usually tested and implemented by several groups, if this Elective RFCs has not already in this category are not required and not recommended. However, happened les développeurs at the draft level. travaillent à partir de ces «drafts» ; systems can use them for their benefit if they like, so they form a kind of Draft standard After un draft peutat être least publié two successful sous la forme and independent d un RFC implementations, (juste option une appellation, set for Internet il n y aprotocols. plus besoin de retour ou feedback). the RFC proposed identifiée standard paris un elevated numéro, to a librement draft standard. consultable Without complications, et, suivant le niveau de requirements, obligatoire, ou pas. and with modifications if specific problems are uncovered, draft Limited standards Use These normally become Internet standards. RFCs are in this category. RFCs are only used in certain situations. Most experimental Tous les RFCs ne sont pas des standards, même ceux définissant des protocoles entiers. Après un certain temps, la RFC peut arriver à maturité et finir dans les «RFC historiques». Experimental RFCs Internet Draft Proposed Standard Draft Standard Internet Standard Historic RFCs Six months Four months Informational RFCs RFC Requirement Levels Required: All systems must implement Recommended: All systems should implement Elective: Not required nor recommended Limited Use: Used in certain situations, such as experimental Not Recommended: Systems should not implement La gouvernance d Internet : les organismes responsables InterNIC, «Internet Network Information Center» entre : organisme public américain chargé de la gestion centrale des adresses et des noms de domaines Internet et de l accréditation d un organisme homologue dans chaque pays, les organismes délégués : AfriNIC (Afrique), APNIC (Asie, Pacifique), ARIN (Amérique du Nord), LACNIC (Amérique du Sud, îles Caraïbes), RIPE NCC (Europe, Moyen-Orient) NIC France ou afnic, NIC Angleterre, etc. ICANN, «Internet Corporation for Assigned Names and Numbers» : Organisation créée en octobre 1998, pour s ouvrir à la concurrence traite les noms de domaine et leur délégation (par exemple VERISIGN Inc. : zone «.com») ; exploitation des serveurs de la racine du DNS (ceux qui font autorité) ; allocation de blocs de numéro IP ; en France, les prestataires (fournisseurs d accès) font l intermédiaire avec l afnic IANA, «Internet Assigned Numbers Authority» : tient l annuaire : adresses IP & numéros de protocoles ; adresses IP et numéros d AS : déléguées aux RIR régionaux, «Regional Internet Registries» ; numéros de protocoles et de ports (entre 1 et 1023) ; déléguées aux LIRs, «Local Internet Registry» (eg. FAI). Les «Registrar» : Un registrar (bureau d enregistrement) est une société ou une association permettant le dépôt de noms de domaine internet, dans les TLD, «Top Level Domain», où il n y a pas de vente directe. Il faut payer un certain montant pour acquérir et protéger un nom de domaine. GIP Renater (Groupement d Intérêt Public) : Réseau de la recherche en France, «Réseau National de télécommunications pour la Technologie l Enseignement et la Recherche» FIGURE 1.5 FIGURE 1.6 The RFC life cycle. Many experimental RFCs never make it to the standards track. RFC requirement levels. There are very few RFCs that are required to implement an Internet protocol suite. 2 Le réseau TCP/IP La conception Contraintes du protocole IP «Internet Protocol» RFC 791 : utiliser la topologie réseau point à point (pour permettre des grandes distances c est obligatoire) ; la panne d un équipement du sous-réseau ne doit pas entraîner une rupture du réseau ; privilégier la disponibilité du réseau : il doit servir au maximum. Le but est que les transactions continuent : du moment que l ordinateur source et l ordinateur destination fonctionnent ; même si certains routeurs ou certaines lignes de transmission tombent en panne (origine militaire de la création d Internet par le DoD états-uniens). Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre Les moyens définir une architecture très souple pour pouvoir mettre en œuvre des applications très diverses comme le transfert de fichiers ou la transmission de la parole en temps réel (TCP et UDP) ; faciliter le routage : construire une méthode simple et rapide (opérations binaires par exemple) ; permettre le regroupement de machines pour les gérer ensemble (regroupement en réseau) ; faciliter le travail de l administrateur (sisi... ).??

6 3 Adressage des matériels : Adresse IPv4 et Adresse MAC Adressage pour le protocole IP (IPv4) Chaque ordinateur et chaque routeur du réseau Internet possède une adresse IP. L adresse IP est décomposée en deux parties <id. réseau><id. machine> : un identifiant de réseau ; un identifiant d ordinateur appartenant à ce réseau. Chaque est adresse IP doit être unique pour permettre de la localiser sur la planète. Il existent différentes répartitions des 32 bits entre identifiant réseau et identifiant machine : ces différentes répartitions définissent un ensemble de classes de réseaux ; ces classes ne sont plus utilisées en CIDR, où on indique uniquement le nombre de bits de la partie réseau ; Propriétés elle est codée sur 32 bits. The IPv4 address is a network layer concept and has nothing to do with the addresses that the data link layer uses, often called the hardware address on LANs. IPv4 addresses must be mapped to LAN hardware addresses and WAN serial link addresses. However, there is no real relationship between LAN media access control (MAC) or WAN serial Répartition (adresselink réseau, addresses in adresse the frame header machine) and the IPv4 addresses used in the packet header, with the special exception of multicast addresses. Les classes de réseaux The original IPv4 addressing scheme established in RFC 791 is known as classful addressing. The 32 bits of the IPv4 address fall into one of several classes based on the value of the initial bits in the IPv4 address. The major classes used for addresses were A, B, and C. Class D was (and is) used for IPv4 multicast traffic, and Class E was reserved for experimental purposes. Each class differs in the number of IPv4 address bits assigned to the network and the host portion of the IP address. This scheme is shown in Figure 4.2. Note that with Class A, B, and C, we are referring to the size of the blocks being allocated as well as the region from which they were allocated by IANA. However, Classes D and E refer to the whole respective region. Multicast addresses, when they were assigned for applications, for example, were assigned one at a time like (for instance) port numbers. (We ll talk about port numbers in a later chapter.) In the rest of this chapter, references to Classes A, B, and C are concerned with address space sizes and not locations. The 4 billion (actually 4,294,967,296) possible IPv4 addresses are split up into five Les adresses de classe A sont classes. peuthe utilisées. five classes Exemple are not equal : /8, in size, and Class AS80, A covers GE-CRD a full half - General of the whole Electric Company. Aux niveaux des adresses IP Class A 0 (0 127) 32-bit Address Starts with: Number of Addresses: ,147,483,648 % of Address Space 50?? elle est représenté par commodité sous forme de 4 entiers variant entre 0 et 255 séparés par des points exemple : Class B 10 ( ) Class C 110 ( ) ,073,741, ,870, un organisme officiel, le NIC, Network Information Center, est seul habilité à délivrer des numéros d identification des réseaux. il y a une seule adresse IP par interface réseau (en général... ). Dans le cas d un routeur interconnectant 2 réseaux différents, il possède une adresse IP pour chacune de ses interfaces connectées à un réseau. 4$%&."#$%%$%&+.# #$% Adresses IP réservées pour #$%&'()$%%$%&*$)+$,,$-,&(.$//$0,1$)23 des usages particuliers Ces adresses permettent d effectuer : des envois de messages multi-destinataires ; désigner la machine courante ; désigner le réseau courant.!"#$%&'()(*(+,-.(/011$203!"#$%%$%&'(&#)%$#*)$%&+,-#&"$%&-%./$%&+.#012-31$#%! ($%&$-456%&($&+$%%'7$%&+18,69($%,6-','6)$%! (:%67-$)&8'&+'0;6-$&051)'-,$ (:%67-$)&8$&):%$'1&051)'-,< X51,&O&Y:)5 ZP5)(6-',$1)&8169+E+$! X51,&O&Y:)5 6(<&($&+'0;6-$ [-&5)(6-',$1)&%1)&8$&):%$'1&8169+E+$ I(<&($&):%$'1 X51,&O&> X51,&O&> ]5+^)$&M1$805-M1$ U5108$ \6//1%65-&86+6,:$&'1&):%$'1&8169+E+$ \6//1%65-&(6)67:$&4$)%&0$&):%$'1 ($%& ',65-%&6-,$)9*)57)'++$&%1)&8'&+E+$&+'0;6-$! ($%&,$%,%&($&857606$8%&):%$'1F<!"#$%&'$%&"$%()*%('$%+",-'.$%#'%$/#.%+"$%01'(('2'#.%123$%$-0%('%01$'"-4! G<G<G<G&$%,&1,686%:&*')&1-$&+'0;6-$&*51)&05--'H,)$&%'&*)5*)$&'()$%%$&IJ&85)%&(.1-&*)50$%%1%& (.'+5)K'7$<&5(('%6'70"%$'%+0/&-0'0%-#'%"60'$$'%89%+"0%(:3#.'02163"30'%6:-#'%"-.0'%2"&;3#'4 L adresse de «boucle» (127.X.Y.Z) permet d effectuer : des communications inter-programme sur la même machine des tests de logiciels réseaux. Dans ces cas là, les paquets ne sont pas réellement émis sur le réseau. D autres adresses particulières :!?LL<?LL<?LL<?LL&$%,&1-$&'()$%%$&($&(6//1%65-&850'8$&0')&$88$&(:%67-$&,51,$%&8$%&+'0;6-$%&(1&):%$'1& est utilisé par une machine pour '1M1$8&'**'),6$-,&8.5)(6-',$1)&M16&1,686%$&0$,,$&'()$%%$<&+"$%6'%&/##"3$$"#&'%6-%01$'"-< connaître sa propre adresse IP lors d un processus d amorçage (BOOTP). Elle devra se procurer 6$%&."#$%%$%&+,-#&#)%$.-&+#1*)&,-&190#.9$0&=%'-%&'00N%&(6)$0,&O&8P$F,:)6$1)D une adresse IP par l intermédiaire d une autre machine.! est une adresse 8$%&'()$%%$%&($&08'%%$&Q&($&>G<G<G<G&O&>G<?LL<?LL<?LL&=>G<G<G<GRSD&T! de diffusion locale car elle désigne toutes les machines du réseau auquel! appartient l ordinateur qui utilise 8$%&'()$%%$%&($&08'%%$&#&($&>"?<>VS<G<G&O&>"?<>VS<?LL<?LL&=>"?<>VS<G<GR>VD< cette adresse. pas besoin de connaissance du réseau.!" Réseaux privés, RFC1918 Les adresses pour réseau privé ou intranet (sans accès direct à l extérieur) : les adresses de classe A de à ( /8) ; les adresses de classe B de à ( /12) ; les adresses de classe C de à ( /16). Ces réseaux ne sont pas «routés», ni diffusés dans le cas de BGP...mais faire attention! $ whois -h riswhois.ripe.net route: /3 origin: AS3303 Class D 1110 ( ) Class E 1111 ( ) FIGURE 4.2 First byte Second byte Third byte Fourth byte ,435, ,435,456 Classful IPv4 addressing, showing the number of addresses possible and percentage of the total address space for each class. Class D is still the valid IPv4 address range used for multicasting. Combiner réseau à diffusion et réseau IP Faire le point... sur un réseau à datagramme, il circule... des datagrammes! ; le réseau à datagramme est appelé réseau IP : il utilise des algorithmes, des formats de données définis dans la norme IP, «Internet Protocol» ; un réseau à diffusion fait circuler des messages de nature différente : les trames (on parle de trame Ethernet ou IEEE 802.3) ; un datagramme doit emprunter un réseau à diffusion pour atteindre un ordinateur : principe d encapsulation : le datagramme est «inclus» dans une trame Ethernet : à l adresse IP d une machine doit correspondre l identifiant de cette machine dans le réseau à diffusion : une adresse MAC : l adresse MAC est attachée à la carte réseau et est choisie par le constructeur de cette carte ; l adresse IP est choisi par l administrateur réseau suivant la configuration qu il veut donner à son réseau ; Comment faire la correspondance a. c est l ordinateur qui connaît l adresse MAC de sa carte réseau ; b. c est l ordinateur qui connaît son adresse IP ; c. Qui peut dire à quelle adresse IP correspond tel adresse MAC? L ordinateur lui même! d. Définition d un protocole pour «questionner» les ordinateurs : ARP, Address Resolution Protocol ?? Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

7 Correspondance : le protocole ARP Transmission physique des datagrammes IP On appelle «couche liaison de données», le logiciel chargé de : la mise en correspondance des adresses IP avec les adresses spécifiques des interfaces physiques l encapsulation des datagrammes IP afin qu ils puissent être transmis sur un support physique particulier. Correspondance entre adresses physiques et adresses IP Le protocole ARP Address Resolution Protocol : il fournit une correspondance dynamique entre une adresse IP connue et l adresse matérielle lui correspondant. Fonctionnement : ARP exploite les possibilités de diffusion : Lorsque le protocole IP doit envoyer un datagramme à un équipement relié à un réseau à diffusion, la couche liaison de donnée consulte sa mémoire cache pour voir si l adresse IP distante y est mise en correspondance avec une adresse physique. Si c est le cas le datagramme IP est émis immédiatement, enveloppé dans une trame Ethernet envoyée à l adresse physique destination Sinon la couche liaison de données construit une requête ARP. Lorsqu un message ARP est reçu, la couche liaison de donnée fait : une première vérification pour vérifier si l adresse IP de l émetteur se trouve déjà dans la mémoire cache ARP locale sinon il y a mise à jour de la mémoire cache, une seconde vérification pour voir si l adresse IP demandée correspond à l adresse IP locale, si ce n est pas le cas le message est détruit, sinon si le message ARP est une requête, une réponse ARP est envoyée. Chapter 8 Internet Protocols 365 Illustration d ARP : les échanges IP: MAC: AB IP: MAC: D-CC-F7 IP: MAC: 49-BD-2F-54-1A-0F?? Illustration d ARP Comment échanger réellement sur un réseau local à diffusion? Les machines ont chacune une carte réseau ; Chaque carte a une adresse MAC unique donnée par le constructeur ; Chaque machine dispose d une adresse IP donnée par l administrateur du réseau. 1 ARP Request Broadcast What s the MAC address of ? Tell , okay? 4 Inxclient ARP Request Sent and Reply Processed bsdserver Not me! (request ignored) Ethernet LAN wincli Not me! (request ignored) (These two devices can cache the sender s MAC and IP addresses.) 2 3 Here s my MAC address... CE Not me! (request ignored) winsvr Hey! That s me! (reply sent unicast) La machine demande de la machine Illustration d ARP : les échanges Inxclient :b0:dO:45:34:64 CHAPTER 5 Address Resolution Protocol :0e:0c:3b:88:56 winsvr2???? Sender ARP Request: to FF-FF-FF-FF-FF-FF Sender MAC: AB Sender IP: Target IP: ARP Reply Sender MAC: A3-B0 B A1 A Sender IP: Target MAC: AB Target IP: Target IP: MAC: A3-B0-21-A Figure La requête 8-17: ARP de request la machine and response « example.» demande de la machine ;!!"!!"!!"!!"!!"!!#$%&'(%)*+(%,'-,%*.)/%,'(%01%-++2(//%2(345(/%.5,'%-)%671%3-89(,%8*),-5)5):% La réponse de la machine donne la la machine winsrv2 ARP exchange reçoitexample, cette requête showing ethow découvre the requested qu elle information lui est destinée is provided : elle by the envoie destination s en retour une «réponse 8-/(A%,'(% 671% 3-89(,% /5I(% 5/% JF% C>,(/#% 671% ARP», mais reply. uniquement à destination de lnxclient. +5DD(2(),%-++2(//%/5I(/A%-/%/,-)+-2+5I(+%C>%,'(%06K6%Lhttp://iana.org/$#%&'(%3-89(,%D5(4+/%-2(M% Cours «Réseaux Avancés I» P-F. Bonnefoi %N-2+.-2(%&>3(M%/3(85D5(/%,'(%45)9"4->(2%32*,*8*4%,>3(#%!*2%(O-E34(A%,'(%8*+(%D*2%P,'(2)(,%5/%G#% ARP VARIATIONS 12 décembre CRC B0D A0A0CA A0A0C34 Data (28 bytes) Destination 0 00B0D ARP Reply Source 0 00E0C3B8856 LAN2 ( ) ( ) Source B0D ( ) ( ) ARP Request Data (28 bytes) Destination 0 FFFFFFFFFFFF 0 00E0C3B A0A0C B0D A0A0CA6 la machine lnxclient FIGURE 5.7 transmet une «requête ARP» à tous, broadcast ; ARP is a fairly straightforward procedure to determine the LAN hardware address that goes with a given IP address. However, there are more network types than LANs and CRC

8 Illustration d ARP Le protocole RARP Reverse Address Resolution Protocol Il réalise l opération inverse : une machine sans adresse IP connue peut envoyer une requête RARP pour demander son adresse IP. une machine particulière (un serveur gérant le réseau) lui répond et lui affecte son adresse IP. cette machine dispose d une table de correspondance : (adresse physique, adresse IP). Le protocole RARP est utile pour amorcer une station sans disque, un Terminal X-Window, ou une imprimante. Pour consulter la table ARP Sous Linux ip neighbor dev eth0 lladdr 00:07:cb:cc:d4:e5 STALE dev eth0 lladdr 64:b9:e8:d2:23:ba REACHABLE Sous Windows?? 4 Routage direct & indirect, encapsulation & fragmentation Pour envoyer un datagramme d une source vers une destination, il faut savoir localiser la machine destination. Deux possibilités : les deux machines font partie du même réseau local : on parle de routage direct (sur Ethernet, on utilisera le protocole ARP et l envoi direct sur le réseau à diffusion) ; les deux machines ne font pas partie du même réseau local : on parle de routage indirect. On doit passer par un intermédiaire qui permet de sortir du réseau local pour aller vers l extérieur : le routeur (ou appelé «passerelle» ou gateway). Pour faire du routage direct ou indirect pour un datagramme savoir si les deux machines font partie du même réseau local ; connaître d un routeur de sortie ; remettre le datagramme à la machine destination si elles sont dans le même réseau locale ; remettre le datagramme au routeur sinon. Comment savoir si Source et Destination sont dans le même réseau? Il faut comparer l <id. réseau> des deux adresses : si c est la même alors les deux sont dans le même réseau local. Comment remettre le datagramme au routeur Il faut utiliser le mécanisme d encapsulation d un datagramme dans une trame : la trame sert à remettre des données d une machine connectée à un réseau local à une autre machine connectée au même réseau locale ; la trame possède de destination indépendante de : il est possible d envoyer la trame à une machine dont ne correspond pas à Par exemple : on peut envoyer une datagramme à destination de l extérieur du réseau local à du routeur. Attention : les attaques MiTM, «Man-in-the-Middle», opèrent sur du routeur! Savoir si deux machines appartiennent au même réseau local En utilisant la notion de classe Il suffisait de comparer les <id. réseau> des suivant la répartition donnée par la classe, mais... La notion de sous-réseau ou Subnetting But Partition d un réseau en différents sous-réseaux. Avantages Éviter d avoir recours à plusieurs réseaux (de classe A, B, ou C) pour disposer de réseaux autonomes au sein d une même entité Exemple : l université de Limoges avec les machines du site de Condorcet, du campus de Vanteaux, de La Borie... Mise en œuvre Définition de sous-réseaux en découpant <id. machine> en deux parties : <id. de réseaux sur r bits><id. de sous-réseau sur s bits><id. de machine sur m bits>, avec r + s + m = 32. Le découpage par multiple de 8bits facilite le travail des routeurs, mais n est pas obligatoire. Une machine connectée à un sous-réseau doit connaître : ; le nombre de bits attribués à l <id. réseau + sous-réseau> et à <id. machine> ; Remarque : l ensemble des sous-réseaux d un même réseau est vu de l extérieur comme un unique réseau (gestion du courrier... ). Masque de sous-réseau (subnet mask) c est un mot de 32 bits contenant : des bits à 1 à la place de l identificateur de réseau et de sous-réseau, des bits à zéro au lieu et place de l identificateur de machine. Ainsi, indique que les premiers 24bits désignent le sous-réseau. Nouvelle notation CIDR / nombre de bits pour identifiant réseau Exemple : /24 pour désigner un réseau ou bien /24 pour une machine.?? Algorithme de routage : choix entre direct ou indirect Localisation de la machine destinataire Chaque ordinateur connecté au réseau Internet dispose : d ; d un masque de sous-réseau (indiquant la répartition des 32 bits entre <id. réseau><id. machine>). Lors de l envoi d un paquet de S à destination d une machine D, l algorithme de routage est : combinaison avec l opérateur binaire «ET», &, de de S et du masque de sous-réseau de S ; combinaison avec l opérateur binaire «ET», &, de de D et du masque de sous-réseau de S ; comparaison entre ces deux valeurs : Si (S) == (D) alors envoi en direct sur le réseau local Sinon c est un routage indirect : envoi par l intermédiaire d un routeur de sortie du réseau local. Nouvelle version : la notion de préfixe Actuellement, on ne tient plus compte de la notion de classe (CIDR : Classless Inter-Domain Routing), on indique la répartition <id. réseau><id. machine> directement à l aide d un «/n». Exemple : /18 où /18 indique l affectation des 18 premiers bits de l adresse pour indiquer le réseau (notation : pour un masque). D où : Si prefixe(taille (S)) == prefixe(taille (D))= routage direct Mise en œuvre du routage direct Utilisation du réseau à diffusion et donc de la et du protocole ARP... Mise en œuvre du routage indirect il faut connaitre l adresse d un routeur de sortie ; il faut remettre le datagramme à ce routeur en routage direct. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

9 Le premier routeur ou la «passerelle» : sortir du réseau local Sous Unix Commandes ip address & ip link permet de connaître la configuration des interfaces actives : carte réseau, pont (bridge), interface virtuelle... ip link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:de:ad:be:ef brd ff:ff:ff:ff:ff:ff ip address show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:de:ad:be:ef brd ff:ff:ff:ff:ff:ff inet /24 brd scope global eth0 inet6 fe80::211:deff:fead:beef/64 scope link valid_lft forever preferred_lft forever Le premier routeur ou la «passerelle» : sortir du réseau local Sous Windows Commande ipconfig Pour : activer une interface : sudo ip link set dev eth0 up désactiver : sudo ip link set dev eth0 down Commande route print Commande ip route ip route /25 dev bridge_dmz proto kernel scope link src /25 dev bridge_internal proto kernel scope link src /24 dev eth0 proto kernel scope link src metric /16 dev eth0 scope link metric 1000 default via dev eth0 proto static Routage & ARP : Quatre cas de figure Case 1: Find the address of a host on the same subnet as the source. Sending Host bsdclient Case 3: Find the address of a router on the same subnet as the source router. Sending Router CE0 LAN LAN ARP Inxserver Receiving Host ARP PE5 Receiving Router CHAPTER 5 Address Resolution Protocol 147 Case 2: Find the address of a router on the same subnet as the source. Sending Host Wincli1 Case 4: Find the address of a host on the same subnet as the source router. Sending Router bsdserver 3. FIGURE routeur 5.2 vers routeur : l émetteur est un routeur et veut «faire suivre» un paquet à un autre routeur connecté dans le Four ARP scenarios. Note that routers employ ARP just as hosts do, and that an ARP stays on the même réseau local. same subnet as the sender. La table de routage est utilisée pour trouver du routeur. du routeur est connue et du routeur destination doit être trouvée. Router to router The ARP sender is a router and wants to forward a packet to another router on the same LAN. A forwarding (routing) table is used to find 4. routeur the IP address versof hôte the router. : l émetteur In this case, est un the routeur IP address et of veut the «router faireis suivre known» un paquet vers un hôte dans le même réseau local. and the de MAC l hôte address estof connue, the destination elle est router contenue must be dans found. le paquet et de l hôte doit être trouvée. Router to host The ARP sender is a router and wants to forward a packet to a host Remarque on the same LAN. In this case, the IP address of the host is known (from the IP destination address on the packet) and the MAC address of the host «...dans le même réseau local»! ARP ne sert quand dans un réseau local. must be found. Let s look at Case 1 in detail because the others are more or less variations on this basic theme. In Case 1, ARP is used when a host wants to send to another host on the same IP subnet and the MAC address of the destination is not already known. We ll Cours start the «LAN2 Réseaux host lnxclient Avancés sending a short I» message P-F. to winsrv2 Bonnefoi (it doesn t really 12 décembre matter what the message is). Because this is the first time that these devices have communicated in a long time, an ARP request is broadcast on LAN2 and the sender waits for a reply. CE6 LAN LAN ARP ARP CEO Receiving Router Receiving Host 1. hôte vers hôte : l émetteur est un hôte qui veut envoyer un paquet à un autre hôte dans le même réseau local. Dans ce cas, de destination est connue et de destination doit être trouvée. 2. hôte vers routeur : l émetteur est un hôte et veut envoyer un paquet à un autre hôte appartenant à un autre réseau local. Il doit consulter la table de routage, «forwarding table» ou «Forwarding Information Base», pour trouver du routeur. du routeur est connue et du routeur doit être trouvée. Encapsulation en technologie Ethernet Le réseau à diffusion utilise une technologie différente du réseau IP : il dispose de ses propres adresses ; il utilise des messages sous un format particulier : la trame Ethernet ou IEEE : bytes: to to 46 4 Preamble Destination address MAC header Source address Type Data Pad Checksum Où : «Preamble» : identifie le début de la trame, jamais transmis aux programmes destination & source ; Length si valeur < 1500 (IEEE 802.3) ou Type si valeur > 1500 (Ethernet II) : nombre d octets du champ Information (la longueur de ce champ est comprise entre 0 et 1500 octets) ; DIX en Ethernet v2.0, Frame champ Structure EtherType à la place : 0x0800 pour un datagramme IPv4, 0x08DD pour un datagramme IPv6, 0x806 pour un message ARP, 0x888E pour du 802.1x, 0x8100 pour du VLAN... Destination Address Source Address Type Information FCS Information 6 bytes ou Data : les données 6 de bytes la trame, complétées 2 bytes éventuellement par bytes du bourrage 4 bytes ; Bourrage ou «padding» (PAD) : octets de bourrage sans signification, insérés si la longueur du champ Data est insuffisante (inférieure à 46 octets) ; FCS, frame check sequence ou Checksum : champ pour la détection d erreurs (rarement transmis aux programmes). Type for IP packets IEEE LANs Frame Structure Destination Address 6 bytes Source Address 6 bytes CHAPTER 3 Network Link Technologies 89 Length 2 bytes Information bytes 8 bytes of added overhead Logical Link Control (LLC) Destination Service Access Point (DSAP) 5 03AA ( SNAP SAP ) FCS 4 bytes

10 Encapsulation!"#$%&'()'($#(*#+,-.'()/-"'(,.#0'(1('"*#+&-$#,23"(4,.#0'(456( :#+,-.'()/-"'(,.#0'(;($/#2)'()'(<2.'&=#.> Un datagramme IP est contenu dans une trame, par exemple une trame Ethernet : Routage direct illustré Chaque machine est identifiée par : une adresse de niveau 2 ; une adresse de niveau 3 ; un réseau d appartenance (connu à l aide du préfixe «/n» ou du masque réseau, netmask).!"#$%&'()(*(+,-.(/011$203!" Le datagramme IP encapsule lui-même un datagramme UDP... Routage direct illustré Les datagrammes IP sont encapsulés dans des trames Ethernet : la trame contient source et de destination ; le datagramme contient source et destination et des données ; la trame contient le datagramme IP. Routage direct illustré & ARP Pour connaitre la correspondance entre adresse IP et adresse MAC : mise en oeuvre du protocole ARP (Address Resolution Protocol) ; construction d une table de correspondance IP et MAC sur chaque machine (cache ARP). La modification malveillante de cette table est possible : «ARP Spoofing» (usurpation d identité), «ARP Cache Poisoning» (insertion d association erronée). Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

11 Routage indirect illustré Le paquet de la machine est routé par l intermédiaire du routeur vers la machine Routage indirect illustré Le datagramme IP est encapsulé, par la machine , dans une trame à destination du routeur, puis, par le routeur, dans une nouvelle trame à destination de la machine L encapsulation permet la redirection vers le routeur sans modifier du datagramme. 5 Le DNS, «Domain Name Server» : Principe de délégation Le système DNS est entièrement distribué au niveau planétaire en utilisant la délégation de domaine. À tout domaine est associé une responsabilité administrative. Une organisation responsable d un domaine peut découper le domaine en sous-domaines ; déléguer les sous-domaines à d autres organisations : qui deviennent responsables du (des) sous-domaine(s) qui leurs sont délégué(s) peuvent, à leur tour, déléguer des sous-domaines des sous-domaines qu elles gèrent. Le domaine parent contient alors seulement un pointeur vers le sous-domaine délégué; Les serveurs de nom enregistrent les données propres à une partie de l espace nom de domaine dans une zone. le serveur de nom à autorité administrative sur cette zone ; un serveur de nom peut avoir autorité sur plusieurs zones ; une zone contient les informations d un domaine sauf celles qui sont déléguées. Les bases «WhoIs» WhoIs «unilim.fr» darkstar:~ pef$ whois unilim.fr %% %% This is the AFNIC Whois server. %% %% complete date format : DD/MM/YYYY %% short date format : DD/MM %% version : FRNIC-2.5 %% %% Rights restricted by copyright. %% See %% %% Use -h option to obtain more information about this service. %% %% [2a01:0e35:8a71:bec0:66b9:e8ff:fed2:23ba REQUEST]» unilim.fr %% %% RL Net [##########] - RL IP [#########.] %% domain: unilim.fr status: ACTIVE hold: NO holder-c: UDL3-FRNIC admin-c: DM269-FRNIC tech-c: GR1378-FRNIC zone-c: NFC1-FRNIC nsl-id: NSL5796-FRNIC registrar: RENATER anniversary: 01/01 created: 01/01/1995 last-update: 11/03/2009 source: FRNIC ns-list: NSL5796-FRNIC nserver: limdns.unilim.fr [ ] nserver: limdns2.unilim.fr [ ] nserver: cnudns.cines.fr [ :660:6301:301::2:1] source: FRNIC registrar: RENATER type: Isp Option 1 address: Rue Daviel address: PARIS country: FR phone: fax-no: website: anonymous: NO registered: 01/01/1998 source: FRNIC nic-hdl: DM269-FRNIC type: PERSON contact: Daniele Mercurio address: centre Universitaire de Calcul de Limoges address: Limoges Cedex country: FR phone: fax-no: notify: changed: 15/10/2000 anonymous: NO obsoleted: NO source: FRNIC Le responsable du domaine : le «CUCL»... Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

12 La requête DNS Modèle de fonctionnement client / serveur l utilisateur utilise un nom de domaine dans une application (exemple : ping ; l application cliente demande la traduction du nom de domaine auprès d un serveur de nom (DNS) cette opération s appelle la «résolution de nom», ou «name resolver» ; si le serveur connait la réponse il répond ; sinon, s il fait autorité pour le domaine demandé, alors pas de réponse (la machine n existe pas) ; s il ne fait pas autorité, le serveur de nom interroge d autres serveurs de nom (de plus grand suffixe commun) jusqu à ce que l association nom de domaine / adresse IP soit trouvée ; le serveur de nom retourne l adresse IP au logiciel client de la machine «www» (il mémorise la réponse dans un cache et pour une certaine durée) ; Le logiciel client contacte le serveur, comme si l utilisateur avait spécifié une adresse IP. Exemple : $ telnet ishtar.msi.unilim.fr connexion établie avec Mécanismes Resolver Les «resolvers» sont les processus clients qui contactent les serveurs de nom Fonctionnement : contacte un «name server» (dont l (les) adresse(s) est (sont) configurées sur la machine exécutant ce resolver) ; interprète les réponses et retourne l information au logiciel appelant ; gère un cache (dépend de la mise en oeuvre). Le serveur de nom interroge également d autres serveurs de nom, lorsqu il n a pas autorité sur la zone requise (fonctionnement itératif ou récursif). Si le serveur de nom est en dehors du domaine requis, il peut être amené à contacter un serveur racine. Amélioration des performances Mécanisme de cache dans les serveurs pour limiter le nombre d interrogations évite la surcharge du réseau ; diminue les délais de réponse ; baisse la charge des serveurs de haut niveau (les serveurs racines). Remplissage du cache lors des requêtes des clients et durée de vie limitée dans le cache TTL (Time To Live) spécifié dans les réponses pour éviter qu une association soit conservée trop longtemps. Types de serveur de nom Serveur de nom primaire : maintient la base de données de la zone dont il a l autorité administrative Serveur de nom secondaire : interroge périodiquement le serveur de nom primaire et met à jour les données Il y a un serveur primaire et généralement plusieurs secondaires. La redondance permet la défaillance éventuelle du primaire et du (des) secondaire(s) Un serveur de nom peut être primaire pour une (des) zone(s) et secondaire pour d autre(s). Les 13 serveurs racines Le terme «anycast» permet d offrir des services DNS de proximité à l aide de cette capacité offerte par IPv6. On peut remarquer que ce service de proximité permet même de délocaliser géographiquement les serveurs et améliore la disponibilité et la sécurité du système DNS. Exemple : une requête DNS vers «google.com» dig ; DiG ; (1 server found) ;; global options: +cmd IN NS j.root-servers.net IN NS g.root-servers.net IN NS l.root-servers.net IN NS k.root-servers.net IN NS c.root-servers.net IN NS f.root-servers.net IN NS e.root-servers.net IN NS m.root-servers.net IN NS b.root-servers.net IN NS d.root-servers.net IN NS h.root-servers.net IN NS a.root-servers.net IN NS i.root-servers.net. ;; Received 272 bytes from #53( ) in 1 ms com IN NS a.gtld-servers.net. com IN NS b.gtld-servers.net. com IN NS c.gtld-servers.net. com IN NS d.gtld-servers.net. com IN NS e.gtld-servers.net. com IN NS f.gtld-servers.net. com IN NS g.gtld-servers.net. com IN NS h.gtld-servers.net. com IN NS i.gtld-servers.net. com IN NS j.gtld-servers.net. com IN NS k.gtld-servers.net. com IN NS l.gtld-servers.net. com IN NS m.gtld-servers.net. ;; Received 492 bytes from #53(k.root-servers.net) in 31 ms google.com IN NS ns2.google.com. google.com IN NS ns1.google.com. google.com IN NS ns3.google.com. google.com IN NS ns4.google.com. ;; Received 168 bytes from #53(e.gtld-servers.net) in 34 ms IN CNAME IN A IN A IN A IN A IN A IN A ;; Received 148 bytes from #53(ns1.google.com) in 26 ms la configuration de la machine msi.unilim.fr : more /etc/resolv.conf search msi.unilim.fr unilim.fr nameserver nameserver nameserver la requête fait appel au serveur DNS connu de la machine msi.unilim.fr, mais demandé explicitement dans l utilisation de l outil dig. le serveur, resolver, réalise une requête à différents «root servers» il obtient une réponse de la part du serveur racine «k.rootservers.net» qui lui donne la liste des serveurs «GTLD», «Generic Top Level Domain», chargés du domaine «.com» ; le serveur «e.gtld-servers.net» lui renvoi la liste des serveurs DNS en charge du domaine google.com ; le serveur DNS «ns1.google.com» renvoi une liste d adresse correspondant à la machine google.com. Il retourne plusieurs adresses IP pour la même adresse symbolique pour réaliser du «round-robin» qui effectue de l équilibrage de charge, «load-balancing». Les serveurs racines présents dans le système d exploitation ; Cache file:. IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. IN A IN NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. IN A IN NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. IN A IN NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. IN A IN NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. IN A IN NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. IN A Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

13 La résolution inversée d adresse vers «nom symbolique» Resolution inverse Elle consiste a obtenir le nom de domaine à partir de l adresse IP : pour faciliter la compréhension des humains pour des raisons de sécurité Elle est plus délicate que de nom vers IP car le système DNS est organisé pour la résolution de nom recherche exhaustive??? Solution : utiliser les adresses comme des noms : le domaine «in-addr.arpa» les noms des noeuds correspondent aux octets de l adresse IP en ordre inverse le domaine in-addr.arpa a 256 sous-domaines, chacun de ces sous-domaines a 256 sous-domaines, chacun de ces sous-domaines a, à son tour, 256 sous-domaines, le 4ème niveau correspond à un NS connaissant le nom de domaine associé à cette adresse IP. Le nom de domaine associé à la résolution inverse est noté selon l adresse IP inversée car la résolution d un nom de domaine se fait de droite à gauche : Exemple : in-addr.arpa Résolution : 1 in-addr.arpa A.ROOT-SERVER.NET in-addr.arpa NS.RIPE.NET 3.in-addr.arpa NS.RIPE.NET in-addr.arpa msi.unilim.fr darkstar:~ pef$ dig -x portable-pf.msi.unilim.fr. Configuration du serveur DNS Les données d un serveur DNS sont enregistrées dans une base identifiée par les noms de domaine correspondants (chaque enregistrement est appelé RR, «Resource Records»). Types d enregistrements : SOA : décrit l autorité administrative (Start of Authority) NS : liste de serveurs de nom pour ce domaine A : correspondance nom -> adresse PTR : correspondance adresse -> nom CNAME : alias ou surnom TXT : texte HINFO : description machine, plus utilisé pour des questions de sécurité RR = { classe, type, clé, valeur } où classe est IN pour INTERNET Exemple : 1 SOA = Start of Authority Spécifie que ce serveur de nom a autorité sur le domaine 2 ; Database file msi.unilim.fr zone. 3 unilim.fr IN SOA msi.unilim.fr 4 ( ; serial number (ex : AAAAMMJJnn) ; refresh (ex : 6h période de mise à jour des secondaires) ; retry (ex: 1h durée minimale avant procaine interrogation) ; expire (ex: 1 jour) ) ; minimum TTL des entrées dans le cache 9 NS dns.msi.unilim.fr 10 TXT «Departement Informatique» 11 ishtar IN A msi IN A www IN CNAME msi ; des alias in-addr IN PTR msi.unilim.fr Certains champs correspondent à des services Le serveur de courrier MX = Mail exchanger Permet l adressage sur la base du nom de domaine plutôt que sur l adresse du (des) serveur(s) de mail : plutot que ; permet à l émetteur d ignorer quelle est la machine serveur de mail ; permet le deplacement du gestionnaire de mail vers une autre machine ; permet la gestion de plusieurs serveurs de mail avec priorité dans l ordre de consultation des serveurs L enregistrement MX est utilisés par les MTA, «Mail Transfer Agent», en tenant compte des priorités : dig +short mx unilim.fr 50 mail.unilim.fr. dig +short mx google.com 30 alt2.aspmx.l.google.com. 40 alt3.aspmx.l.google.com. 50 alt4.aspmx.l.google.com. 10 aspmx.l.google.com. 20 alt1.aspmx.l.google.com. Le MTA utilise le protocole SMTP, «Simple Mail Transfer Protocol», en tant que client. Le DNS : utilisation de la commande dig Une requête plus concise dig +noall +answer web.unilim.fr web.unilim.fr IN A Pour IPv6 avec des champs adresses 4 fois plus grand (AAAA) dig +short AAAA 2001:660:3001:4002::10 Interrogation du SOA dig soa unilim.fr ; DiG soa unilim.fr ;; global options: +cmd ;; Got answer: ;; -»HEADER«- opcode: QUERY, status: NOERROR, id: ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6 ;; QUESTION SECTION: ;unilim.fr. IN SOA ;; ANSWER SECTION: unilim.fr IN SOA limdns.unilim.fr. postmaster.unilim.fr ;; AUTHORITY SECTION: unilim.fr IN NS cnudns.cines.fr. unilim.fr IN NS limdns2.unilim.fr. unilim.fr IN NS limdns.unilim.fr. ;; ADDITIONAL SECTION: cnudns.cines.fr IN A cnudns.cines.fr IN AAAA 2001:660:6301:301::2:1 limdns.unilim.fr IN A limdns.unilim.fr IN AAAA 2001:660:6201:1::4 limdns2.unilim.fr IN A limdns2.unilim.fr IN AAAA 2001:660:6201:1::5 ;; Query time: 18 msec ;; SERVER: #53( ) ;; WHEN: Thu Sep 15 13:25: ;; MSG SIZE rcvd: 276 Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

14 Le DNS : plus loin Le TTL qui décroit en direct et «Round Robin» On fait plusieurs requêtes en suivant, et on constate que la durée de vie de la validité de la réponse diminue : dig +noall +answer gmail.com gmail.com. 300 IN A gmail.com. 300 IN A gmail.com. 300 IN A gmail.com. 300 IN A dig +noall +answer gmail.com gmail.com. 298 IN A gmail.com. 298 IN A gmail.com. 298 IN A gmail.com. 298 IN A dig +noall +answer gmail.com gmail.com. 271 IN A gmail.com. 271 IN A gmail.com. 271 IN A gmail.com. 271 IN A dig +noall +answer gmail.com gmail.com. 30 IN A gmail.com. 30 IN A gmail.com. 30 IN A gmail.com. 30 IN A On remarque que la réponse du serveur DNS est : multiple ; l ordre de ces réponses change avec le temps Une requête Wikipedia au travers du protocole DNS On utilise le champ «TXT» : dig +short txt startrek.wp.dg.cx dig +noall +answer gmail.com gmail.com. 25 IN A gmail.com. 25 IN A gmail.com. 25 IN A gmail.com. 25 IN A dig +noall +answer gmail.com gmail.com. 3 IN A gmail.com. 3 IN A gmail.com. 3 IN A gmail.com. 3 IN A dig +noall +answer gmail.com gmail.com. 2 IN A gmail.com. 2 IN A gmail.com. 2 IN A gmail.com. 2 IN A dig +noall +answer gmail.com gmail.com. 1 IN A gmail.com. 1 IN A gmail.com. 1 IN A gmail.com. 1 IN A Il correspond à répartir un trafic (HTTP par exemple) afin d équilibrer la charge entre différents serveurs. On «fait tourner» différentes réponses (algo. de «Round-Robin»). "Star Trek is an American science fiction entertainment series and media franchise. The Star Trek fictional universe created by Gene Roddenberry is the setting of six television series including the original 1966 Star Trek, in addition to ten feature films" " with an eleventh in post-production to be released on May 8, The franchise also extends to dozens of computer and Configuration manuelle d une machine pour l accès à Internet Configuration de l adresse IP et du réseau de connexion : ip address flush dev eth0 ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:de:ad:be:ef brd ff:ff:ff:ff:ff:ff ip address add /24 brd + dev eth0 ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:de:ad:be:ef brd ff:ff:ff:ff:ff:ff inet /24 brd scope global eth0 ifconfig eth0 eth0 Link encap:ethernet HWaddr 00:11:de:ad:be:ef inet adr: Bcast: Masque: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Packets reçus: erreurs: :7968 overruns:0 frame:0 TX packets: errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 Octets reçus: (1.1 GB) Octets transmis: (807.2 MB) Interruption:19 Adresse de base:0x2024 Configuration de la route par défaut : ip route add default via ip route /24 dev eth0 proto kernel scope link src default via dev eth0 Il ne manquera plus qu à configurer la résolution DNs avec le fichier /etc/resolv.conf. Configuration paramétrée d une machine pour l accès à Internet On édite le contenu de /etc/network/interfaces more /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address netmask gateway le fichier /etc/resolv.conf : more /etc/resolv.conf domain pefnet search pefnet nameserver Le «search» indique le nom de domaine à ajouter au nom d une machine entrée sans le FQDN (exemple : msi au lieu de msi.unilim.fr on relance le «service» réseaux : /etc/init.d/networking restart Configuration automatisée d une machine pour l accès à Internet configuration de l interface pour utiliser le client DHCP, «Dynamic Host /etc/network/interfaces : auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp en ligne de commande : $ sudo dhclient eth0», dans le fichier Le client DHCP configure l interface, le fichier resolv.conf et la route par défaut si un serveur DHCP prend en charge sa demande. ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:de:ad:be:ef brd ff:ff:ff:ff:ff:ff inet /24 brd scope global eth0 ip route /24 dev eth0 proto kernel scope link src default via dev eth0 Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

15 Plan de la partie Protocoles Éléments importants Notion de couches et de processus pairs ; Notion de service et d interface ; Modèle OSI et pile de protocoles TCP/IP ; Modélisation de protocole ; Problème de synchronisation et de programmation. 1 Abstraction du réseau : les «couches» Organisation en série de couches But réduire la complexité de conception. Les réseaux sont organisés en série de couches ou niveaux, chacune étant construite sur la précédente. Rôle d une couche offrir certains services aux couches plus hautes, en leur masquant l implémentation de ces services. Relation entre couches sur différentes machines : La couche n d une machine gère la conversation avec la couche n d une autre machine. Notion de «protocole» : Les règles et conventions utilisées pour cette conversation sont connues sous le nom de «protocole de la couche n» : Un protocole est un accord entre les parties sur la façon de communiquer ; Toute violation du protocole rend la communication extrêmement difficile voire impossible. Notion de «processus pairs» : Les couches correspondantes sur différentes machines sont appelés processus pairs, peer. Ce sont les processus pairs qui communiquent à l aide du protocole. En réalité, aucune donnée ne passe directement de la couche n d une machine à la couche n d une autre machine, mais chaque couche passe par les données et les contrôle à la couche qui lui est immédiatement inférieure. 1.1 La notion de protocole Un protocole humain et un protocole machine «demander l heure à quelqu un» et «demander une ressource sur un serveur Web».?? Exemple de protocole Le protocole SMTP, «Simple Mail Transfer Protocol» socat - tcp:smtp.unilim.fr: smtp.unilim.fr ESMTP Sendmail /8.13.1; Thu, 15 Sep :28: HELO msi.unilim.fr 250 smtp.unilim.fr Hello [ ], pleased to meet you MAIL FROM: Sender ok RCPT TO: Recipient ok DATA 354 Enter mail, end with "." on a line by itself Subject: Message La commande «socat» permet de simplement établir une connexion TCP avec le serveur que l on a désigné sur le port indiqué. Message de test envoye directement! p8fdsoje Message accepted for delivery QUIT smtp.unilim.fr closing connection Les protocoles définissent : le format des données échangées ; l ordre des messages émis et reçus entre les entités réseaux; ainsi que les réactions à ces messages. Un protocole correspond à un comportement qui évolue en fonction des données échangées. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

16 Exemple de protocole Le protocole HTTP, «Hyper Text Transfer Protocol» socat - tcp:www.unilim.fr:80 HEAD / HTTP/1.0 HTTP/ OK Date: Thu, 15 Sep :01:18 GMT Server: Apache Vary: Cookie,Accept-Encoding Composed-By: SPIP + article_pdf(0.1) Connection: close Last-Modified: Thu, 15 Sep :01:18 GMT Content-Type: text/html; charset=utf-8 Content-Language: fr Le protocole POP, «Post Office Protocol» socat - tcp:pop.unilim.fr:110 +OK courriel Cyrus POP3 v debian xm.1 server ready USER bonnefoi +OK Name is a valid mailbox PASS bob -ERR [AUTH] Invalid login ^C Les couches Notion d interface : entre chaque couche adjacente existe une interface. L interface définit : les opérations élémentaires, appelées «primitives» ; les services que la couche inférieure offre à la couche supérieure. La définition des interfaces doit être claire : chaque couche réalise un ensemble de fonctions bien définies ; le changement d implémentation d une couche est transparent : il suffit à la nouvelle implémentation d offrir exactement à sa voisine du dessus le même ensemble de services que l ancienne Exemple : changement d une carte réseau, passage d une connexion filaire à du sans-fil... L ensemble des couches et protocoles est appelé architecture réseau. Au niveau de la conception du réseau : les spécifications de l architecture doivent contenir suffisamment d information pour permettre d écrire le logiciel ou de construire le matériel pour chaque couche de manière qu il obéisse correctement au protocole approprié ; ni les détails de mise en œuvre, ni les spécifications de l interface ne font partie de l architecture puisqu ils sont invisibles à l extérieur. il n est pas nécessaire que les interfaces de toutes les machines du réseau soient identiques, pourvu que chaque machine puisse utiliser correctement les protocoles (windows et GNU/Linux par exemple). L ensemble des protocoles utilisés par un système, avec un protocole par couche, est appelé souvent «pile de protocoles». Programmation d une couche : primitives de service et programmation Socket a. Le serveur indique qu il est prêt et d accord pour établir une connexion à l aide de l instruction accept ; b. le client demande l accès au service de connexion au travers d une instruction connect : ce connect réalise la primitive de service : requête ; des paquets sont échangés à travers les interfaces; c. la réception de ces paquets sur le serveur déclenche une indication sur l OS d Alice qui possède déjà l autorisation d accepter la connexion, etc.?? Les Couches Deux concepts importants a. Relation entre communication virtuelle et effective b. Différence entre protocoles et interfaces Exemple les processus pairs de la couche 5 conçoivent leur communication de façon horizontale, grâce au protocole fournis par la couche 4 : chacun des processus utilise : une procédure appelée «envoi à l autre côté», une procédure «réception de l autre côté», en réalité : ces procédures communiquent avec les couches inférieures par l intermédiaire de l interface 3/4, et non, comme elles en donnent l impression, avec l autre côté! Le concept abstrait de processus pair est crucial pour la conception des réseaux. Cette technique d abstraction permet de passer : d un problème insoluble : la conception d un réseau global, à plusieurs problèmes solubles : la conception de chaque couche. L ensemble des couches a été normalisées par l ISO en 7 couches. Ce modèle a été appelé OSI (Open System Interconnection). Il existe aussi celui, plus simple, de la pile TCP/IP. Seul la pile TCP/IP a été implémentée. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

17 ter 1 Introduction to Computer Networking 0 The OSI model Le modèle OSI, «Open Systems Interconnection» sert de référence pour décrire le fonctionnement du réseau : Application Layer 7 5 couches présentes dans TCP/IP : Physique, Liaison de données, Réseau, Transport, Application ; Presentation Layer 6 2 couches «applicatives» dans TCP/IP : Session, Présentation ; chaque couche réalise un travail distinct avec des «moyens» interchangeables Session Layer 5 (protocoles, technologies) : Physique : technologie WiFi, Ethernet, Bluetooth, etc. Transport Layer 4 Liaison de données : trame 802.3/Ethernet II ; Réseau : datagramme IPv4, IPv6 ; Network Layer 3 Transport : UDP, «User Datagram Protocol», TCP, «Transmission Control Protocol», SCTP, «Stream Control Transmission Protocol», etc. Data Link Layer 2 14 Chapter 1 Introduction to Computer Networking Application : navigateur Web, logiciel de messagerie. etc. Présentation : 48 encodage Chapter des1 données, représentation ; Physical Layer 1 Session : ouverture/fermeture de session, identification des utilisateurs... FIGURE working functions Communication 1.11 Peer communication the two «Pair lowest à Pair layers» between encapsulation three of the seven layers of the OSI model, Layer 1 ayer 2 (Data Link). However, to some degree Layer 3 (Network) plays a erally for the TCP/IP protocol capabilities. Here s how each layer is used: Y, the Physical layer) consists of bit-level data streams and computer APPLICATION APPLICATION rdware connecting the devices together. Direct Connection This hardware includes network PRESENTATION PRESENTATION rds, cables, switches, SESSION wireless access points, and bridges. SESSION In the case of tworking, radio TRANSPORT frequency (RF) uses air as the medium TRANSPORT Direct Connection for wireless coms. The Physical NETWORK NETWORK DATA layer LINK consists of two sublayers: the DATA Physical LINK Layer Convercol (PLCP) and PHYSICAL Physical Medium Dependent (PMD). PHYSICAL The PLCP, the higher Direct Connection layers, is the interface between the PMD and Media Access Control (MAC) Encapsulation he PMD is the lower sublayer at the bottom of the protocol stack and is for transmitting the data onto the wireless medium. Encapsulation 44 PART I Networking Basics ata Link layer) is responsible for organizing the bit-level data for communican devices The purpose on a network of encapsulation and detecting is to allow and Application correcting layer Physical data communication layer errors. between 1.2 La pile TCP/IP two stations on a network using the lower layers as a support system. As data moves down ink layer consists of two sublayers: the Logical Link Control (LLC) sublayer the OSI model from the source to the destination, it is encapsulated. As data moves back Access up the Control OSI model (MAC) from sublayer. the source The to the bit-level destination, communication it is decapsulated. is accomough header Media and/or Access trailer Control when information (MAC) addressing. is being transmitted A MAC and address removes is a them unique when infor- Each layer adds a f each mation device is being on the received. computer Encapsulation network Application is and the is method known in which as the lower physical layers address. support upper layers. Figure 1.12 illustrates the process. etwork layer) is where the Internet Protocol (IP) protocol resides and is SMTP HTTP TFTP for FIGURE addressing 1.12 and routing Information data. is added An IP at address each layer is defined of the OSI as a model numerical as data moves r logical between address devices. assigned to a network device. The IP address can be static, ssigned by a user, or it can be dynamically assigned from a server. Application ansport layer) Transmission Control Protocol (TCP) is a connection-oriented d is used for communications requiring reliability and is analogous to a circuitone call. User Datagram Protocol (UDP) is a connectionless protocol and Presentation IPv4 IP NAT simple communications requiring efficiency. UDP is analogous to sending a Session rough a mail service. You would not Network know if the postcard was received. UDP ort numbers are assigned to applications for flow control and error recovery. Transport Network Data Link Physical Layer 1 Header Transport Layer 2 Header Data Link Layer 2 Header Physical Layer 3 Header Layer 3 Header Layer 3 Header Layer 4 Header Layer 4 Header Layer 4 Header Data ARP Data FIGURE 1.28 Encapsulation Data encapsulation TCP header IP header LLC header MAC header Upper layer data Upper layer data Data Data Data Protocols Layer 4 and Header Data Links Determined by Underlying Network (includes SLIP and PPP) 8/25/2012 3:00:26 PM FCS FCS Application Presentation Session Transport Network Data Link Physical PDU Segment Each segment is then handed to the Network layer for network addressing and routing through the internetwork. Logical addressing (for example, IP) is used to get each segment to the correct network. The Network layer protocol adds a control header to the segment handed down from the Transport layer, and what you have now is called a packet or datagram. Remember that the Transport and Network layers work together to rebuild a data stream on a receiving host, but it s not part of their work to place their PDUs on a local network segment which is the only way to get the information to a router or host. It s the Data Link layer that s responsible for taking packets from the Network layer and FTP DNS placing them on SSHthe network medium SNMP (cable or wireless). The Data Link layer encapsulates each packet in a frame, and the frame s header carries the hardware address of the source and destination hosts. If the destination device is on a remote network, then the frame is sent to a router to be routed through an internetwork. Once it gets to the destination network, a new frame is used to get the packet to the destination host. DHCP To put this frame on the network, it must first be put into a digital signal. Since a frame is really a logical group of 1s and 0s, the Physical layer is responsible for encoding these digits into a digital signal, which is read by devices on the same local network. The receiving devices will synchronize on the digital signal and extract (decode) the 1s and 0s from the UDP Data digital signal. At this point, the devices build the frames, run a CRC, and then check their TCP Others answer against the answer in the frame s FCS field. If it matches, the packet is pulled from the frame, and what s left of the frame is discarded. This process is called de-encapsulation. The packet is handed to the Network layer, where the address is checked. If the address matches, the segment is pulled from the packet, and what s left of the packet is discarded. The segment is processed IP at Support the Transport layer, which rebuilds the data stream and acknowledges to the transmitting Protocols: station that it received each Routing piece. It then happily hands the data stream to the upper-layer application. ICMPv4 Protocols: ICMPv6 RIP, OSPF, IPv6 Neighbor BGP IPSec Data Discovery RARP Packet Frame Bits Le modèle Ivan en Marsic couches Rutgers University : le modèle OSI «illustré» OSI versus TCP/IP "#$! %$&$'! ()*$+%!,)'! -$!,.',$/01)((*!.+2)'34$5!0.! 0#+$$! %1-2+.1/%6! 73+%08! ()*$+%! 98! :8! )'5! ;< /#*%3,)(!)55+$%%3'28!$0,6!A$,.'58!()*$+%!B8!C8!)'5!D<%$%%3.'8!/+$%$'0)03.'8!)'5!)//(3,)03.'<,)'! -$! 0#.12#0!.?! )%! *)"&( )*++%&#(,-."&)6! "#$*! )((.>! 3'0$+./$+)-3(30*! 1'+$()0$5! %.?0>)+$! )+$! '.! ),01)(! /+.0.,.(! 0#)0!?.((.>! 0#$! O$,)1%$! 30! 3%! 5)0$58! K! >3((! 7: Application 6: Presentation 5: Session 4: Transport 3: Network 2: Link MAC Data translation (MIME) Encryption (SSL) Compression Reliable (TCP) Real-time (RTP) Source-to-destination (IP) Routing Address resolution 1: Physical Copper As it was mentioned before, the OSI model is more of a theoretical model and it is Figure 1-15: OSI reference architecture for communication protocol layering. very useful in the learning process. On the other hand, the Internet was built on the TCP/IP TCP/IP model, vs OSI and so, TCP/IP is the most popular due to its usage and its protocols. 22 Application services (SIP, FTP, HTTP, Telnet, ) Dialog control Synchronization Wireless link (WiFi) Wired link (Ethernet) Radio spectrum Infrared Fiber?? Chapter 1 Attention : FIGURE 1.22 TCP/IP protocols and layers. Note the position of some protocols between layers. certains protocoles comme RIP, OSPF, BGP utilisent des protocoles de niveau 4, «Transport». le protocole ARP est entre les couches 2 et 3. With few exceptions, the TCP/IP protocol suite does not really define any low-level Cours «Réseaux protocols Avancés below I» the network P-F. layer. Bonnefoi TCP/IP usually specifies how to put IP packets into Both models are layered models and have the benefits of 12layered décembre frames and how to get them out again. Many RFCs define IP mapping into these lower- communication models. layer protocols. We ll talk more about this mapping process in Chapter 2. 8/25/2012 3:00:26 PM Pas de couche «Présentation» et de couche «session» dans TCP/IP par rapport à OSI. Some similarities between the two models are: Both models have application layers, even if they include different services.

18 Networking Fundamentals Let's see an example in a TCP/IP network: TCP/IP : couches, protocoles et routage Modélisation de protocole Protocoles de haut niveau Les protocoles dans le monde TCP/IP sont décrits dans les RFC «Request For Comment». RFC 1945 pour HTTP, RFC 821 pour SMTP et 1032 pour DNS, etc. Un protocole est la définition de règles pour la communication entre deux entités paires. Il est défini par : un certain nombre de primitives (listen, socket, bind... ), la définition d un ordre d échange d utilisation de ces primitives (bind doit être utilisé après socket), la définition d un ensemble de question/réponse attendu (un accept réussi après un connect) Toute violation du protocole entraîne l échec de la communication, mais peut également bloquer l émetteur et/ou le récepteur. Il est nécessaire de faciliter : la conception : définir les primitives, l ordre d échange et les interactions entre émetteur et récepteur ; la validation : vérifier qu il fonctionne en permettant un dialogue tel qu il a été décidé ; la correction : faire en sorte qu il soit possible de sortir ou d éviter une situation de blocage ; La solution : a. Élaboration de scenarii pour définir le protocole ; b. Modélisation du fonctionnement du protocole ; c. Obtention d une spécification formelle du protocole. Les moyens : Utilisation d automate fini et de réseaux de Pétri. Chaque A packet matériel originating dispose d une from pilehost TCP/IP, X will plus get ou moins to host complète. Y by traversing routers A, B, and C. Let's say, for example, that host X is a web server replying to a request originally initiated from host Y. Modélisation de protocole Organisation The HTTPD des échanges server (X Layer 7) responds to the request by sending a HTML-formatted page choix (X du Layer modèle 6) de to conception host Y. générale The server : has many requests that it answers at that moment; centralisé ou so répartie, the operating «client/serveur system» ou will «égal send à égal the» data (the web page) on a session initiated choix du type when de communication host Y made : the request (X Layer 5). The data is then encapsulated in a orienté TCP segment connexion(x ou Layer datagramme, 4). The TCP TCP ou UDP segment is then encapsulated in an IP packet Comportement with the source du serveur IP of sihost nécessaire X and destination IP of host Y (X Layer 3). Host X looks for host gestion Y in d un its seul routing client àtable la fois and ; doesn't find it; so host X should forward the IP packet to gestion router dea, plusieurs which clients has simultanément interface ; on the same subnet with the IP address of an Durée Ethernet du déroulement card on du host protocole X. The IP packet is sent to the Ethernet interface and converted to leethernet protocole est frames limité à(x une Layer seule 2), transaction which ; are then converted to electric currents and sent through le protocole the peut RJ45 s étendre socket sur of plusieurs the Ethernet transactions card : (X Layer 1). Comment mémoriser les étapes du protocole? Imaginer Router des A scénarii receives d usage some du currents protocoleon the cable entering one of its Ethernet interfaces (A Layer 1) and converts these currents to Ethernet frames (A Layer 2). Ethernet dérouler le fonctionnement suivant les différents comportements prévus ; frames en cas d erreur are then de l interlocuteur, converted to duip réseau packets. (pertesthe de messages, router looks arrivéeat des the données destination dans le désordre, IP address etc.) ; Formaliser in the IP lepacket, protocoleand sees that it matches none of its IP addresses; so it knows that it should find a path to host Y. Looking at its routing table, it finds that the best path is définir le format des échanges ; combiner les différents scénarii pour définir le comportement complet ; choisir le comportement pour la fiabilité du protocole (éviter les blocages, garantir la disponibilité, [ 26 ] se protéger des comportements malveillants, etc.). Modélisation d une transaction : Message Sequence Charts utilisés pour modéliser les échanges au cours du temps entre un nombre fini de processus. permettent de définir des «scenarii» pour détailler le comportement d un protocole sur des exemples de cas concrets. les différents acteurs un scenario d échange le protocole une transaction complète des événements (en orange) : réception et émission placé sur chaque processus ; des échanges : des flêches ; le contenu des messages : étiquette sur les flêches. un ordre sur les échanges ; le MSC permet de : définir des exigences ; détecter les mauvais comportements. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

19 Modélisation d une transaction : Message Sequence Charts Limitations modélisation limitée à une transaction ou à une session complète (plusieurs transactions la suite) ; Pour décrire tout le protocole, il faut envisager de nombreux scenarii, voire tous les scenarii possibles! Lorsque plusieurs échanges sont nécessaires pour une même transaction ou lorsque plusieurs transactions sont nécessaires pour une même session : nécessité de mémoriser «où on en est» par rapport à ces différents échanges/transactions : chaque mémorisation peut modifier le scenarii : reprendre une transaction peut être impossible à partir d un certain temps, une session peut s interrompre automatiquement au bout d un certain temps, etc. pour chaque mémorisation il faudrait reprendre et définir tous les scenarii... Un scenario décrit un cas d usage ou «use case» : il sert à illustrer, pour une situation donnée comment le protocole va se comporter. Pour décrire complètement le protocole il faut un outil permettant de décrire son «comportement» global en tenant compte des «mémorisations» possibles : la modélisation par automate à nombre fini d états. La modélisation d un protocole avec un automate fini Le protocole HTTP, «HyperText Transfer Protocol», RFC 1945 protocole «texte» : échange de lignes de commandes au format ASCII 7bits ; utilise le protocole de transport entre le client et le serveur de type TCP. très simple, ce qui explique sa popularité et sa facilité de mise en oeuvre. Différentes versions : HTTP/0.9 version de base avec requête/réponse le document est renvoyé directement ; HTTP/1.0 version normalisée (RFC 1945) avec comme amélioration, l ajout d en-tête pour la description des ressources échangées (utilisation du format MIME RFC822), d informations supplémentaires envoyées par le client (format de données supporté ou désiré, description de la version et de la marque du navigateur...) HTTP/1.1 ajout de connexions persistantes entre le client et le serveur en vue de l échange de plusieurs ressources par l intermédiaire de la même connexion (transfert des différents éléments d un même document composite). socat stdio tcp:libpfb.so:80 GET /toto HTTP/1.0 Host: libpfb.so Le protocole HTTP, «HyperText Transfer Protocol», RFC 1945 HTTP/ Not Found Date: Sun, 08 Sep :21:17 GMT Server: Apache Set-Cookie: fe_typo_user=794333b9b1f8709f82d91220c245dc30; path=/ Set-Cookie: PHPSESSID=i5n97e4jf7ll8mn4v0hhn2rv30; path=/ Expires: Thu, 19 Nov :52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: Accept-Encoding Content-Length: 26 Connection: close Content-Type: text/html <h1>page not found!</h1> Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

20 Le protocole HTTP Utilisation du «mode connecté» : protocole de transport TCP, encapsulant le protocole HTTP pour échanger un descripteur de format MIME, encapsulatn un contenu formaté HTML,... Le protocole HTTP Une pile de protocole protocole «utilisateur» ou abstrait : consultation d une page web ; protocole de transport : TCP ; protocole d échange : HTTP ; format d échange : MIME. Le protocole HTTP Rapport entre les différents protocoles Le protocole abstrait est celui qui intéresse l utilisateur (ici, Alice), c-à-d. «naviguer sur le Web». L unité élémentaire de ce protocole est la transaction (Alice charge une page Web). Le navigateur d Alice réalise plusieurs échanges au format HTTP pour récupérer les contenus multimédia. La notion de session décrit l ensemble des transactions qui ont un certain lien entre elles. Par exemple : entrer dans le magasin virtuel, s identifier, remplir son caddie, payer et quitter le site. Le protocole HTTP : la notion de session Utilisation de cookies, de données de formulaires, de contenus JSON, d URL particulière (REST), etc. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

21 Le protocole SMTP HTTP over UDP?? Le protocole UPnP, «Universal Plug and Play» HTTPU, «HTTP unicast» HTTPMU, «HTTP multicast» E 7F FF FA B4 07 F9 F3 3A ^...:s..E F DA 04 A EF 0020 FF FA 07 6C 07 6C 00 E5 F1 76 4E 4F l.l...vNOTIFY A F 31 2E 31 0D 0A 48 6F 73 * HTTP/1.1..Hos A E E E 32 t: A D 0A 4E 54 3A E 50:1900..NT: urn A 6E 75 6C 6C 73 6F E 63 6F 6D 3A :nullsoft.com:de A 41 6E F A 31 0D 0A vice:android: E A A 61 6C D 0A NTS:ssdp:alive D 43 6F 6E F 6C 3A 6D 61 Cache-Control:ma 00a0 78 2D D D 0A 4C 6F x-age=30..locati 00b0 6F 6E 3A A 2F 2F E on:http:// c0 2E 37 2E A D 0A A.7.68: id: 00d d56d682e549c 00e0 0D 0A 6E 61 6D 65 3A D E name:samsung G 00f0 54 2D D 0A 70 6F A T-I9000..port: D 0A 0D 0A 488 Programmation d un protocole : le problème de la synchronisation Des processus qui échangent des messages synchrones l émetteur attend que le récepteur ait reçu le message (envoyer un fax par exemple) ; le récepteur qui attend un message est bloqué jusqu à sa réception ; Avantage : l émetteur et le récepteur sont dans un état connu ; Inconvénient : fort couplage entre les processus. asynchrones l émetteur n est pas bloqué en attente de réception (poster une lettre) ; le récepteur peut fonctionner suivant deux modes : réception bloquante si pas de message ; réception non bloquante avec témoin de réception (boîte aux lettres américaine) ; Avantage : l émetteur et le récepteur sont indépendants au cours du temps Inconvénients : pas d acquittement implicite pas de relation entre les états de l émetteur et du récepteur difficultés en cas d erreurs! Solution : le modèle de l Invocation à distance, «Remote Procedure Call» ou «rendez-vous» correspond à la demande d exécution d une fonction à un autre processus (téléphoner) ; est accompagnée d un passage de messages entre processus ; comme pour l appel d une fonction : l appelant attend la réponse de l appelé (la réponse est facultative) ; correspond au modèle client/serveur ; peut être mis en oeuvre par messages synchrones ou asynchrones (utilisation de tampons, modèle producteur/consommateur). Synchronisation distante vs locale Modèle producteur/consommateur en mode message asynchrone Asynchronisme entre l émetteur et le récepteur Deux points de vue simultanés asynchronisme entre sites distants : propagation sur le réseau (le réseau n est pas modélisé mais il pourrait l être) ; synchronisation locale sur les tampons d émission et de réception. L émetteur effectue un envoi ; reprend son exécution immédiatement après. Le message est transmis par le réseau de façon asynchrone par rapport à l émetteur. Le récepteur décide de traiter un message ; prend le premier message disponible ; Le message était dans une file d attente de réception. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

22 Synchronisation et programmation : comment ça marche dans l OS? Synchronisation locale Le processus émetteur a fourni l adresse d un tampon (contenant le message) partagé avec l interface réseau. Différents cas possibles : l émetteur reste bloqué tant que le message n a pas été envoyé (attente du tampon redevenu libre) ; = émission bloquante (celle que l on utilisera en TP! ) l émetteur reste bloqué tant que le message n a pas été recopié dans l interface réseau ; = émission bloquante moins longtemps (pas accessible en Python) l émetteur reprend le contrôle alors que l interface réseau utilise le tampon, il sera avertit par un signal quand il sera réutilisable. = émission non bloquante (déconseillée dans le cas d un échange : on n a pas de garantie sur l émission effective, et on peut attendre une réponse qui ne viendra jamais) Le processus récepteur a fourni l adresse d un tampon partagé avec l interface réseau. Différents cas possibles : le récepteur reste bloqué tant qu un message reçu n a pas été écrit dans le tampon ; = réception bloquante (celle que l on utilisera en TP!) le récepteur continue son exécution et se bloque quand il ne peut plus avancer sans message reçu ; = réception non bloquante + attente (déconseillé car compliqué à mettre en œuvre) le récepteur continue mais il peut savoir si un message a été reçu ; = réception non bloquante + opération de test de message (déconseillé, car débouche souvent sur de l «attente active») Attention Gestion du buffer d envoi et de réception dans le protocole TCP : rôle du bit PUSH! Plan de la partie Programmation Socket Éléments importants TSAP, «Transport Service Access Point» ; Mode «orienté connexion» vs mode datagramme ; Protocoles TCP et UDP ; Mode «client/serveur» ; 2 La programmation Socket ou la programmation de la couche 4 Une interface de programmation définie pour mettre en place simplement des communications : chaque communication a lieu avec : un interlocuteur : communication «point à point», ou «unicast» ; plusieurs interlocuteurs : communication par «diffusion» ou «multicast» ; la communication correspond à l échange de données entre les interlocuteurs : des données en continu : flux d octets de taille indéfinie, non connue à l avance ; des paquets : données de taille fixe et réduite connue à l avance. Deux types de communication uniquement en TCP/IP 1. mode «connecté» elle ne concerne que deux interlocuteurs : un de chaque côté (point à point) ; les données arrivent les unes après les autres dans «l ordre d émission» ; la communication est bi-directionnelle (dans les deux sens) ; elle est «full-duplex», les deux interlocuteurs peuvent échanger simultanément ; il y a une garantie contre la perte de données. C est le mode offert par le protocole TCP, «Transmission Control Protocol». 2. mode «datagramme» elle peut concerner un ou plusieurs interlocuteurs (unicast ou multicast) ; les données sont groupées dans des paquets de taille limitée ; il peut y avoir des pertes de paquets. C est le mode offert par le protocole UDP, «User Datagram Protocol». Attention Le mode «connecté» est simulé par TCP sur un réseau en mode «datagramme». Notion de port : multiplexage et identification d un processus Modèle Client/Serveur Un logiciel «serveur» attend la communication en provenance d un logiciel «client». Localisation du logiciel serveur un ordinateur est localisable sur Internet grâce à son adresse IP ; un ordinateur ne possède habituellement qu une adresse IP joignable ; un ordinateur peut exécuter plusieurs programmes qui peuvent vouloir communiquer simultanément ; il faut multiplexer ces communications en «sachant» avec quel programme communiquer : notion de «port»! À chaque processus communiquant est associé un port Pour une communication en «mode connecté» : un Serveur qui attend la connexion du client ; un Client qui effectue la connexion au serveur. Pour localiser le Serveur? Connaître le numéro de port où attend la communication! Comment connaître le numéro de port? Le point sur les communications sur un ordinateur : chaque communication est associée à un seul programme donné (logiciel de messagerie, navigateur web, client de chat, etc) ; chaque communication se fait suivant un protocole donné (SMTP, POP pour récupérer le courrier, HTTP, etc) ; chaque protocole est associé à un «serveur» particulier : serveur SMTP pour l envoi de courrier, serveur Web, serveur FTP, etc. un numéro de port identifie un serveur donné : il faut rendre standard les numéros de port! Exemple : http : 80, ftp : 21, smtp : 25, DNS : 53 etc, la liste dans le fichier /etc/services. Le client veut communiquer avec un serveur donné? il utilise le port standard associé! Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

23 La notion de numéro de port : «multiplexer» les communications Notion de numéro de port différentes communications peuvent avoir lieu pour des protocoles différents, donc des programmes différents, donc des numéros de port différents ; chaque communication sur une machine est identifiée par un TSAP, «Transport Service Access Point», c-à-d un couple numéro de port). Comment un ordinateur peut-il voir plusieurs communications simultanément? On ajoute également la notion de numéro de port : il varie de 1 à (sur 16 bits) ; il est associé à un seul programme ; du côté de la machine cliente, il peut prendre n importe quelle valeur ; du côté de la machine serveur, il permet à la machine cliente de désigner le programme que l on veut contacter ; Le port permet de multiplexer les communications : chaque datagramme sera identifié par le TSAP source duquel il transporte les données ; tous les datagrammes utilisent le même lien de communication ; lors de leur arrivée sur la machine destination, ils sont identifiés par leur TSAP destination et remis au bon processus. Les «Sockets» Berkeley utilisées dans TCP/IP Objectifs fournir des moyens de communications entre processus, IPC, «Inter Processus Communication», utilisable en toutes circonstances : échanges locaux sur la même machine (boucle) ou sur le réseau. masquer les détails d implémentation des couches de transport ; fournir une interface d accès qui se rapproche des accès fichiers pour simplifier la programmation La notion de socket ou de «prise» C est un point d accès pour les services de transport : Elle possède un type : Quel protocole de transport va être utilisé? Pour quel mode de communication? Elle permet d utiliser un ensemble de primitives de service ; Elle encapsule des données : un descripteur et des files d attente des messages en entrée et en sortie ; Elle est identifiée par un nom unique : le TSAP, c-à-d «le numéro de port» et Le protocole TCP C est un protocole de transport fiable, en mode connecté, en mode bidirectionnel. Une socket TCP peut être utilisée par plusieurs connexions TCP simultanément du côté serveur : on peut traiter simultanément plusieurs clients ; on peut configurer une «file d attente» des clients : si un client se présente il est mis en attente ou renvoyer directement. Une communication est identifiée par le couple d adresse IP/port, TSAP, des deux extrémités : T SAP client T SAP serveur Un échange TCP est un flot continu d octets. Les données sont reçues dans l ordre de leur transmission. Une optimisation de TCP est de temporiser l envoi des données dans des tampons pour augmenter la taille des envois, mais il est possible de demander l émission immédiate des données.!"##$%&"#'(!) Connexion TCP Les «Sockets» Berkeley utilisées dans TCP/IP Les différentes étapes pour l établissement de la connexion : Les instructions réseaux à utiliser sont indiquées dans un cadre en fin de ligne. 1. Le serveur attend sur le SAP serveur, numéro de port] socket, bind, listen, accept Client 2. Le client obtient automatiquement un numéro de port libre (par ex. 3456) socket Réseau Port 3456 Port 8080 Serveur "#$%&'()*)+),-./)0122%314! Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre Client Réseau Port 3456 Port 8080 Nouvelle connexion Serveur socket initiale 3. Le client se connecte au serveur connect Le système d exploitation du client et du serveur, mémorise la connexion par un couple : (T SAP client T SAP serveur ) client, 3456] serveur, 8080] Cette connexion peut être affichée avec la commande Unix «netstat». Remarques : La primitive de programmation accept retourne au serveur une nouvelle socket associée à la connexion avec le client. C est par cette socket que l on communique avec le client. Le serveur peut recevoir la connexion de nouveaux clients sur la socket initiale. Un serveur peut avoir plusieurs communications simultanées avec différents clients. Chacune de ces communications correspond à un couple différent de TSAP (le même du côté du serveur associé à un TSAP côté client différent pour chaque communication).

24 Les «Sockets» Berkeley utilisées dans TCP/IP Le protocole UDP C est un protocole de transport non fiable, sans connexion. L échange de données se fait par datagrammes. L ordre dans lequel les paquets sont envoyés peut ne pas être respecté lors de leur réception. Schéma de fonctionnement en TCP Serveur 1 socket 2 bind 3 listen 4 accept 5 recv, send 6 close Schéma de fonctionnement en UDP Serveur 1 socket 2 bind 3 recvfrom, sendto 4 close Client 1 socket 2 connect 3 recv, send 4 close Client 1 socket 2 recvfrom, sendto 3 close Les «Sockets» Berkeley utilisées dans TCP/IP Les primitives de l interface socket socket : Elle permet de créer un nouveau point d accès de service de transport Trois paramètres d appel : La famille d adresses utilisée : 1 AF_UNIX (communication locale à une machine) 2 AF_INET (communication réseau avec IPv4) 3 AF_INET6 (communication réseau avec IPv6) le type de service demandé : 1 SOCK_STREAM (flot d octets en mode connecté) 2 SOCK_DGRAM (datagramme en mode non connecté) le protocole de transport utilisé 1 IPPROTO_TCP 2 IPPROTO_UDP 3 IPPROTO_ICMP Le prototype de la fonction socket : 1 #include <sys/types.h> 2 #include <sys/socket.h> 3 #include <netinet/in.h> 5 int socket(int famille, int type, int protocole); Les «Sockets» Berkeley utilisées dans TCP/IP bind : Elle permet d attribuer un numéro de port à la socket. Le choix d un numéro de port n est pas systématique lors de la création de la socket, car un client n a pas besoin de fixer un numéro de port particulier (choisi automatiquement par le système), et un serveur qui attend des connexions doit définir sur quel numéro de port il les attend. Trois paramètres d appel : 1 #include <sys/socket.h> le numéro de descriptif de la socket (retourné par la fonction socket) ; 3 short sin_family; 2 struct sockaddr_in { une structure de données adresse de socket de type 4 u_short sin_port; sockaddr_in ; 5 struct in_addr sin_addr; la taille de cette structure ; 6 char sin_zero[8]; }; Exemple d utilisation : 1 struct sockaddr_in adresse_socket; 2 adresse_socket.sin_family = AF_INET; 3 adresse_socket.sin_port = 16; 4 adresse_socket.s_addr = htonl(inadrr_any); /* Conversion 5 dans le sens reseau */ 6 if ((s = socket(af_inet, SOCK_STREAM, 0)) < 0) 7 { /* cas d erreur */ } 8 if (bind(s, &sin, sizeof(sin)) < 0) 9 { /* cas d erreur */ } Les «Sockets» Berkeley utilisées dans TCP/IP listen : Utilisée dans le mode connecté lorsque plusieurs clients sont susceptibles d établir une ou plusieurs connexions avec le serveur. Il permet de fixer le nombre d appel maximum que pourra traiter le serveur (les appels non gérés immédiatement sont alors mis en attente). int listen (int descripteur_socket, int max_connection); accept : Utilisée dans le mode connecté, permet de se bloquer en attente d une nouvelle demande de connexion. Après l accept, la connexion est complète entre les deux processus. Pour chaque nouvelle connexion entrante, la primitive accept renvoie un pointeur sur une nouvelle socket de structure identique à la précédente. 1 #include <sys/types.h> 2 #include <sys/socket.h> 3 int accept (int nouvelle_socket, struct sockaddr_in *adresse_client, 4 int longueur_adresse_client); Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

25 Les «Sockets» Berkeley utilisées dans TCP/IP connect : Cette primitive permet à un client de se connecter à un serveur. Elle ouvre une connexion entre le client et le serveur. On doit lui fournir l adresse IP du serveur (la partie locale est renseignée automatiquement). Pour chaque opération d écriture/lecture, seule le descripteur de la socket est à fournir à chaque fois. 1 #include <sys/types.h> 2 #include <sys/socket.h> 3 int connect(int descripteur_socket, struct sockaddr_in *adresse_serveur, int longueur_adresse); send, recv Ces primitives permettent l échange d information au travers de la socket. Elles s utilisent de la même façon que les instructions read et write sur fichiers avec une option supplémentaire pour préciser des options de communication 1 #include <sys/types.h> 2 #include <sys/socket.h> 4 int send (int socket, char *zone, int longueur_zone, int options); 5 int recv (int socket, char *zone, int longueur_zone, int options); Les options permettent d indiquer si les données urgentes, etc. Les «Sockets» Berkeley utilisées dans TCP/IP : version Python Le client 1 import os, socket, sys 3 adresse_symbolique_serveur = localhost 4 adresse_serveur = socket.gethostbyname(adresse_symbolique_serveur) 5 numero_port_serveur = ma_socket = socket.socket(socket.af_inet, socket.sock_stream) # AF_INET6 pour IPv6 9 try: 10 ma_socket.connect((adresse_serveur, numero_port_serveur)) #SAP désignant le serveur 11 except Exception, message: 12 print "probleme de connexion", message 13 sys.exit(1) 15 while 1: 16 entree_clavier = raw_input( :> ) 17 if not entree_clavier: 18 break 19 ma_socket.sendall(clavier) 20 ma_socket.close() Les «Sockets» Berkeley utilisées dans TCP/IP : version Python Le serveur 1 import sys, os, socket, select 3 masque_acces = # filtre les clients, ici aucun 4 numero_port_serveur = 6688 # identique à celui du client 6 ma_socket = socket.socket(socket.af_inet, socket.sock_stream, socket.ipproto_tcp) # ou AF_INET6 7 # Permet de ne pas attendre pour réutiliser le numéro de port 8 ma_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr,1) 9 # Accroche le numéro de port à la socket 10 ma_socket.bind((masque_acces, numero_port_serveur)) 11 # Configure la file d attente 12 ma_socket.listen(socket.somaxconn) 13 # L accept renvoie une nouvelle socket 14 (nouvelle_connexion, tsap_depuis) = ma_socket.accept() 15 print "Nouvelle connexion depuis ", tsap_depuis 16 while 1: 17 ligne = nouvelle_connexion.recv(1000) 18 if not ligne : 19 break 20 print ligne 21 connexion.close() 22 ma_socket.close() 3 L algorithme de routage : généralisation du premier pas Distinction entre ordinateur et routeur un ordinateur est un équipement relié à un seul réseau ; un routeur est un équipement relié à au moins deux réseaux, éventuellement à un réseau où ne sont connectés que des routeurs (réseau d interconnexion) ; chacun dispose pour chaque connexion d une carte réseau ; chacun dispose pour chaque carte réseau d et d ; l ordinateur est soit l expéditeur initial, soit le destinataire final d un datagramme ; le routeur réémet, relaye, des datagrammes : provenant d une de ses interfaces (carte de connexion à un réseau) ; vers une autre de ses interfaces ; c est à lui de choisir une étape sur le chemin que devra emprunter le datagramme pour atteindre l ordinateur destinataire. Généralisation : algorithme de routage par sauts successifs, next hop routing Le datagramme va passer d intermédiaire en intermédiaire, d entité réseau à une autre : il fait des «sauts» ou hop : l entité réseau (ordinateur ou routeur) exécute le même algorithme : décider entre routage direct et indirect Dans le cas d un routeur, le routage indirect peut faire le choix entre différentes adresses de routeurs. l entité réseau doit déterminer l adresse de prochain saut, c-à-d. la prochaine étape du chemin d acheminement du datagramme à transmettre. Un saut correspond à la transmission d un datagramme à un routeur ou à la machine destinataire. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

26 Le routage complet? Chercher un chemin Acheminement des messages ou routage Pour acheminer un datagramme de la source à la destination, il faut déterminer un chemin allant du réseau origine au réseau destinataire : pour sortir du réseau origine, il faut un premier routeur (passerelle ou «gateway») il faut ensuite trouver le routeur qui est connecté au réseau destination. Deux cas possibles : 1. le routeur destination est directement accessible, c-à-d le réseau destination est directement connecté au réseau origine par l intermédiaire du même routeur ; 2. le routeur destination n est pas directement accessible : le message doit circuler via un ou plusieurs routeurs intermédiaires. Ce qui permet d appliquer l algorithme de base de recherche du prochain saut Routage direct : le datagramme est transmis à une machine dans le même réseau local ; Routage indirect : le datagramme est échanger entre routeurs jusqu au réseau destination (pour le routeur connecté au réseau destination, la remise du datagramme se fait de manière directe). Comment trouver le routeur destination? En théorie, le routage devrait se faire en tenant compte de paramètres difficiles à évaluer comme l encombrement du réseau, la longueur du datagramme ou le type de service mentionné dans l en-tête du datagramme. En pratique, l acheminement des datagrammes se fait en fonction : de la connaissance par un routeur, des autres routeurs auxquels il est connecté : table de routage ; d hypothèses statiques utilisées dans des algorithmes de calcul du plus court chemin (utilisation d algorithmes pour construire la table de routage ou seulement de l intelligence de l administrateur réseau). chaque routeur prend une décision au mieux, «best effort», pour l étape de routage qu il réalise. 3.1 Routage : routeur & table de routage Fonctionnement du routage sur un routeur : il faut connaître des routeurs destinations pour accéder à d autres réseaux ; ces routeurs sont indiqués dans une table de routage ; chaque entrée de la table contient : un réseau de destination ; une adresse de prochain saut, next hop : celle du prochain routeur à emprunter pour atteindre la destination (routage indirect) ; celle de l interface du routeur s il est connecté au réseau (routage direct). la table de routage contient une route par défaut (pour les destinations inconnues). Le routage peut se faire suivant des routes différentes. Ce qui explique que : certains datagrammes puissent se perdre qu ils arrivent dans un ordre différent (temps d acheminement différents). R2 atteint D par l intermédiaire de R3 : = R3 est son «next-hop» sur le chemin vers D. Résumé sur le routage Comment créer une méthode de routage «simple» pour un ordinateur? Appliquer le principe de «localité» : connaissance locale = décision locale ; Ne considérer que le réseau auquel est connecté l ordinateur ; Prendre en compte que c est un réseau à diffusion ; Savoir qu il est interconnecté par un réseau point à point aux autres réseaux (existence d une sortie) ; Ignorer l identité de tous ces autres réseaux (cette connaissance sera réservée aux routeurs). Alors, cette méthode simple? La seule possibilité de sortir du réseau local? un routeur connecté à ce réseau ; Conclusion : soit l ordinateur communique avec le réseau local et il le fait suivant la méthode d un réseau à diffusion ; soit l ordinateur veut communiquer avec l extérieur et il passe par le routeur! ce routeur est souvent appelé «passerelle» ou «gateway» ou «route par défaut» ; l ordinateur doit connaître de ce routeur!?? Pour suivre le routage avec le traceroute de Scapy» sn,unans=traceroute(["www.unilim.fr"],maxttl=10) Begin emission: **Finished to send 10 packets. ******* Received 9 packets, got 9 answers, remaining 1 packets :tcp ATTENTION Une erreur s est glissée dans l affichage à droite, où il est indiqué que le réseau privé /24 appartient à l A3303. En effet, scapy utilise la commande suivante : darkstar:~ pef$ whois -h riswhois.ripe.net % This is RIPE NCC s Routing Information Service % whois gateway to collected BGP Routing Tables % IPv4 or IPv6 address to origin prefix match % route: /3 origin: AS3303 descr: SWISSCOM Swisscom (Switzerland) Ltd AS3303 [SWISSCOM Swisscom (Switzerland) Ltd] [PROXAD Free SAS] unk [FR-RENATER Reseau National de telecommunications pour la Technologie] [FR-RENATER-LIMOUSIN Reseau Regional Limousin] /tcp Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

27 4 Diffusion dans un réseau : Multicast et classe D Lorsqu un hôte envoie un datagramme, il a le choix du mode : Unicast : pour un seul destinataire ; Brodcast : à tous les noeuds connectés à un réseau ; Multicast : à tous les noeuds qui appartiennent à un même groupe. Le multicast dans IPv4 est limité au réseau local. Une classe est réservée à la définition d adresse multicast : la classe de réseau D : /4 pour la plage d adresses à Il existe des groupes prédéfinis : Adresse but All hosts on a subnet All routers on a subnet All OSPF routers (DR Others) All OSPF Designated Routers All RIPv2 routers All EIGRP routers DHCP Server NTP Cisco RP Announce Cisco RP Discovery Multicast : réduire la diffusion Il est souhaitable de réduire la diffusion d un datagramme envoyé à un groupe d hôtes à ces seuls hôtes. Ainsi, lors de la réception du datagramme : l hôte fait partie du groupe destinatire : il traite le datagramme ; l hôte ne fait pas partie du groupe : il ignore le datagramme. Comment faire? Utiliser destination particulière : a. utiliser un préfixe particulier pour ce type : E ; b. mapper les 23 derniers bits de du groupe, sur Il peut y avoir des risques de chevauchement sur les 5 bits ignorés mais c est rare donc sans risque... Attention Sous IPv6, le broadcast et la diffusion de groupe change avec de la forme 33:33:00:00:00:01 pour le «groupe» ff02::1 Multicast et programmation Pour pouvoir utiliser le «multicast» dans un programme, il est nécessaire d informer le système d exploitation que l on veut joindre un groupe, ce qui est fait par les instructions suivantes en Python : 1 gestion_mcast = struct.pack("4sl", socket.inet_aton(" "), socket.inaddr_any) 2 ma_socket.setsockopt(socket.ipproto_ip, socket.ip_add_membership, gestion_mcast) 3 ma_socket.setsockopt(socket.ipproto_ip, socket.ip_multicast_loop, 0) Attention : dans la chaîne de format du pack, c est la lettre «l» et non le chiffre «1». L option «IP_MULTICAST_LOOP» permet de choisir si l émetteur reçoit le paquet qu il envoie. Si la machine dispose de plusieurs interfaces, il faut utiliser l option «IP_MULTICAST_IF» pour la sélectionner. Multicast & Routeur : protocole IGMP & TTL Lorsque la machine rejoint un groupe, elle diffuse un message au format IGMP, «Internet Group Management Protocol», afin de prévenir les routeurs présents dans le réseau : que la machine joint un groupe (un paquet sera également diffusé lorsque la machine quitte le groupe) ; qu ils pourront avoir à relayer des paquets multicast à destination de l adresse du groupe choisi. Pour restreindre le nombre de routeurs pouvant être traversé, on choisit la TTL, «Time To Live» des paquets multicast : 1 ma_socket.setsockopt(socket.ipproto_ip, socket.ip_multicast_ttl, 2) Ici, le paquet pourra traverser uniquement 1 seul routeur. Savoir à quels groupes on appartient Pour afficher la liste des groupes auxquels appartient la machine : netstat -gn IPv6/Adhésions au groupe IPv4 Interface RefCnt Group - - lo eth eth eth Le protocole IGMP, «Internet Group Management Protocol» Lors de la création du groupe Exemple avec la commande «socat» : socat stdio udp-recvfrom:7182,ip-add-membership= :eth0,fork et les paquets IGMP diffusés (TO_EX {empty} = quitter l exclusion donc joindre) : tcpdump -nvvex -i eth0 igmp tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size bytes 02:44: :0c:29:0f:31:a1 > 01:00:5e:00:00:16, ethertype IPv4 (0x0800), length 60: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) > : igmp v3 report, 1 group record(s) [gaddr to_ex { }] 0x0000: 46c c362 c0a8 7fee 0x0010: e f97e "..~... 0x0020: e f Lors de la terminaison du groupe 02:45: :0c:29:0f:31:a1 > 01:00:5e:00:00:16, ethertype IPv4 (0x0800), length 60: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) > : igmp v3 report, 1 group record(s) [gaddr to_in { }] 0x0000: 46c c362 c0a8 7fee 0x0010: e fa7e "..~... 0x0020: e f Le «switch» écoute les ports qui diffusent ces messages IGMP pour limiter le multicast des paquets, il réalise du «IGMP snooping». Les messages IGMP sont diffusés vers le groupe Exemple d utilisation : diffusion d un flux RTP, «Real Time Protocol» pour la diffusion d un flux vidéo au travers d un routeur. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

28 Localisation de service dans réseaux locaux privés Solution de DNS pour réseau local C est un protocole proposé par Apple (à la base utilisé par Bonjour), présent sur GNU/Linux (Avahi) : basé sur les mêmes formats de paquet que le DNS traditionnel : chaque ordinateur possède sa propre liste d enregistrements DNS (A, MX, SRV, etc) ; chaque ordinateur peut diffuser la liste des services qu il offre grâce au champ SRV ; domaine local appelé «.local» ; échangé de manière différentes dans le réseau : utilisation de l adresse multicast pour contacter toutes les machines du réseau local auquel on est connecté ; utilise le port 5353 en UDP ; les paquets ont les caractéristiques suivantes : MAC address 01:00:5E:00:00:FB IPv4 address or IPv6 address FF02::FB UDP port 5353 se combine avec l auto-configuration des adresses IP, APIPA, «Automatic Private IP Addressing», ( /16), en l absence de serveur DHCP ou de configuration manuelle ; Il existe également UPnP SSDP, «Simple Service Discovery170 Protocol PART» de II Core Microsoft Protocols qui n utilise pas le format de requête/réponse du DNS. Exemple de paquet mdns obtenu avec Scapy»> l=sniff(count=3,filter="udp and port 5353") We ll say a little more about DSCP and quality of service (QOS) in a later chapter.»> DNS(str(l[0][UDP].payload)) However, the incomplete support for and variations in QOS implementations rule out <DNS id=0 qr=0l opcode=query aa=0l tc=0l rd=0l ra=0l z=0l rcode=ok qdcount=1 QOS or ancount=0 DSCP as nscount=1 a topic for arcount=0 an entire chapter. qd=<dnsqr qname= iphone de Pierre-Francois Bonnefoi._avexvscreen._udp.local. There qtype=all are also qclass=32769 four flag bits > shown an=none in ns=<dnsrr the figure. The two most important are the rrname= iphone de Pierre-Francois Bonnefoi._avexvscreen._udp.local. type=srv bits that rclass=in indicate ttl=120 this packet content is not to be fragmented (the DF bit is set to 1) rdata= \x00\x00\x00\x00\x17q"iphone-de-pierre-francois-bonnefoi\xc0b > ar=none > and that there are no more frames carrying pieces of this packet s payload (the More Fragments bit is set to 0). In the following, we talk about fragmentation in IPv4 in more detail, and then explore all of the fields in the IPv4 header in more detail. 5 Le format du datagramme IP THE IPv4 PACKET HEADER Le datagramme IP est une séquence d octets, dont l interprétation est réalisée : soit par groupe de 2 ou de 4, pour obtenir une valeur sur 16 ou 32 bits ; soit bit par bit, où chaque bit à un sens particulier. Sur le schéma en français, la «fléche» vers le bas indiquesource une and coupure destination du datagramme address, but others tous have les specialized octets, purposes. chaque ligne représentant 4 octets ou 32 bits. The general structure of the IPv4 packet is shown in Figure 6.3. The minimum header (using no options, the most common situation) has a length of 20 bytes (always shown in a 4-bytes-per-line format), and a maximum length (very rarely seen) of 60 bytes. Some of the fields are fairly self-explanatory, such as the fields for the 4-byte (32-bit) IPv4 H e a d e r Version FIGURE byte Header Length Time to Live Identification 1 byte Type of Service Protocol 1 byte 32-bit IPv4 Source Address 32-bit IPv4 Destination Address Total Packet Length Fragment Offset Header Checksum (Options, if present, padded if needed) version sur 4 bits : le numéro de version (en général 4, mais bientôt 6... ). IPv4 Packet and Header longueur de l en-tête sur 4 bits : longueur en nombre de mots de 32bits (une en-tête est au minimum d une longueur de 20 octets, mais peut être plus grande en présence d options). DATA 32 bits Flags 1 byte Extension des DNS : l enregistrement SRV Recherche de machine par service fourni (RFC 2782) Un nouveau type d enregistrement a été défini dans les DNS, suivant le format suivant : _Service._Proto.Name TTL Class SRV Priority Weight Port Target Exemple : _sip._udp.unilim.fr IN SRV sipserveur.unilim.fr le service est SIP ; le protocole est UDP ; la durée de vie de l association est de 12h (43200 secondes) ; la classe est Internet ; le type d enregistrement est SRV ; la priorité est de 10 (les valeurs inférieures sont utilisées préférentiellement) ; le poids est de 10 (pour pouvoir faire de l équilibrage de charge) ; le port associé au SIP est 5060 ; le FQDN, «Full Qualified Domain Name» du serveur est sipserveur.unilim.fr. Exemple de paquet mdns sniffé avec Scapy > paquet_sniffe.payload <IP version=4l ihl=5l tos=0x0 len=160 id=18153 flags= frag=0l ttl=255 proto=udp chksum=0xa889 src= dst= options= <UDP sport=mdns dport=mdns len=140 chksum=0x9788 <Raw load= \x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00#iphone de Pierre-Fran\xc3\xa7ois Bonnefoi\x0c_avexvscreen\x04_udp\x05local\x00\x00\xff\x80\x01\xc0\x0c\x00!\x00\x01\x00\x00\x00x\x00 \x00\x00\x00\x00\x17q"iphone-de-pierre-francois-bonnefoi\xc0b > > DNS(str(paquet_sniffe[UDP].payload)) <DNS id=0 qr=0l opcode=query aa=0l tc=0l rd=0l ra=0l z=0l rcode=ok qdcount=1 ancount=0 nscount=1 arcount=0 qd=<dnsqr qname= iphone de Pierre-Fran\xc3\xa7ois Bonnefoi._avexvscreen._udp.local. qtype=all qclass=32769 > an=none ns=<dnsrr rrname= iphone de Pierre- Fran\xc3\xa7ois Bonnefoi._avexvscreen._udp.local. type=srv rclass=in ttl=120 rdata= \x00\x00\x00\x00\x17q"iphone-de-pierre-francois- Bonnefoi\xc0B > ar=none > Le format du datagramme IP le type de service sur 8 bits : indique la manière dont doit être géré le datagramme par les routeurs : priorité D T R C le champ priorité varie de : 0 (priorité normale) à 7 (priorité maximale : supervision du réseau) ; ne s applique qu à l intérieur d un réseau sous même administration et n est pas pris en compte par tous les routeurs ; les 4 bits D, T, R & C spécifient ce que l on veut privilégier (RFC 1349, remplacée par la 2474) : D minimiser le délai d acheminement, T maximiser le débit de transmission, R fiabilité, C coûts de transmission, DTRC tout à 1 pour la sécurité. En fonction des différents services : application minimise le délai maximise le débit maximise la fiabilité minimise le coût telnet/rlogin FTP contrôle transfert NNTP SNMP Actuellement : on recycle les bits 6&7 pour l ECN, Explicit Congestion Notification, définie dans la RFC Cela permet de détecter l entrée en congestion du réseau, c-à-d qu il va bientôt saturer. DSCP, «Differentiated Services Code Point» : RFC 2474, proposée par CISCO pour faire de la QoS. longueur totale sur 2 octets : contient la taille en octet du datagramme (inclus la taille de l en-tête) identification, drapeaux & déplacement de fragments : gestion de la fragmentation du datagramme IP. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

29 Le format du datagramme IP durée de vie (TTL) : indique le nombre de routeurs que peut traverser le datagramme avant d être détruit. La valeur d initialisation est de 128. lorsqu un routeur reçoit un datagramme avec la valeur 0, le datagramme est détruit et envoie à l expéditeur un message ICMP, «Internet Control Message Protocol» pour l informer. permet de «décongestionner» automatiquement le réseau : un paquet ne peut rester bloqué dans le réseau indéfiniment. protocole sur 8 bits : indique le protocole de haut niveau qui est contenu dans le datagramme 1 ICMP 6 TCP 2 IGMP 17 UDP somme de contrôle d en-tête (header checksum) : assure l intégrité de l en-tête. complément à 1 de la somme des valeurs de l en-tête, considérées comme une suite d entiers sur 16 bits ; permet de faire de la «détection d erreur» : le récepteur peut savoir si le datagramme a été endommagé pendant la transmission. adresses IP source et destination permet de faire le routage : chaquechapter routeur7 choisie Internet une Control ligne Message de sortie Protocol en fonction 201 de l adresse de destination ; options : c est une liste de longueur variable, mais toujours complétée par des bits de bourrage, pour obtenir une taille blocked, because it does just as it says, that is, it tells another device to send packets somewhere multiple else. de 32 bits (la taille de l en-tête étant exprimée en mots de 32bits). Many ICMP très errors peuare utilisées Destination : Unreachable information errors. concernant The 16 codes l enregistrement for this error de la route, estampille horaire... type and their meanings are shown in Table 7.2, which includes a likely cause for the condition. la présence d option est déduite par la différence de la taille de l en-tête avec la taille de l en-tête minimale : The precedence bits are in the TOS field of the IPv4 packet header, and are distinct 202 PART II Core Protocols HL 20 = 0, pas d options from the TOS bits themselves (and are almost universally ignored anyway). HL 20 > 0, présence d options ICMP Query Messages ICMP Query messages are used to question conditions on the network. These messages Which of these should be allowed to pass through firewalls? Sites most often allow are used in pairs, and each request anticipates a response. The 10 ICMP Query messages Echo messages (used by ping), although some allow only incoming Echo replies but are listed in Table 7.3, which shows how routers and hosts should handle each type. not Echo requests (which allows my devices to ping yours, but not the other way These ICMP messages in Table 7.3 allow routers and hosts to query for timestamp, around). The timestamp reply is also used by traceroute, and if these messages are address mask, and domain name information. Echo requests and replies have special blocked, asterisks (*) appear instead of times in the traceroute report (we ll look at uses described in the section of this chapter on ping. traceroute operation in detail in Chapter 9). ICMP : les messages et leurs usages Table 7.3 ICMP Query Messages Type Meaning Codes Data Router Sends Router Receives Host Sends 0 Echo reply 0 Varies M M M M 8 Echo request 13 Timestamp request 14 Timestamp reply 15 Information request 16 Information reply 17 Mask request 0 Varies M M M M 0 12 bytes Opt Opt Opt Opt 0 12 bytes Opt Opt Opt Opt 0 0 bytes Obs Obs Obs Obs 0 0 bytes Obs Obs Obs Obs 0 4 bytes M M Opt Opt 18 Mask reply 0 4 bytes M M Opt Opt 37 Domain name request 38 Domain name reply Obs, obsolete; Opt, optional; M, mandatory. 0 0 bytes M M M M 0 0 bytes M M M M Host Receives M, Mandatory : obligatoire ; actuellement : les machines filtrent les paquets «echo request» pour être «invisibles» sur le réseau (mode «stealth» sous Mac os X par ex.) ; Table 7.4 Other ICMP Query Messages Type Meaning Codes Data Router Sends Router Receives Host Sends 1 Unassigned NA NA NA NA NA NA 2 Unassigned NA NA NA NA NA NA 6 Alternate host address 9 Router advertisement 10 Router solicitation 19 Reserved security Reserved robustness 0 (4 bytes) (Prohibited) (Prohibited) Opt Opt 0 Varies M Opt Prohibited Opt 0 0 bytes M M Opt Opt NA NA NA NA NA NA NA NA NA NA NA NA 30 Traceroute 0 1 Varies Opt Opt M M 31 Datagram conversion error 32 Mobile host redirect 33 IPv6 where-are-you 0 11 Varies???? 0 Varies Opt Opt Opt Opt 0? Opt Opt Opt Opt 34 IPv6 I-am-here 0? Opt Opt Opt Opt 35 Mobile registration request 36 Mobile registration reply 0, 16 Varies Opt Opt Opt Opt 0, 16 Varies Opt Opt Opt Opt 39 SKIP 0 Varies Opt Opt Opt Opt 40 Photurius 0 3 Varies Exp Exp Exp Exp Exp, expired; Obs, obsolete; Opt, optional; M, mandatory; NA, not applicable. Host Receives le protocole «SKIP», «Simple Key-Management for Internet Protocol» pour l utilisation des protocoles AH, «Authentication Header» et ESP, «Encapsulating Security Protocol» et choix des protocoles cryptographiques ; le protocole «photuris» sert également à la cryptographie : «Session-Key Management Protocol». ICMP : «Internet Control Message Networking Protocol Fundamentals», RFC 792 effectue un contrôle des échanges ; permet de «déboguer» le réseau IP à l aide de message ; utilise différents types de message avec des significations différentes en deux catégories : messages d erreurs ; messages de requêtes ; Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre Attention Pour des questions de sécurité certains messages ICMP «actifs» ne sont plus interprétés et d autres de «surveillance» sont filtrés. Le format du message ICMP : le contenu des données dépend du type. Les attaques utilisant ICMP Pour la reconnaissance d un réseau Message Returned Destination Unreachable Time Exceeded Source Quench Redirect Echo Parameter Problem Timestamp Address Mask Request/Reply Router Advertisement and Selection Description / Interpretation This tells the source host that there is a problem delivering a packet. The problem is that either the destination host is down or its internet connection is down. It has taken too long for a packet to be delivered. The packet has been discarded. The source is sending data faster than it can be forwarded. This message requests that the sender slow down. The router sending this message has received some packet for which another router, which is also directly connected to the sender, would have had a better route. The message tells the sender to use the better router. This is used by the ping command to verify connectivity. The sender will issue an "echo request" message and will receive an "echo reply" from the other host if a path is found between the two. This is used to identify a parameter that is incorrect. This is used to measure roundtrip time to particular hosts. This is used to inquire about and learn the correct subnet mask to be used. This is used to allow hosts to dynamically learn the IP addresses of the routers attached to the subnet ARP: Address Resolution Protocol is used to determine MAC addresses for a given IP address RARP: Reverse Address Type Resolution Protocol Code is used to determine Checksum an IP address for a given MAC address Data The TCP/IP Network Access Layer The network access layer in TCP/IP, also called host-to-network layer, allows IP packets to make physical links to the network media. comprendre l organisation de l environnement de la cible ; obtenir des informations sur la cible pour préparer une attaque ; utiliser les bonnes techniques et outils pour les différentes phases de l attaque ; Les techniques «ICMP Sweep» : «balayer» la plage d adresses d un réseau (réalisable automatiquement par l outil «nmap» par ex.) ; «traceroute» : envoi successif de datagrammes avec une valeur de TTL incrémentée à chaque datagramme : lorsqu un routeur «forward» un datagramme, il décrémente le TTL ; lorsque la TTL arrive à zéro, un paque ICMP «time excedeed» est retourné à l expéditeur, ce qui permet à celui-ci de découvrir l adresse du routeur ; on obtient des informations sur le chemin des datagrammes et sur la topologie du réseau ; «Firewalking» : améliorer le «traceroute» pour identifier les ports ouverts sur un firewall filtrant les communications et obtenir les règles de configuration du firewall : première phase : réaliser un traceroute «classique» pour déterminer le nombre n de sauts, «hops», jusqu au firewall ; deuxième phase : envoyer des datagrammes avec une TTL égale à n + 1 et associé à un protocole choisi : si un paquet ICMP «time excedeed» est reçu, alors le datagramme a réussi à traverser le firewall ; si rien n est reçu, alors on en déduit qu une règle du firewall a filtré le datagramme. «Inverse Mapping» : cette technique permet de «mapper» le réseau interne qui est protégé par un firewall : l attaquant envoie des paquets ICMP «echo reply» vers une plage d adresses présumées derrière le firewall ; à l arrivée de ces paquets ICMP de réponse, le firewall autorise à passer car il ne maintient pas la liste des requêtes ICMP (sauf si le firewall est de bon niveau ainsi que l administrateur) ; s il existe un routeur interne, ce routeur retournera un paquet ICMP «Host unreachable» pour chaque hôte indisponible du réseau, ce qui informe, par déduction, l attaquant sur les machines présentes dans le réseau. [ 22 ]

30 Les attaques utilisant ICMP «L OS fingerprinting» : reconnaissance de l OS présent sur la machine cible : l attaquant envoi un datagramme UDP avec le bit «DF» à 1 vers la cible avec un numéro de port fermé ; la cible retourne un paquet ICMP «Destination port Unreachable» à l attaquant ; en analysant le format du paquet ICMP reçu, l attaquant peut obtenir des informations sur la cible ; Exemple : un paquet est envoyé depuis un Linux vers un Mac et un PC et la réponse est différente : >>> paquet_mac <IP frag=0 proto=udp dst= <UDP dport=56467 >> >>> reponse_mac <IP version=4l ihl=5l tos=0x0 len=56 id=9103 flags= frag=0l ttl=64 proto=icmp chksum=0xd747 src= \ dst= options=[] <ICMP <IPerror type=dest-unreach code=port-unreachable chksum=0x202c unused=0 version=4l ihl=5l tos=0x0 len=28 id=1 flags= frag=0l ttl=64 proto=udp chksum=0xfae1 src= \ dst= options=[] <UDPerror sport=domain dport=56467 len=8 chksum=0x0 >>>> >>> paquet_pc <IP frag=0 proto=udp dst= <UDP dport=56467 >> >>> reponse_pc <IP version=4l ihl=5l tos=0x0 len=56 id=2471 flags= frag=0l ttl=128 proto=icmp chksum=0xb097 src= \ dst= options=[] <ICMP <IPerror type=dest-unreach code=port-unreachable chksum=0x7d9d unused=0 version=4l ihl=5l tos=0x0 len=28 id=1 flags= frag=0l ttl=64 proto=udp chksum=0xfa49 src= \ dst= options=[] <UDPerror sport=domain dport=56467 len=8 chksum=0xa28e >>>> Jeu des 7 erreurs : quelles sont-elles? Les attaques utilisant ICMP «ICMP floods» : en inondant la victime de message ICMP, on peut la ralentir et, éventuellement, l empêcher de communiquer : envoi depuis le même hôte ; «smurf attack» : on envoie un paquet ICMP «echo request» en diffusion sur le réseau en mettant l adresse de la victime comme adresse source ; la victime est «submergée» par toutes les paques ICMP «echo reply» qu elle reçoit de toutes les machines. Ne fonctionne plus. le «tunneling» : encapsuler le trafic d un protocole comme TCP ou UDP dans le contenu des paquets ICMP échangés entre un hôte compromis (où l attaquant à pris le contrôle) et une machine située à l extérieur du réseau : le trafic est difficile à découvrir ; le trafic peut être chiffré afin de le protéger. This vulnerability exists because RFC 792, which is IETF s rules governing ICMP packets, allows for an arbitrary data length for any type 0 (echo reply) or 8 (echo message) ICMP packets. >>> p=ip(dst= )/ICMP(type= echo-request )/ ceci est un test >>> sr(p) Begin emission: *Finished to send 1 packets. Received 1 packets, got 1 answers, remaining 0 packets (<Results: TCP:0 UDP:0 ICMP:1 Other:0>, <Unanswered: TCP:0 UDP:0 ICMP:0 Other:0>) >>> _[0][0] (<IP <ICMP frag=0 proto=icmp dst= type=echo-request <Raw load= ceci est un test >>>, <IP version=4l ihl=5l tos=0x0 len=44 id=29697 flags= frag=0l ttl=64 proto=icmp chksum=0x86e1 src= dst= options=[] <ICMP type=echo-reply code=0 chksum=0x2ee8 id=0x0 seq=0x0 <Raw load= ceci est un test <Padding load= \x00\x00 >>>>) Les attaques utilisant ICMP «L OS fingerprinting» : reconnaissance de l OS présent sur la machine cible : Autre exemple : les paquets envoyés par la commande «ping» depuis un Mac et depuis un PC : >>> ping_mac <Ether dst=00:11:de:ad:be:ef src=00:50:56:c0:00:08 type=ipv4 <IP version=4l ihl=5l tos=0x0 len=84 id=54669\ flags= frag=0l ttl=64 proto=icmp chksum=0x252d src= dst= options=[] <ICMP <Raw type=echo-request code=0 chksum=0xdbb7 id=0xdd4e seq=0x0 load= Ph\xc7\x8e\x00\x02;\xfd\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\ \x1c\x1d\x1e\x1f!"#$%&\ ()*+,-./ >>>> >>> ping_pc <Ether dst=00:11:de:ad:be:ef src=00:0c:29:d1:27:40 type=ipv4 <IP version=4l ihl=5l tos=0x0 len=60 id=758\ flags= frag=0l ttl=128 proto=icmp chksum=0xb740 src= dst= options=[] <ICMP type=echo-request code=0 chksum=0x4d5a id=0x1 seq=0x1 <Raw load= abcdefghijklmnopqrstuvwabcdefghi >>>> «ICMP route redirect» : c est un paquet envoyé par un routeur lorsqu il : reçoit du trafic d un hôte ; trouve dans sa table de routage que l adresse de «prochain saut» à laquelle doit être envoyé ce trafic est dans le même réseau que celui de l hôte ; il est possible de faire un attaque «Man-in-the-Middle» : l attaquant prend le contrôle du routeur R1 ; l attaquant envoi un paquet ICMP redirection vers la victime en prenant la place du routeur R2, utilisé par la victime ; la redirection demande à la victime de modifier sa table de routage pour passer par R1 au lieu de R2 ; l attaquant intercepte le trafic sur R1. les paquets ICMP «oversized» : un paquet ICMP d une taille maximale envoyé vers la victime fait planter sa pile TCP/IP ; «ICMP Router Discovery» : ce sont des paquets transmis dans le réseau pour permettre à un hôte de découvrir les routeurs présents : «router solicitation». Un attaquant peut répondre par un «router advertisement» et prendre la place du routeur par défaut pour la victime. Encapsulation du datagramme IP dans une trame Ethernet Problème Une trame a une taille limite de 1500 octets en Ethernet 10 et 100 Mbits. Si la taille du datagramme à encapsuler est supérieure à 1500 octets, alors le datagramme ne peut être encapsulé! Solution Il faut découper le datagramme IP! Problème Un morceau de datagramme IP n est pas un datagramme IP! Si le morceau doit traverser un routeur il doit être vu comme un datagramme IP. En particulier, si on a découpé le datagramme IP initial en deux morceaux, il se peut que le deuxième morceau ne possède pas les entêtes nécessaires à son routage. Solution Le datagramme IP doit être fragmenté avant d être transmis. La fragmentation d un datagramme IP doit donner des datagrammes IP avec toutes les entêtes nécessaires!?? Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

31 5.1 Encapsulation du datagramme IP fragmentation? Unité de transfert du réseau Un datagramme IP a une taille maximale de octets (taille indiquée sur 16bits). Ce datagramme lors de son acheminement doit emprunter des réseaux dont la taille maximale des paquets transportables peut être inférieure. La taille maximale d une trame d un réseau est appelée MTU, «Maximum Transfer Unit». Cette MTU dépend de la nature du réseau et peut exprimer la taille de la trame ou de son contenu. Fonctionnement Fragments bit is set to 0). mathis-frag-harmful-00.txt) took this one step further with the title, Fragmentation In the following, we talk about fragmentation in IPv4 in more detail, and then Considered Very Harmful. The paper asserts that most of the harm occurs when a fragment of packet content, especially the first, is lost on the network. And a number of explore all of the fields in the IPv4 header in more detail. older network attacks involved sending long sequences of fragments to targets, never finishing the sequence, until the host or router ran out of buffer space and crashed. Also, THE IPv4 PACKET HEADER 5.2The general Fragmentation structure of the IPv4 packet is shown in Figure 6.3. The minimum header (using no options, the most common situation) has a length of 20 bytes (always shown in a 4-bytes-per-line format), and a maximum length (very rarely seen) of 60 bytes. Some Unof Fragment the fields are fairly = self-explanatory, Un datagramme such as the fields for IP the 4-byte (32-bit) IPv4 Table 6.1 Typical MTU Sizes* source and destination address, but others have specialized purposes. Link Protocol Typical MTU Limit Maximum IP Packet Ethernet IEEE Gigabit Ethernet IEEE IEEE (Token Ring) FDDI SMDS/ATM Frame relay SDLC *Frame overhead accounts for the differences between the theoretic limit and maximum IP packet size. Le datagramme IP est soit : encapsulé dans une trame si il est de taille inférieure ou égale au MTU ; fragmenté en plusieurs fragments dans le cas contraire, où : chaque fragment doit avoir la plus grande taille possible et multiple de 8 octets. Attention Les routeurs d un réseau ne défragmentent pas les fragments. Ces fragments n empruntent pas forcément tous le même chemin. Lors de la fragmentation, le routeur renseigne l en-tête de chaque fragment : H e a d e r Version 1 byte Header Length Time to Live Identification 1 byte Type of Service Protocol Flags 1 byte 32-bit IPv4 Source Address 32-bit IPv4 Destination Address Total Packet Length Fragment Offset Header Checksum (Options, if present, padded if needed) DATA 32 bits 1 byte FIGURE 6.3 flags, drapeaux : il est composé de trois bits IPv4 Packet and Header fragment offset, déplacement : champ permettant de connaître la position du début du fragment dans le datagramme initial ; identification : numéro attribué à chaque fragment afin de permettre leur réassemblage : tous les fragments sont identifiés de la même manière. total packet length : il est recalculé pour chaque fragment ; le 1 er n est pas utilisé ; le 2 nd, DF: Don t Fragment : indique si le datagramme peut être fragmenté. Si un datagramme a ce bit à un et que le routeur doit le fragmenter, alors le datagramme est détruit avec un message d erreur ICMP. le 3 ème, MF: More Fragments : indique si c est un fragment : 0 : le dernier ou pas de fragmentation ; 1 : sinon. Défragmentation Le processus de réassemblage À la réception du premier fragment, le destinataire final déclenche un temporisateur de réassemblage ; Ce temporisateur est un délai maximal d attente de tous les fragments : Si tous les fragments n ont pas été reçus après ce délai d attente, ils sont détruits et le datagramme est ignoré. le champs TTL de chaque fragment est décrémenté à intervalle régulier. la taille complète du datagramme n est connue que lors de la réception du dernier fragment. Exemple où la MTU donnée est celle du contenu ou «payload» Fragmentation Soit la trame suivante : AA D0 F "..!1...E F9 23 C1 32 B9 12 C9 1B.(.7..#..# BB Y...P E9 A fragmentée en : AA D0 F "..!1...E C D9 2F C1 32 B9 12 C9 1B...7.# BB Y... et : WAN Link: 4500-byte MTU size Ethernet: 1500-byte MTU size Packet from LAN: Frag1 Frag2 Frag3 Total Packet Length: Identification: 03E4 03E4 03E4 Flags: MORE MORE LAST Fragment Offset: AA D0 F "..!1...E C D9 2E C1 32 B9 12 C9 1B...7.# Y...P.. Ce qui donne? IP datagram from WAN: Total Packet Length: 4460 Identification: 03E4 Flags: LAST Fragment Offset: 0 Est-ce que les «offset» sont corrects? «LAST» vient de l interprétation de «MF=0». Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

32 6 Quelques métriques Ces métriques correspondent à des mesures des performances d un réseau Elles peuvent être mesurées au cours du temps, ou seulement, à certains moments, ou bien encore, uniquement avec une valeur approchée. La latence ou «latency» définie par le temps de passage des données de l émetteur vers le récepteur ; pas toujours mesurable facilement (l heure entre deux interlocuteurs n est pas forcément synchronisée... et la synchroniser est difficile!) Le RTT ou «Round Trip Time» mesure le temps pris pour obtenir une réponse après avoir envoyer une demande à un interlocuteur; permet d obtenir une valeur approchée de la latence : RT T/2 la machine A envoie une «estampille» avec sa propre heure dans un paquet ; la machine B répond avec un paquet contenant cette estampille ; A mesure la différence de temps avec son heure actuelle. La gigue ou «jitter» mesure la variation de la latence au cours du temps : Jitter = latency(n){latency(n 1), où la mesure n 1 est prise à un temps t et n à un temps t + δt mesure importante pour les communications «temps réel» : Mieux vaut une forte latence et une gigue stable, qu une faible latence et une gigue importante Si la gigue est nulle : la latence est stable ; si elle varie (positive ou négative) : la latence varie. Quelques mesures de RTT ping -c PING ( ) 56(84) bytes of data. 64 bytes from : icmp_req=1 ttl=50 time=45.6 ms 64 bytes from : icmp_req=2 ttl=50 time=47.5 ms 64 bytes from : icmp_req=3 ttl=50 time=45.9 ms ping statistics - 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = /46.351/47.507/0.827 ms ping -c 3 PING ( ) 56(84) bytes of data. 64 bytes from webfarm.berkeley.edu ( ): icmp_req=1 ttl=48 time=192 ms 64 bytes from webfarm.berkeley.edu ( ): icmp_req=2 ttl=48 time=192 ms 64 bytes from webfarm.berkeley.edu ( ): icmp_req=3 ttl=48 time=192 ms - ping statistics - 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = / / /0.149 ms ping -c 3 PING solo-rproxy.ucc.usyd.edu.au ( ) 56(84) bytes of data. 64 bytes from solo-rproxy.ucc.usyd.edu.au ( ): icmp_req=1 ttl=41 time=424 ms 64 bytes from solo-rproxy.ucc.usyd.edu.au ( ): icmp_req=2 ttl=41 time=447 ms 64 bytes from solo-rproxy.ucc.usyd.edu.au ( ): icmp_req=3 ttl=41 time=347 ms - solo-rproxy.ucc.usyd.edu.au ping statistics - 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = / / / ms Quelques métriques Chapter 3 Multimedia and Real-time Applications 195 Influence du jitter sur l ordre de remise des datagrammes O P Q 5 R 2 4 S Packets departing source End-to-End Delayed Playout!"#$%&'()"&%*+&,)+#)+-.()(&/+.#01)!"#$%&')234) )!"#$%&')235) RTT : les délais induits par le réseau/par le traitement Chapter 1 Introduction to Computer Networking 27 Removing Jitter by Delayed Playout 6#0(.,&")+-&)&7*'8%&)(-#90).0):.;<"&)2=4)9-&"&)*)(#<"/&)(&0,()*<,.#)(.;0*%)+#)*)"&/&.>&")?#") Layer 2 Layer 2 Transport layer Processing delay within transport layers Transport layer (sender) (receiver) A&+) <() *((<'&) +-*+) +-&) (#<"/&) Send (&;'&0+() Receive +-&) (8&&/-) (+"&*') 4B) '.%%.(&/#0,() Send *0,) data ACK ACK data /"&*+&(),*+*)8*/C&+(3)D-&)(#<"/&)#<+8<+()+-&)8*/C&+()9.+-)*)<0.?#"')(8*/.0;)$&+9&&0)+-&'E)$<+) Network layer Processing delay within network layers Network layer (sender) (receiver) packet packet packet packet F8&&/-)8*/C&+.G*+.#0)*+)+-&).0+&">*%()#?)4B)'()(&&'()+#)$&)*);##,)/#'8"#'.(&3)H?)+-&).0+&">*%) Processing and transmission delays 9&"&) %#0;&"E)?%./C&"),<&) +#) %#(+) #") %*+&) Link+Phys 8*/C&+() layer9#<%,) $&) '#"&) 0#+./&*$%&I) Link+Phys layer within link/physical layers.?) +-&) Figure 1-17: Fluid flow analogy for delays in packet delivery between the protocol layers..0+&">*%) Propagation delay!"#!$%&"'%$!(#!)*%!)"+%!%,(-#%$!.%)/%%'!/*%'!(!.")!"#!#%')!()!)*%!#%'$%0!('$! 9&"&) (-#"+&"E) +-&) 8*/C&+=-&*,&") #>&"-&*,) 9#<%,) $&) +##) -.;-E) 9.+-) +-&) -&*,&") (.G&) /*%'!")!"#!0%1%"2%$!()!)*%!0%1%"2%03!4*"#!$%,(5!$%-%'$#!6'!)*%!$"#)('1%!!!.%)/%%'!)*%!#%'$%0!('$! )*%!0%1%"2%0!('$!)*%!2%,61")5!"!6&!%,%1)06+(7'%)"1!/(2%#!"'!)*%!)0('#+"##"6'!+%$"8+9!/*"1*!"#! )"6'(,!)6!)*%!#-%%$!6&!,"7*)!"'!2(188+!:#!!; <= $"#)('1%! #<+) & = =!!!! 2%,61")5 " Chapter 4 Switching and Queuing Delay Models Propagation delay (sender receiver) &) (8&&/-) 8*/C&+() *() *"".>&) J9.+-) 9#<%,) /"&*+&) (.;0.?./*0+) Processing delay! "#! )*%! )"+%! '%%$%$! &60! -061%##"'7! (! 0%1%"2%$! -(1G%)3! H)! )*%! #%'$%0! #"$%9! )*%! -(1G%)!+(5!.%!0%1%"2%$!&06+!('!8--%0I,(5%0!-06)616,!60!&06+!)*%!(--,"1()"6'3!H)!)*%!0%1%"2%0!#"$%9! Figure 1-18: Delay components that contribute to round-trip time (RTT). Source Destination Source Router Destination $()(!16+-0%##"6'9!%'105-)"6'9!0%,(5"'7!()!068)%0#9!%)13!K061%##"'7!$%,(5#!8#8(,,5!1('!.%!"7'60%$! /*%'!,66G"'7! &06+! ('! %'$I*6#)L#! 2"%/-6"')3! M6/%2%09! -061%##"'7! $%,(5! "#! 2%05! 10")"1(,! &60! "&/&.>.0;)-#(+)+#)('##+-)#<+)+-&)M.++&"3)!*/C&+()*"&)$<??&"&,)?#")>*".*$%&)*'#<0+()#?)+.'&).0)*0) 068)%0#!"'!)*%!'%)/60G!160%!)*()!'%%$!)6!0%,(5!(!*87%!'8+.%0!6&!-(1G%)#!-%0!8'")!6&!)"+%9!(#!/",,!.%! transmission #%%'!,()%0!"'!N%1)"6'!<3O3O3! time H'6)*%0! "+-60)(')! -(0(+%)%0! "#! )*%! round-trip time! /*"1*! "#! )*%! )"+%! (!.")! 6&! *++&'8+) "'&60+()"6'!)(G%#!&06+!$%-(0)"'7!8')",!(00"2"'7!.(1G!()!)*%!#%'$%0!"&!")!"#!"++%$"()%,5!.68'1%$! +#) #<+) &*/-) (8&&/-) (&;'&0+) 9.+-) *) /#0(+*0+) *'#<0+) "&%*+.>&) +#) +-&) +.'&).(1G! ()! )*%! 0%1%"2%03! 4*"#! )"+%! 6'! (! #"'7,%! )0('#+"##"6'!,"'G! "#! 6&)%'! (##8+%$! )6! %E8(,! P44! A! propagation 9-&0).+)9*()8*/&C+.G&,)*0,)+"*0('.++&,)?"#')+-&)(#<"/&3)A&+)<().0+"#,</&)+-&)?#%%#9.0;)0#+*+.#0) time J(&&):.;<"&)2=4K1)! " )N)+-&)+.'&)9-&0)+-&)" +- )8*/C&+),&8*"+&,).+()(#<"/&) # " +- )8*/C&+)9-.%&).0)+"*0(.+) $ " )N)+-&)+.'&)9-&0)+-&)" +- E"F " )N)! " )+)# E*F " K) % " )N)+-&)+.'&)9-&0)+-&)" +- Cours «Réseaux Avancés I» P-F. Bonnefoi hop source-to-destination connection without intermediary nodes. (b) Intermediary nodes 12 décembre Packet number Source Time when packet departed (ms) Network Transit delay experienced (ms) O Q P 5 2 R 4 S Packets arriving at receiver Receiver Time when packet arrived (ms) La Figure «commande 3-2: Packets» de mesure depart with la RTT, a uniform le «ping spacing,» but they experience variable amount of delay $ ping(jitter) -c and arrive at the receiver irregularly (packets #3 and #6 arrive out of order). $ ping6 fe80:1030:5329:6d2c:211:deff:fead:beef -I eth0 Attention : le «ping» est sensible à l occupation de la machine cible : plus elle est occupée moins vite elle répond. Layer 1 Layer 1 0%&0(1)"6'!6&!)*%!+%$"8+3!C6)*!"'!16--%0!/"0%!('$!7,(##!&".%0!60!6-)"1(,!&".%0!$!!;?D9!#6!"!!D!! <= >!+?#3!4*%!"'$%B!6&!0%&0(1)"6'!&60!$05!("0!"#!(--06B"+()%,5!%E8(,!)6!<3!4*%!-06-(7()"6'!$%,(5!"#F! Time Ivan Marsic Rutgers University 28 Send Sender Receive Propagation delay (receiver sender) Receiver Receive "!"#!$%&%'()*)*+!&,%!-..!)/!(01,!(2'%!12(34%5!)6!&,%!/%*7%'!8*7!'%1%)9%'!8'%!12**%1&%7!29%'! %9%*!2*!8!/)*+4%!4)*;<!&,%!*2&)2*!26!-..!)/!(01,!(2'%!12(34%5!&,8*!A0/&!720=4%!&,%!3'238+8&)2*! 7%48B#!.2!=%&&%'!0*7%'/&8*7!-..<!:%!*%%7!&2!12*/)7%'!:,8&!)&!)/!0/%7!62'!8*7!,2:!)&!)/!(%8/0'%7#! -..! )/! (2/&! 26&%*! 0/%7! =B! /%*7%'! &2! /%&! 03! )&/! '%&'8*/()//)2*! &)(%'! )*! 18/%! 8! 381;%&! )/! 42/&#! C=9)20/4B<!*%&:2';!*27%/!72!*2&!/%*7!)*7)9)7084!=)&/D!&,%B!/%*7!381;%&/#!-..!)/!(%8/0'%7!=B! router '%12'7)*+! &,%! &)(%! :,%*! 8! 381;%&! )/! /%*&<! '%87)*+! 20&! &,%! &)(%! delay :,%*! &,%! 81;*2:4%7+%(%*&! )/! '%1%)9%7<!8*7!/0=&'81&)*+!&,%/%!&:2!9840%/E! detail -..!F!G&)(%!:,%*!&,%!81;*2:4%7+%(%*&!)/!'%1%)9%7H!!G&)(%!:,%*!&,%!381;%&!)/!/%*&H! G?#IH!.2! 0*7%'/&8*7! :,8&! 12*&')=0&%/! &2! -..<! :%! *%%7!&2!422;!8&!,2:!381;%&/!&'89%4!&,'20+,!&,%! *%&:2';#! J)'/&<! 81;*2:4%7+%(%*&/! (8B! =%! "#$$%&'()*+!2*!78&8!381;%&/!12()*+!=81;!62'!&,%! '%1%)9%'#!.,%'%62'%<!%9%*!)6!&,%!&'8*/()//)2*!7%48B!)/!*2&!)*1407%7!8&!&,%!/%*7%'!/)7%<!'%1%)9%'K/! &'8*/()//)2*! 7%48B! 72%/! 12*&')=0&%! &2! &,%! -..#! :,%*! 8*! 81;*2:4%7+%(%*&! )/! 3)++B=81;%7!2*!8!'%+048'!78&8!381;%&!6'2(!'%1%)9%'!&2!/%*7%'<!&,%!&'8*/()//)2*!&)(%!26!&,)/!381;%&! Figure 4-1: Delays in (0/&!=%!&8;%*!)*&2!81120*&#H! datagram packet switching (or, forwarding, or, routing). (a) Single >%12*7<! :%!,89%! &2! '%(%(=%'! &,8&! *%&:2';! *27%/! 0/%! 48B%'%7! 3'2&2124/! G>%1&)2*!?#?#IH#! introduce additionally L2*&)*0)*+!:)&,!&,%!640)7!642:!8*842+B!6'2(!J)+0'%!?MN<!:%!)440/&'8&%!)*!J)+0'%!?M?O!,2:!7%48B/! processing and transmission delays.!"#$#%&' #%' (#%)' *)+,-)' *)#%&' 8'%!)*&'2701%7!=%&:%%*!&,%!3'2&2124!48B%'/#!.,%!3,B/)184M48B%'!G48B%'!?H!'%1%)9%'!:8)&/!0*&)4!&,%!.)-/#0)1' #.' 2"-$',+' $3)' $,$"(' 1)("4' )52)-#)%0)1' *4' 2"06)$.'!3)%' $-"/)(#%&'+-,7'.,8-0)'$,'1).$#%"$#,%9':)%)-"((4;'2"06)$.'#%'"'%)$!,-6)1'.4.$)7')52)-#)%0)'$3).)' =01;%&!)/!6044!G)#%#<!&,%!:,24%!381;%&!)/!'%1%)9%7H!=%62'%!)&!7%4)9%'/!)&!&2!&,%!033%'!48B%'!G48B%'!"H#! $42).',+'1)("4.<' Send Receive

33 Le calcul du RTT : utilisation du «Timestamp» Une demande d «étiquette de temps» est réalisé dans le protocole (par exemple TCP) : le serveur et le client ont leur propre réglage d horloge sûrement décalé ; le client envoie l heure courante dans t 1 ; le serveur note t 1 et mesure t 2 l heure d arrivée du paquet ; le serveur après traitement du protocole envoie un message de réponse où il mesure t 3 et indique t 2 ; le client mesure t 4, l heure d arrivée du message de réponse ; Origin Timestamp: t1 Destination Timestamp: t4 know: t1,t2,t3,t4 round trip delay=((t4-t1)-(t3-t2)) Client network client msg server msg one-way delay is half of the round trip, but only if delays are symmetric Server Receive Timestamp: t2 Transmit Timestamp: t3 à la fin de l échange, le client et le serveur connaissent t 1, t 2, t 3 et t 4 et peuvent calculer une valeur approchée du RTT! Quelques métriques Le débit : mesuré en bps ou bits par seconde, exprimé en puissance de 10 (norme ISO) ; correspond à la quantité d information par unité de temps qui a été remis à son destinataire ; Le débit maximal d une ligne de transmission correspond à sa capacité : peut être atteint sur des réseaux à circuit vituels (ou la perte de données est exclue) ; peut être égal ou inférieur au débit «physique» du réseau, car il faut enlever les informations nécessaires au fonctionnement du réseau physique et aux erreurs (collision, attente de la disponibilité du support dans le cas de réseau en mode datagramme). L occupation du canal : pourcentage de la quantité d information transmise par rapport au débit «physique» du réseau : un débit de 70Mbit/s dans un réseau Ethernet 100Mbit/s définit une occupation du canal de 70% Le débit utilisateur : pourcentage de données utilisateur transmises par rapport à la quantité d information transmise (informations d adressages, de contrôle d erreur, de contrôle, d adaptation, etc) La QoS ou «Quality of Service» : vise à associer un débit pour un type communication donné (VoIP, Web, Partage de fichier, etc) ; peut être garantie ou bien souhaitée ; suppose que les communications peuvent être identifiées et classifiées. Rapport entre débit et latence, la notion de vitesse perçue Si un camion transporte par route un stock de DVDs de Limoges à Paris, la latence peut être grande (1j) mais le débit peut être énorme! Un réseau faible débit de faible latence est perçu plus rapide (Surfer sur le net en ADSL par exemple) Plan de la partie «Packet Switching» Éléments importants Une ancienne technologie de réseaux : la commutation de circuit ou «Circuit Switching» qui s améliore pour devenir de la commutation de paquets ou «Packet Switching» ; Le retour en virtuel de cette technologie : le «virtual Circuit» sur «Packet Switching» ; les éléments «historiques» pour comprendre la transformation : l avantage de passer d une communication longue à un message puis à un paquet de taille petite et fixe pour la gestion des erreurs ; le «multiplexage temporel» ; le choix en un acheminement du paquet suivant : toujours le même chemin en mode «virtual circuit» ; un chemin défini progressivement en mode «datagram». 6.1 Du réseau «Circuit-Switched» au réseau «Packet-switched» Le réseau «Circuit-Switched» c est historiquement le plus ancien (c est la catégorie des anciens réseaux téléphonique) ; Fonctionnement : avant qu une communication ne puisse commencer, il faut construire le circuit : déterminer un chemin entre la source et la destination ; allouer de manière statique des ressources sur tous les nœuds intermédiaires du chemin :. si l opération de construction de circuit : réussi, alors la communication a lieu. échoue, à cause d une ressource non disponible, la communication n a pas lieu. à la fin de la communication, les ressources allouées doivent être libérées. Évolution du «Circuit-Switched» vers le «Packet-switched» c est une évolution historique des communications pour des raisons d efficacité : gestion plus rapide des erreurs, flexibilité de l acheminement des paquets, gestion de plusieurs communications simultanées ; 1.4 Network classification 9 les communications sont découpées en paquets de taille fixe ou bornée inférieure en générale à 100ko ; Exemple : le réseau ATM, «Asynchronous Transfer Mode» : proposé par les opérateurs télécommunications ; Exemple d utilisation : Connexion Internet d un particulier : un réseau sans fil, «Wireless LAN» ; un modem ADSL et une ligne téléphonique : accès au réseau ATM ; un lien vers l ISP, «Internet Service Provider» ou FAI, «Fournisseur d accès Internet». Fig. 1.8 ADSL modem Telephone network A residential wireless LAN connected to the Internet ISP Internet core network core network. Network devices called routers provide the desired connectivity between different domains. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre Fig. 1.8 sketches a more familiar portion of the whole picture: in this instance a residential customer is equipped with a small wireless LAN, connected to the Internet through its telephone line and an ADSL modem: after a few hops covered via the telephone network, we meet the router of the ISP guaranteeing the user Internet access. Routers: what are their main tasks? For the time being, it suffices to know that these nodes are the busy Internet servants: their role is to connect its different constituent

34 tx Généralisation du réseau «Packet-switched» Le réseau «Packet-switched» comme seul mode de fonctionnement mode de fonctionnement actuel des technologies réseau ; transport de données découpés en «paquets» contenant des bits de contrôle et des bits de données ; il existe deux sous-catégories : les «virtual circuit», ou «circuit virtuel», exemples : MPLS, «Multiprotocol label switching», ATM, Frame Relay, X.25 (virtuellement 2 TCP...) ; les «datagram networks», ou «réseau en mode datagramme», exemple : Internet ; Les «virtual circuit», «circuit virtuel» : le retour du mode «circuit» un «circuit virtuel» doit être mis en place entre la source et la destination avant un échange ; la différence avec le «Circuit-switched» : l allocation des ressources sur le chemin est dynamique : les liens de transmission sont interconnectés par des commutateurs ou des routeurs en «mode commutateur» ; les paquets partagent les capacités des liens traversés avec d autres paquets appartenant à d autres «circuits virtuels» ; les paquets partagent de manière dynamique la puissance de traitement des commutateurs/routeurs, ses ressources mémoires ; 1.4 Networkclassification 11 on parle de «multiplexage déterministe» : l aspect «déterministe» entraîne que les paquets sont Packets of VC 1 Packets of VC 2 Packets of VC traités de manière planifiée ; 3 le temps de passage d un paquet dans un commutateur est connu et le temps de parcours du «circuit» est stable et prévisible ; on peut garantir de la QoS, «Quality of Service». t 0 +T proc +T q +T tx Généralisation du réseau «Packet-switched» Les «datagram networks», ou «réseau en mode datagramme», vs «virtual circuit» chaque paquet est «routé» individuellement à travers le réseau ; il n existe pas de chemin «a priori», alors chaque paquet d une T p communication peut suivre un chemin différent ; pour le rendre autonome, le paquet contient l adresse du destinataire : on parle de datagramme : chaque routeur intermédiaire traversé par ce datagramme utilise cette adresse pour décider du «lien de sortie», «output link» pour «relayer», «forward», ce datagramme. le datagramme «saute» de routeur en routeur, «hop-by-hop», jusqu au destinataire final. si un routeur tombe en panne, le datagramme est perdu. on parle de «multiplexage statistique t 0» +T : proc +T q +T tx +T p les paquets partagent de manière dynamique la puissance de traitement des commutateurs/routeurs, ses ressources mémoires ; la charge, «load», d un routeur dépend du trafic non planifié qui passe par lui ; l aspect «statistique» entraîne que des paquets peuvent être «mis en attente», dans des «queues» ; le datagramme peut Fig. subir 1.16des retards A pictorial dans son viewtransfer of thes il different est misdelays en attente incurred sur un byrouteur a packet (jitter) on a: single link le temps de parcours du datagramme varie et devient imprévisible : Le temps de transmission T ti varie sur chaque i th lien Source Destination ce qui entraîne desfig. difficultés 1.17 pour Thefaire entiredepath la QoS. covered by the packet i th link T ti T p Fig. 1.9 A few virtual circuits traversing a network crossed router taking it a little bit closer. As in virtual circuit networks, here too datagrams queue up in routers and experience unpredictable delays before reaching the destination. If a router failure occurs, if some links are close to overloading, it is relatively easy in datagram networks to divert datagrams via alternative routes, provided these are available. This is not so with virtual circuits, which are abruptly terminated if a router they cross experiences an outage condition. Carrying on the comparison, another significant difference is that datagram networks do not require their routers to maintain state information about the flows of packets that traverse them, so that their operating mode is termed stateless. Routers of virtual circuit networks do: they have to know all virtual circuits that currently traverse them, hence, they retain per-connection-state information, a burdensome requirement, which poses scalability limits on such devices. We will pick up again the datagram network topic as we proceed in the exposition: the reader will find thorough details about the tools and the rules that govern the routing process over the Internet in Chapter 2 and also in Chapter 6. Commutateur ou routeur? «circuit virtuel» ou «datagramme»! Fonctionnement Il est relié à une plusieurs lignes de transmission. Il reçoit les bits d information sur une ligne de transmission en entrée. Il émet ces mêmes bits d information sur une ligne de transmission en sortie. Le choix de la ligne de sortie s appelle commutation : «cut through» où l information est retransmise à mesure qu elle arrive ; temps d acheminement dans un «switch» de l ordre de la µs Distance-based classification «store and forward» où l information est d abord entièrement reçue et stockée avant sa ré-émission. Let us proceed in our classification, and distinguish computer networks on the basis temps d acheminement dans un «switch» de l ordre de la ms of the distance they span. Fig lists the different distances, along with a tangible indication of the location of the network nodes, and the corresponding network names. On a very limited scale, we encounter personal area networks, PANs: this is the realm of the (not so) futuristic wearable networks, where the connected devices are really close. Next come local area networks, LANs: they are found in enterprises and university campuses, often interconnect hundreds of nodes and cover areas whose diameter is of the other packets. Even if at the end of each link we do not find a router, yet the conceptua Commutation de circuit, classification «Circuit of the Switching delay contributions» : un provided historique above holds. Let us, therefore, assume that the packet crosses N hops before reaching?? its destination Création d un chemin «en dur and» introduce an index i to tag the ith hop, so that the symbol T ti indicates the delay th Elle consiste à : packet experiences on it: then the total packet delay is réquisitionner, pour une communication, des tronçons de réseau pour assurer une liaison de bout en bout ; N T t = T ti. (1.13 les tronçons sont liés les uns aux autres à chaque nœud de commutation ; i=1 libérer les tronçons quand la communication est terminée ; les tronçons sont disponibles pour A related une nouvelle measure, commutation. often encountered in networks, is the round-trip time, commonl referenced by its acronym, RTT: it is simply defined as the time it takes for a packe La communication est une suitetoininterrompue go from the source d information to the destination envoyéeand surthen le circuit. to return back to the source. In othe words, the RTT is made of two one-way terms of the type detailed by Eq. (1.13). Les différences de mode de fonctionnement en «Packet Switching»? en «datagram network» : il choisit sa commutation en fonction de ses lignes de transmissions et de sa table de routage ; il n associent pas «d état» à une communication qui passe par eux, on parle de «stateless» ; en «virtual circuit» : il ne choisit pas lui même comment il fait sa commutation : déterminée par un autre élément du réseau, comme par exemple lors de la mise en place d un circuit virtuel. il connait tous les circuits passant par lui, grâce à un état associé à une communication ou connexion, «perconnection-state». Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

35 Amélioration : Commutation de message Les données à transmettre sont découpées en messages ; chaque nœud de commutation sert de relais et peut héberger des messages lorsque les tronçons du réseau sont engorgés. Ce mode de commutation a pratiquement disparu au profit de la commutation de paquets, «packet switching».?? Amélioration : Partage des lignes de transmission entre circuits!"#$%&'()%&*+,+-(')(./+0/1+$%.*/1+0/+)'(*1"%11%&*+/*)'/+2%'23%)1 Optimisation de l utilisation du réseau 45)%"%1()%&*+0/+$63)%$%1()%&*+03+'#1/(3 Pour #$%&'$()*+*,-&'./-0(.$*)1)*$2'3-,'.*42-,'3-')&12,+*,,*$2'5 optimiser l exploitation des lignes de transmission : on! $2'367$+($,-'.-')-+(,'-2'%2*)6,'3-')-+(,'8 décompose le temps en unités de temps ;! chaque 791:%-'7*&7%*)'-0*,)-'(-2312)'%2-'3-'7-,'%2*)6,'3-')-+(,'8 circuit existe pendant une de ces unités de temps ; Exemple Tous les 1/10 ème de seconde on change l affectation des lignes de transmission.!"#$%&#'(')*+,'&#,'-.-/0$#'1#',#2*31#'*3'24536#'&7588#2)5)9*3'1#,'&963#,'1#'):53,$9,,9*3; <&'#,)'593,9'%*,,9=&#'1#'%5:)56#:'&#,'&963#,'#3):#'-/'29:2+9),'> Il est ainsi possible de partager les lignes entre 10 circuits! Il est ' souhaitable de partager les lignes de transmissions entre différents circuits : à;.'-,)',$%91*)1<.-'3-'(1&)14-&'.-,'.*42-,'3-')&12,+*,,*$2,'-2)&-'3*==6&-2),'7*&7%*),'5 l instant T entre un circuit est réservé entre A et B (circuit jaune).! A et B peuvent communiquer pendant un temps δt (exemple : δ = 1/10) ; à! l instant >'./*2,)12)'?K3)'.-,'.*42-,'3-')&12,+*,,*$2,',$2)'1==-7)6-,'>'%2'1%)&-'7*&7%*)F T + δt les lignes de transmissions sont affectées à un autre circuit ; pendant! (-2312)'3)'*.'-,)'($,,*<.-'3/ &'%2'$%'(.%,*-%&,'+-,,14-,F δt, il est possible d échanger un ou plusieurs messages entre C et D.??!"#$%&'()(*(+,-.(/011$203 A 4(5631#7%17(8 L B A 4(5631#7%17(8(9(:7 L B!" M M Commutation de paquets, «Packet Switching»!"##$%&%'"()*+),&-$+%. Réduction de la taille des échanges suivant une même unité /0*$1%'"()*+)2&)%&'22+)*+.)013&(4+.).$'5&(%)$(+)#6#+)$('%0 Chaque "#$%&'()'**$+'('*,(-./0&1.('2(,&-$+%.( message est découpé en paquets! de petite -'(1',3,'(,$344'5(*0&6'2,(738'(9( taille, souvent fixe ;! éventuellement ($#07"%0.(10&:(&2(:.;$**')<4$+'(40:*(-'(4$(:./'1,302= numérotés pour un ré-assemblage lors de la réception. Multiplexage 8$2%',2+9&4+)%+#,"7+2)*+.),&-$+%. temporel des paquets On combine l utilisation de paquets et le partage des lignes de transmissions :! &2'(43+2'(-'(,:$2*)3**302(2?'*,(1$*($77'/,.'(A(&2(/3:/&3,(1$:,3/&43':(9 une ligne de transmission n est pas affectée à un circuit particulier ;! /?'*,(4'(1$%&',(%&3(1"(%'+(%(2:'(;"7#&%'"((-?$11$:,'2$2/'(A(&2(/3:/&3,(1$:,3/&43':= c est!"#$"%&$'()%&$*&$+#,%-.(--(/%0$'&-$1,2"&+-$-&$-"(3&%+0$.4.&$-5('-$%5,11,#+(&%%&%+$1,-$,"$.4.&$ le paquet qui contient l information d appartenance à un circuit particulier. Sur.&--,)&= une ligne de transmission, les paquets se suivent, même s ils n appartiennent pas au même message.?? Commutation!"##$%&%'"()*+)#+,,&-+,)!"#$%$)!"##$%&%'"()*+).&/$+%, de messages vs Commutation de paquets #$%&'(%)*+,,+-,%)+.,'$(/0((01$2??!"#$%&'()(*(+,-.(/011$203 B " C!"#$%&'()(*(+,-.(/011$203!! D!" Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

36 Circuit virtuel vs Routage Circuit virtuel Router Sending host Subnet Receiving host Commutation de paquet : le format du paquet Composition du paquet en général Il est de taille petite (de quelques dizaines à un ou deux millier d octets) souvent fixe ou limitée. Chaque paquet a un numéro d ordre résultant du découpage des données initiales (message). Sending process Routage ou mode «datagramme» Fig A virtual circuit. Sending host Router A B Virtual circuit Subnet D E Receiving process Receiving host Chaque paquet est identifié : dans le cas du circuit virtuel : le paquet contient le numéro de circuit virtuel qu il emprunte. Cela permet au commutateur de choisir la ligne de sortie du paquet en fonction de son appartenance à un circuit virtuel, comme sous ATM. dans le cas du datagramme : le paquet est autonome, il contient tout ce qui est nécessaire pour réaliser son acheminement. Cela permet à chaque routeur de choisir au mieux la ligne de sortie pour chaque paquet qu il reçoit (méthode du «best effort» d IPv4). C Sending process Packet Router C makes a choice to forward packets to E and not to D Receiving process 6.2 Mode «Fig. Circuit virtuel A stream» matériel of packets: from ATM, sender Asynchronous to receiver. Transfer Mode Réseau en mode circuit virtuel, «orienté connexion» Une communication relie deux interlocuteurs uniquement ; Une connexion préalable est nécessaire pour établir un chemin à la demande des deux interlocuteurs, on parle de VC, «Virtual Circuit»; Dans le cas de chemins permanents (entre deux sites par exemple) on parle de «Permanent Virtual Circuit». Les données échangées sont de tailles fixes et petites, appelées «cellules» : 53 octets ; Bytes 5 48 Header User data L en-tête contient le «Virtual Path Identifier» et le «Virtual Channel Identitifer» : Le VCI désigne l ensemble Fig desan cellules ATM cell. partageant le même circuit virtuel, chaque cellule est ainsi identifiée et permet de savoir à quel chemin virtuel elle appartient Le VPI désigne un chemin entre deux interlocuteurs, ce chemin pouvant être composé de plusieurs circuits virtuels, ce qui permet de faire du multiplexage (plusieurs communications entre deux même interlocuteurs). Ce type de réseau est utilisé par les Opérateurs de Telecommunication («Telco»), et fournissent le réseau support à l ADSL Asymetric Digital Subscriber Line qui permet le raccord des usagers par la ligne téléphonique. Les avantages sont : Une connaissance parfaite des temps de transfert de données, ce qui garantit les communications «temps réel» ; Une absence de pertes de données (les commutateurs sont extrêmement fiable, mais coûteux) ; Une gigue, jitter, très basse : important pour des réseaux avec des services MicroSoft ; De la QoS, «Quality Of Service», avec garantie ; Du débit : Optical Carrier Speed OC-1 52 Mbps, OC Mbps, OC Mbps, OC Gbps, OC Gbps et OC Gbps!?? 7 Les contraintes de gestion des communications Gestion des erreurs il est possible d avoir des erreurs : les lignes de transmission ne sont pas parfaites : modification des données entraînant une erreur ; le réseau interconnecté n est pas parfait : paquet perdu ou détruit. choix parmi différentes méthodes de contrôle d erreur entre l émetteur et le récepteur : le récepteur doit être capable de déterminer si un paquet reçu est correct ou non ; le récepteur doit disposer d un moyen d indiquer à l émetteur quels paquets ont été correctement reçus ou non (accusé de réception, mécanisme d attente,... ) ; le récepteur doit pouvoir gérer des paquets n arrivant pas dans l ordre ou manquant (gestion de buffer de réception, que faire si un paquet manquant n arrive toujours pas? l émetteur doit-il renvoyer tout de suite un paquet ou attendre une notification du récepteur? Contrôle de flux Un émetteur rapide peut saturer un récepteur lent. Il faut éviter que les paquets ne pouvant pas être traité par le récepteur ne reste et finissent par congestionner le réseau global. asservissement entre récepteur et émetteur ; accord sur la vitesse de transmission ; intervention du routeur avec les bits «ECN» (ICMP «Source Quench», RFC6633 de mai 2012 deprecated). Choix des chemins entre émetteur et récepteur a. déterminer un chemin possible ; b. améliorer ce chemin par le choix du moindre coût en fonction du trafic (métrique de débit par exemple) ; c. tenir compte de souhaits utilisateurs comme choix du passage ou non par un pays suivant sa législation, le coût de communication, le débit possible... (utilisation de lignes louées à une TELCO, satellite, etc). Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

37 7.1 Circuit virtuel vs datagramme Dans un réseau point-à-point en mode «circuit virtuel» : le débit obtenu est très proche de celui offert en théorie par le réseau physique ; lors de l établissement du circuit virtuel, on peut connaitre le débit prévisible ; le débit peut être garanti. Dans un réseau point-à-point en mode «datagramme» : La capacité de la ligne de transmission est partagée avec les autres utilisateurs et ne peut être garantie : On ne peut pas savoir ce que font les autres utilisateurs! Le contrôle de flux augmente l utilisation du réseau et diminue son débit (envoi d accusé de réception, retransmission, etc) ; Des pertes de paquets peuvent se produire (si le réseau est en congestion) ; Peu ou pas de QoS : uniquement sur des parties contrôlées : réseau de la même entreprise, passage par un FAI,... en général, on ne peut prévoir à l avance le chemin emprunté par un datagramme et donc son temps d acheminement ; même si le chemin emprunté reste le même, le taux d occupation de certaines parties de ce chemin varie suivant les usages des autres utilisateurs The OSI Reference Model 19 the transport can issue a not ready indicator to the sender, or source, of the flood (as shown in Figure 1.10). This mechanism works kind of like a stoplight, signaling the sending device to stop transmitting segment traffic to its overwhelmed peer. After the peer receiver processes the segments already in its memory reservoir its buffer it sends out a ready transport indicator. When the machine waiting to transmit the rest of its datagrams receives this go indictor, it resumes its transmission. FIGURE 1.10 Mise en oeuvre du contrôle de flux ou «flow control» Transmitting segments with flow control «Éviter qu un émetteur rapide sature un récepteur lent» = le récepteur contrôle l émetteur. lorsque le récepteur reçoit une «rafale» ou un «burst» de paquets : bufférisation, le problème est résolu si l afflux de paquets tient dans le buffer ; Sender Receiver Transmit lorsque le récepteur reçoit trop de paquets et que son buffer est plein : risque de perte de paquets Buffer full Not ready le récepteur transmets à l émetteur un indicateur «Not ready» pour stopper son émission ; STOP! Segments processed le récepteur transmets ensuite un indicateur «Go» pour autoriser de GO! nouveau l émetteur ; Transmit In fundamental, reliable, connection-oriented data transfer, datagrams are delivered to the receiving host in exactly the same sequence they re transmitted and the transmission fails if this order is breached! If any data segments are lost, duplicated, or damaged along the way, a failure will occur. This problem is solved by having the receiving host acknowledge that it has received each and every data segment. A service is considered connection-oriented if it has the following characteristics: u u u u Exemple, le «Flow control» en technologie Ethernet : «Half Duplex» : contrôle de flux implicite : CSMA/CD contrôle de flux uniquement du point de vue du support partagé : à la détection d une collision attente d un slot de temps choisi aléatoirement dans un intervalle agrandi à chaque collision (limité à 2 10 ) erreur sur l émetteur au 16 ème essai (le récepteur ne détecte rien... bien sûr) ; The types of Sur flow control un are switch buffering, : windowing, pour freiner and congestion un émetteur : créer des collisions, faire croire que le support est occupé ; avoidance. «Full Duplex» : contrôle de flux explicite : utilisation de «trame de pause» : envoyé par le récepteur à l émetteur pour le stopper ; contient un paramètre indiquant le temps d attente avant d envoyer de nouvelles trames ; une nouvelle trame de pause avec un temps d attente nul pour déclencher l émetteur. A virtual circuit is set up (e.g., a three-way handshake). It uses sequencing. It uses acknowledgments. It uses flow control. Contrôle de flux Ivan Marsic vs Congestion Rutgers University! Flow control Congestion control DATA LINK LAYER 175 oriented framing. And, additionally, allows any arbitrary number of bits in the data field rather than restricting the data field to be only a stream of 8-bit characters. However, so far as common data communication is concerned, data is usually organised as bytes. 3. Code Violation-Oriented Sender Framing Sender Instead of using special character or bit patterns at the virtual bit pipe level, it is possible to do framing at the real bit pipe level while physically encoding bits into electrical signals. Let us consider for example, the Manchester coding, which is a baseband encoding technique that represents a 1 as a high-low pair and a 0 as a low-high pair. The basic feature of this code is that there is always a transition in the middle of the signalling interval, whenever a data-bit is being transmitted. Now, frame delimiting can be done through violation of this basic feature of the code by Feedback: sending, say, one high-high pair followed by a low-low Not much Feedback: pair. This ingenious scheme avoids the expected transition in the middle of the bit interval getting through Receiver and thereby indicates the frame boundaries to the receiver. This framing technique of using overflowing an invalid physical layer coding has been employed in the 802 LAN standards. Before concluding this section on framing, it may Receiver be appropriate to point out that sending in the frame header the count of the number of characters or bits present in the frame being transmitted has also been used to let the receiver determine the end of the Receiver frame (end delimiting). However, this method is no more used because bit errors can affect the count lead to serious. Synchronisation problem at the receiver. Of course, if the count La congestion dépend Figure 2-5: deflow l état control is used du réseau compared in conjunction global, to congestion with qui tient control. one of the three framing techniques described above, it can help in increasing the reliability of compte the framing de toutes process lessignificantly. communications entre tous les matériels connectés "#$%&%'$%(!&%)(%&!'*+,-(!.+#',-$!)#+$*%&!'+,&.%!/+&!0+&%!(%$)"-'1!%2321!45$%6%#'!7889:!;%$%&'+#!<! ; le contrôle de flux ne s applique7.4 que sur ERROR une communication CONTROL-DETECTION et entre deux AND interlocuteurs. CORRECTION D*%!/"&'$!$*&%%!'%30%#$'!)&%!'E%.")-!"#!$*)$!$*%F!(+!#+$!.+#$)"#!()$)!G"2%21!$*%F!*)6%!+#-F!)!*%)(%&H1! )#(!$*%!5IJ!/-)3!"#!$*%!*%)(%&!"'!'%$!GK"3,&%!>L>H2!M#!$*"'!%N)0E-%1!$*%!.-"%#$!+//%&'!RcvWindow!O! Error Control 8 Contrôle d erreur >?9P!QF$%'1!)#(!$*%!'%&6%&!+//%&'!RcvWindow!O!9?8R!QF$%'2!M#!+,&!.)'%1!$*%!.-"%#$!*)EE%#'!$+!Q%! Error control refers to mechanisms to correct and detect errors that occur in the $*%!S'%#(%&1T!Q,$!'%&6%&!+&!Q+$*!.-"%#$!)#(!'%&6%&!.)#!'"0,-$)#%+,'-F!Q%!'%#(%&'!)#(!&%.%"6%&'2! transmission of frames. The model that we will use, can shown in Figure 7.5. As before, data Le contrôle d erreurd*%f!)-'+!%n.*)#3%!$*%!'"u%!+/!$*%!/,$,&%!'%30%#$'1!mss!g$+!q%!(%'.&"q%(!-)$%&1!d)q-%!>l7h1!)#(! sur une ligne de transmission are sent as a sequence of frames: Les «trames» sont envoyées '%$$-%! +#! $*%! de l émetteur '0)--%&! +#%! vers +/! 7?>9! le )#(! V7>! QF$%'1! "2%21! V7>! QF$%'2! =,&"#3! $*%!.+##%.$"+#L %'$)Q-"'*0%#$! E*)'%1! $*%!.-"%#$! )#(! $*%! '%&6%&! W"--! $&)#'"$"+#! $*&+,3*! ("//%&%#$! '$)$%'1! ',.*! )'! récepteur en séquence : XM5DYJ1!5IJZ5YJD1!)#(!Y5D[\XM5]Y=!G0)&^%(!"#!K"3,&%!>LR!+#!$*%!&"3*$L*)#(!'"(%H2!['! elles peuvent être'$)$%(! retardées %)&-"%&1! par Q+$*! le'%#(%&!)#(! support de &%.%"6%&! "#'$)#$")$%! $*%"&! '%_,%#.%! #,0Q%&'! &)#(+0-F2! M#! K"3,&%! transmission ; >LR1! $*%! '%#(%&! '%-%.$'! W*"-%! $*%! &%.%"6%&! '%-%.$'! ]%#.%1! $*%! '%#(%&! elles peuvent être'%#('!)!u%&+lqf$%'!'%30%#$! perdues : la trame est abîmée : (0) par des erreurs au point qu on ne sache plus que c était une trame ; D*%!&%.%"6%&!).^#+W-%(3%'!"$!)#(!'%#('!"$'!+W#!"#"$")-!'%_,%#.%!#,0Q%&!QF!'%#("#3! : (0); ack elles peuvent être endommagées : seuls quelques bits ont été altérés mais la trame reste reconnaissable. Les techniques de contrôle d erreur la détection d erreur : comment savoir si une erreur s est produite Fig. 7.5 Model of frame transmission les acquittements positifs : le récepteur envoie un acquittement pour chaque trame reçue sans erreur ; la retransmission après expiration d un délai d attente, timed-out : l émetteur renvoie une trame après avoir attendu un acquittement positif sans succès ; un acquittement négatif : le récepteur renvoie un acquittement pour chaque trame reçue avec des erreurs et force la retransmission depuis l émetteur. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

38 Contrôle d erreur Définition et localisation Une «erreur simple» correspond à l inversion de la valeur d un bit constituant le message. Une erreur peut intervenir n importe où : sur les informations de contrôle ou sur les données. Une erreur est généralement détectée par le récepteur, plus rarement par l émetteur. Exemple, suivant les technologies utilisées et les algorithmes de MAC, «Medium Access Control», associés : CSMA/CD, «Carrier Sense, Multiple Access, with Collision Detection» : l émetteur «écoute» le support de transmission pour détecter si une transmission simultanée a lieu ce qui entraîne une collision, qui est elle-même détectée par le récepteur (exemple : Ethernet). MACA, «Multiple Access with Collision Avoidance» : l émetteur ne peut pas savoir si une collision a lieu au niveau du récepteur. L algorithme essaye de les «éviter» par des techniques prévisionnelles (exemple : WiFi). Gestion des erreurs et couches réseau couche 4, «transport» : une erreur correspond à la perte d un datagramme ou à un datagramme endommagé TCP : récepteur : il n y a pas d acquittement du segment perdu ou contenant une erreur ; émetteur : réémission automatique du segment après expiration du délai d attente de l acquittement. UDP : le datagramme perdu ou endommagé est ignoré ; couche 3, «réseau» : une erreur correspond à un datagramme endommagé vérification de l absence d erreur dans l en-tête du datagramme IP, qui sert au routage : dans le cas d une erreur, le datagramme est ignoré. couche 2, «liaison de données» : une erreur correspond à une trame endommagée le récepteur vérifie la trame reçue : si elle est correcte, elle est traitée suivant le protocole contenu dedans et transmise à la couche supérieure ; sinon elle est ignorée ; 8.1 Code de détection et correction d erreurs Erreurs isolées ou «par rafale» Dans le cas de la transmission sans fil, par exemple, les erreurs peuvent arrivées par rafale, et non de manière isolée. Rafale vs isolée : Exemple de technologie : l information est transmise sous formes de blocs successifs et la taille des blocs de données transmis est proche du taux d erreur. dans le cas d erreurs isolées, il y a un risque que la plupart des blocs échangés contiennent une erreur ; dans la cas d erreurs par rafale, ce risque diminue. En effet, il peut arriver qu un seul bloc soit affecté. L inconvénient des erreurs en rafale, est qu elles sont plus difficiles à détecter. Notion de codes correcteurs et de codes détecteur d erreurs Pour pouvoir déterminer si une erreur s est glissée dans une transmission, il est nécessaire d ajouter une information supplémentaire. Cette information permettra lors de la réception de gérer la présence d erreur. Il existe deux stratégies possibles : a. Ajouter suffisamment d information pour que le récepteur soit capable de corriger les erreurs à partir des données reçues. Dans ce cas là, on parlera de «correction d erreur». b. Ajouter le minimum d information pour que le récepteur détecte une erreur et demande la retransmission des blocs de données. Dans ce cas là, on parlera de «détection d erreur». Taux d erreur Erreurs de transmission au niveau du support physique Des erreurs de transmission peuvent apparaitre suivant différents facteurs : le type de codage utilisé pour transmettre les bits d information sur le support physique ; le débit de la liaison ; la nature du support physique. Elles sont dues à des parasites, des micro-coupures... Le taux d erreur Le taux d erreur correspond au nombre de bits qui s inversent sur le nombre de bits transmis. Exemple : un taux d erreur de 10 9 signifie qu un bit sur un milliard s inverse. Dans le cas d Ethernet 10Mbps, cela se traduit par une erreur toutes les 2 minutes. Pour un taux d erreur de cela fait une erreur toutes 27heures. Le taux d erreurs varie suivant le type de ligne de transmission : 10 3 à 10 5 dans le cas d une ligne téléphonique (réseau commuté) ou sans fil ; 10 9 dans le cas d une transmission par paire torsadée ; 10 7 à 10 8 dans le cas d un câble coaxial ; à dans le cas d une fibre optique ; P dans le cas d un bus de PC. 1 = (1 P b ) F P 2 = 1 P 1 Il est maximal dans le cas de transmission analogique, encore présente dans les réseaux à l échelle d une ville ou d une région. Ces réseaux sont composés de : commutateurs (numérique) ; de lignes de transmission inter-urbaines (numérique) ; de boucles locales (essentiellement analogiques pour des raisons de coût). 8.2 Détection d erreur et Envoi/Réception des données Mécanisme général pour détecter des erreurs de transmission Au niveau de l émetteur : l émetteur ajoute des données de contrôle aux données à émettre. Ces données de contrôles sont déterminées ou calculées en fonction des données à émettre suivant une fonction f, appelée «fonction de code détecteur d erreur». Cette fonction est souvent associée à la technologie de transmission, et surtout, elle doit être connue du récepteur. lors de la transmission effective, l émetteur envoie les données suivies des données de contrôle, appelées sur le schéma E, ou «code de détection d erreur». Au niveau du récepteur : le récepteur reçoit les données et les données de contrôle, E ; DATA LINK LAYER 179 First, consider the case when no means are taken to detect errors; the probability of detected errors (P 3 ) then, is zero. To express the remaining probabilities, assume that the probability that any bit is in error (P b ) is constant and independent for each bit. Then we have where F is the number of bits per frame. In words, the probability that a frame arrives with no bit errors decreases when the probability of a single bit error increases, as you would expect. Also, the probability that a frame arrives with no bit errors decreases with increasing frame length, the longer the frame, the more bits it has and the higher the probability that one of these is in error. Let us take a simple example to illustrate these relationships. A defined object for ISDN connections is that the bit error rate on a 64 Kbps channel should be less than 10 6 on at least 90% of observed 1 minute intervals. Suppose now that we have the rather modest user requirement that at most one frame with an undetected bit error should occur per day on a continuously used 64 Kbps channel, and let us assume a frame length of 1000 bits. The number of frames that can be transmitted in a day comes out to 5.529! 10 6, which yields a desired frame error rate of P 2 = 1/(5.529! 10 6 ) = 0.18! But, if we assume a value of Pb of 10 6, then P 1 = ( ) 1000 = and, therefore, P 2 = 10 3, which is about three orders of magnitude too large to meet our requirement. Fig. 7.7 Error detection This is the kind of result that motivates the use of error-detection techniques. All of these techniques operate on the following principle which is shown in Figure 7.7. For a given frame of bits, additional bits that constitute an error-detecting code are added by the transmitter. This code is calculated as a function of the other transmitted bits. The receiver performs the same calculation and compares the two results. A detected error occurs if and il calcule avec la même fonction f que celle utilisée par l émetteur, ses propres données de contrôle ; il compare ses données de contrôle à celles reçues : Si elles sont différentes alors il y a eu une erreur de transmission. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

39 8.3 Caractéristique des code détecteur d erreur : distance de Hamming Définition du bloc de données transmis Le bloc de données transmis est une séquence de n bits, décomposé en : m bits de données (les données à transmettre) k bits de contrôle (n = m + k). Une erreur se caractérise par l inversion d un bit dans les n bits transmis (dans les bits de données ou de contrôle). Notion de «mot de code» L association des m bits de données et des k bits de contrôle est appelée un «mot de code». En effet, il existe : 2 m possibilités pour la séquence de m bits de données. On peut transmettre n importe quelle donnée. moins de 2 k possibilités pour les bits de contrôle. Toutes les valeurs ne sont pas autorisées! Pourquoi? Cela dépend du code de détection d erreurs utilisé! Distance de Hamming Le nombre de bits de différence entre deux séquences de n bits (celle transmise et celle reçue par exemple) est appelée «distance de Hamming». Exemple : la séquence et sont différentes de 3 bits, soit une distance de Hamming de 3. Il est possible de calculer cette distance à l aide d un «ou exclusif» et de compter le nombre de bits à 1. Sur l exemple précédent : xor = soient 3 bits à Distance de Hamming d un code détecteur d erreur Distance de Hamming d un code Ces codes de détection, ou de correction d erreur, sont déterminés à partir d un algorithme appliqué sur les données appelé «code». Il est possible de caractériser le «code» en calculant sa distance de Hamming. Pour cela il faut : a. déterminer l ensemble des «mots de code» possibles, c-à-d : construire l ensemble des 2 m possibilités de combinaison de bits pour les données ; appliquer l algorithme sur chaque combinaison pour obtenir un «mot de code» (l association des m bits de données au k bits de contrôle) ; construire l ensemble des 2 m «mots de code» ; b. pour chaque paire de «mot de code» possible, déterminer la distance de Hamming qui les sépare ; c. sélectionner la distance de Hamming minimale calculée. Cette distance de Hamming minimale est appelée distance de Hamming du code complet. Elle indique le nombre d erreurs maximales que le code peut détecter ou corriger. Cette distance correspond également au nombre d erreurs simples nécessaires pour passer d une séquence à l autre (le nombre de bit inversé entre les deux séquences). 8.5 Exemples de code Distance de Hamming du code suivant ; ; ; À quels informations utilisateurs on peut associer ce code? Est-il efficace? 8.6 Détection ou Correction? Notion de détection et de correction d erreurs La détection d une erreur consiste à savoir si un bloc d information (bits de données + bits de contrôle) correspond ou non à un «mot de code» : si le bloc reçu n est pas un «mot de code» alors il y a eu une ou plusieurs erreurs de transmission. La correction d erreur consiste, une fois la détection d erreur réalisée, à chercher le «mot de code» originellement transmis qui a subit ces erreurs, c-à-d. : le «mot de code» qui se rapproche le plus du bloc d information reçu. Il faut alors que le nombre d erreurs simples subies soit inférieur à un seuil! Nombre d erreurs gérables par un code de détection ou de correction Ce nombre dépend de la distance de Hamming du code complet : une erreur correspond à la réception d un bloc d information qui n est pas un «mot de code» ; pour qu un «mot de code» transmis soit reçu comme n étant plus un «mot de code», il faut qu il ait subit moins d erreurs simples (inversion de bits) que la distance de Hamming qui le sépare d un autre «mot de code». Sinon, il deviendrait un autre «mot de code» et rien ne permettrait de dire qu il y a eu erreur de transmission. Autrement dit d est la distance de Hamming du code complet, c-à-d la plus petite distance séparant deux «mots de code» ; le «mot de code» transmis subit p erreurs simples : Si p < d le «mot de code» n a pas franchi la distance qui le sépare d un autre «mot de code», il n a pas pu devenir un autre «mot de code» = Le récepteur détecte une erreur et peut éventuellement la corriger! Si p d le «mot de code» a franchi la distance qui le sépare d un autre «mot de code», alors il a pu devenir : un autre «mot de code» donc plus d erreur détectable avec p = d! un autre «mot de code» puis à partir de ce «mot de code» subir de nouvelles modifications vers autre chose qu un «mot de code» (ou pas) d où plus de correction d erreur possible avec p > d! Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

40 Quel code pour faire de la Correction et de la Détection? Distance de Hamming nécessaire Lors d une transmission, le bloc d information (bits de données + bits de contrôle) est susceptible de subir p erreurs simples (c-à-d p inversion de bits) suivant le taux d erreurs de la ligne de transmission. La distance de Hamming nécessaire pour un code pour gérer ces p erreurs est : p + 1 si on veut pouvoir détecter la présence d erreurs. Si les «mots de code» ont une distance de Hamming minimale de p + 1 entre eux, alors il est impossible qu un «mot de code» subissant p inversions ou erreurs se transforme en un autre «mot de code». 2p + 1 si on veut pouvoir corriger la présence d erreurs. Dans ce cas là, on veut pouvoir retrouver le «mot de code» original, c-à-d celui qui se rapproche le plus du bloc d information reçu. 8.7 Exemple de code : le contrôle de parité Le controle de parité L algorithme se décrit de la manière suivante : À l émission : pour chaque séquence de i bits (i valant généralement 7 ou 8) on associe un bit de parité ; la valeur de ce bit de parité est choisie de telle manière que le nombre de bits à 1 dans la séquence des (i + 1) bits soient toujours pair. À la réception : on fait la somme des bits valant 1 de la séquence des i + 1 bits reçus ; si la somme est paire alors on considère qu il n y a pas eu d erreur de transmission ; si la somme est impaire alors il y a eut erreur de transmission et la séquence doit être retransmise. Exemple : soit la séquence sur 7 bits la somme est de 3 bits à 1, la séquence transmise est soit la séquence sur 7 bits la séquence transmise est Le «mot de code» recherché est celui qui est : le plus proche, c-à-d situé à une distance de Hamming inférieure ou égale au nombre d erreurs subies p (une inversion éloigne du «mot de code» original) ; unique! Il ne faut pas que l on soit proche de deux «mots de code» simultanément. Pour pouvoir faire de la correction, il faut que la distance de Hamming du code soit supérieure ou égale à 2p + 1! Limitation de ce code de détection d erreur La distance de Hamming de ce code de détection d erreur est de 2. Il faut en effet deux erreurs simples (inversion de bit) pour passer d un «mot de code» à un autre. Ce code ne peut donc détecter qu une seule erreur simple! De plus, si un nombre pair d erreurs simples survient, il est incapable de détecter une erreur! 8.8 Correction des erreurs : combien de bits sont suffisants? Nombre de bits nécessaires pour corriger une erreur Pour transmettre m bits d information, combien faut-il de bits de contrôle pour pouvoir corriger en cas d erreur le bloc d information lors de la réception : a. on transmet un «mot de code» contenant n bits, ce mot étant composé de m bits de données et de k bits de contrôle n = m + k b. pour les 2 m combinaisons possibles pour les données à transmettre, on peut associer n bloc d information qui résultent chacun de la modification d un bit du «mot de code» original. L ensemble de ces n blocs d information sont situés à une distance de Hamming de 1. c. on peut donc calculer qu il y a au moins 2 m (n + 1) blocs d information possible : les 2 m combinaisons possibles multiplié par (n + 1), c-à-d le «mot de code» plus ses n modifications ; d. on sait que le nombre maximal de combinaisons possibles pour le bloc d information est 2 n ; e. on obtient la relation suivante : 2 m (n + 1) 2 n f. en utilisant la relation n = m + k, on obtient finalement : 2 m (m + k + 1) 2 m+k, d où (m + k + 1) 2 k. À l aide de cette inégalité, on peut avoir une idée du nombre minimal de bits de contrôle nécessaires pour que l erreur simple soit corrigée. Exemple : m = 7 alors 8 + k 2 k ce qui donne k = 4 car m = 10 alors 11 + k 2 k ce qui donne k = 4 car m = 100 alors k 2 k ce qui donne k = 7 car m = 1000 alors k = 10 car Un code correcteur optimal pour une erreur simple Construction d un code de correction d erreur par la méthode de Hamming On considère une séquence de bits de données. Exemple : des caractères ASCII sur 7bits, il faut 4 bits de contrôle ; les «mots de code» seront des séquences de 11 bits. Pour cette séquence de bits : a. on numérote de gauche à droite la séquence de bits, en partant du rang 1 ; b. on réserve les bits ayant un rang correspondant à une puissance de 2 aux bits de contrôle (rang 1, 2, 4, 8, ) ; c. on réserve les autres bits de rang (3, 5, 6, 7, 9... ) aux bits de données. Exemple : a vaut , il s inscrit dans le «mot de code» en se répartissant sur les bits de rang réservés aux données, soit xx1x001x000 (les x sont les bits réservés aux contrôle) La valeur d un bit de contrôle est choisie de manière à ce qu elle vérifie la parité d une séquence de bits. Cette séquence de bits est déterminée de la manière suivante : pour chaque rang de bit (contrôle ou données), on décompose ce rang en somme de puissance de 2. Exemple : 1 = 1, 2 = 2, 3 = 1 + 2, 4 = 4, 5 = 1 + 4, 6 = 2 + 4, 7 = , 8 = 8, 9 = 1 + 8, 10 = 2 + 8, 11 = à partir de chaque décomposition obtenue, on détermine ce que chaque bit de contrôle vérifie, c-à-d quelle séquence de bits il vérifie. Cette séquence de bits est obtenue en sélectionnant le rang pour lequel le bit de contrôle apparait dans la décomposition. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

41 La méthode de Hamming sur un exemple Exemple de calcul de la valeur des bits de contrôle a vaut , soit xx1x001x000 (les x sont les bits réservés aux contrôle) le bit de contrôle de rang 8 apparait dans la décomposition des rangs 8, 9, 10 et 11. Pour le codage de a, on obtient xx1x le bit de contrôle de rang 4 apparait dans la décomposition des rangs 4, 5, 6, 7. Pour le codage de a, on obtient xx le bit de contrôle de rang 2 apparait dans la décomposition des rangs 2, 3, 6, 7, 10 et 11. Pour le codage de a, on obtient x le bit de contrôle de rang 1 apparait dans la décomposition des rangs 1, 3, 5, 7, 9, et 11. Pour le codage de a, on obtient Vérification et correction lors de la réception a. le récepteur vérifie un bit de contrôle de rang k ; b. si le bit est incorrect, il mémorise cette valeur k dans un compteur ; c. le récepteur passe au bit de contrôle de rang suivant 2k ; d. si de nouveau le bit est incorrect alors il additionne la valeur 2k au compteur. e. etc. Si à la fin du traitement de tous les bits de contrôle, le compteur n est pas vide, alors il contient le rang du bit qui a été modifié et on peut alors corriger la séquence. Exemple : codage de a , glissons une erreur : quand le récepteur vérifie : le bit de contrôle de rang 1 est incorrect! On met son rang dans le compteur! soit compteur = 1. le bit de contrôle de rang 2 est incorrect! On ajoute son rang, compteur = 3. le bit de contrôle de rang 4 est correct. le bit de contrôle de rang 8 est correct. L erreur s est donc glissée dans le bit ayant pour rang la valeur du compteur 3! 8.10 Le cas des erreurs en rafale Utilisation de la méthode de correction d erreur de Hamming Il est possible d utiliser la méthode de Hamming pour la correction des erreurs en rafale (altération d une séquence de bits). On considère une séquence de caractères (ici, «Hamming Code»). Cette séquence de caractères est interprétée comme une séquence de valeurs en ASCII. Pour chaque séquence de bits de chacun de ces caractères, on calcule la séquence binaire avec la méthode de Hamming. On obtient alors une table de k lignes, pour k caractères encodés. Cette table est transmise ensuite colonne par colonne. Si une rafale d au plus k bits se produit, alors au plus k lignes de la table sont altérées (1 bit erroné). En recomposant la table à l arrivée, il est alors possible de corriger la table s il y a eu des erreurs Autre code de détection d erreur : le CRC, «Cyclic Redundancy Check» Le CRC : utilise une valeur de vérification : «check» ; introduit de la redondance, «redundancy» (augmentation de la taille du message sans ajout d information) ; se base sur l utilisation des codes cycliques, «cyclic codes» ; est facile à implémenter de manière matérielle (intégration dans la carte réseau pour du «offload») ; est bien adapter à détecter des erreurs causées par du bruit lors de la transmission (erreurs en rafale). Présentation de l algorithme pour m-bits de données, l émetteur calcule une séquence de k-bits appelées FCS, «Frame Check Sequence» ; l émetteur transmet ensuite une trame composée des m + k bits ; ces m + k bits sont divisibles par un nombre de valeur prédeterminée connue de l émetteur et du récepteur ; lorsque le récepteur reçoit la trame composée des m + k bits, il divise ces m + k bits par le même nombre : s il n y a pas de reste alors la trame n a pas subie d erreur! Pour comprendre l opérations de division utilisée, il est nécessaire de considérer l arithmétique modulo 2. Arithmétique modulo 2 Cette arithmétique utilise des opérations binaires sans retenue : l addition et la soustraction correspondent à la même opération : le xor, c-à-d le «ou exclusif» = * Règle : la division de deux séquences binaires est possible si et seulement si elles sont de même longueur. Le reste est toujours de taille inférieure, en nombre de bits, à la taille du diviseur Les codes polynomiaux Codes de détection d erreurs à redondance cyclique (CRC) Ce sont des codes «polynomiaux» : ils ajoutent des bits dont les valeurs sont des combinaisons linéaires des bits de l information à transmettre. La séquence de bits b 1, b 2, b 3... b n est considérée comme un polynôme P (x) : P (x) = b 1 x n 1 + b 2 x n 2 + b 3 x n b n. Exemple : 1001 est équivalent à P (x) = x Le degré d un polynôme correspond à celui de son terme le plus élevé. Exemple : P (x) = x 3 + 1, deg(p ) = 3. À l émission, on réalise la division par un polynôme générateur G de degré r (contenant r + 1 termes) : a. on considère le polynôme M, correspondant au message à transmettre ; b. on calcule x r M, le décalage à gauche du message de r = deg(g) positions (taille maximale du reste de la division) ; c. on calcule la division de x r M par G : on obtient alors les polynômes Q, polynôme quotient, et R, polynôme reste de la division : x r M(x) = Q(x) G(x) + R(x) le polynôme R constitue la valeur du CRC. d. on transmets x r M(x) + R(x). À la réception, on réalise la division par le même polynôme générateur G : a. on divise le polynôme M reçu (informations + CRC) par le polynôme générateur G : si le reste obtenu est non nul, alors une erreur s est produite! si le reste obtenu est nul alors on est sûr qu il n y a pas eu d erreur de transmission. Dans le cas de la norme V41 du CCITT, pour une longueur de données de 260, 500, 980 ou 3860 bits, la probabilité de bonne réception est de 99,975% pour le polynôme générateur x 16 + x 12 + x Pour pouvoir employer cette méthode de détection des erreurs, l émetteur et le récepteur doivent se mettre d accord sur le polynôme générateur G(x) à employer = il est associé à la technologie et intégré dans la carte réseau. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

42 Codes polynomiaux Pour la détection d erreur à la réception, on divise de manière binaire la séquence de bits reçues par le même polynôme générateur. Si le reste de la division est nulle, pas d erreur de transmission. Exemple : 1OO11O1O1111 divisé par donne 00000! Propriétés des codes polynomiaux Soient les polynômes : M(x) : les données à transmettre ; M (x) : la trame reçue qui peut ou non contenir des erreurs ; T (x) : la trame à transmettre (les données + le FCS, 182 COMPUTER NETWORK «Frame check sequence») ; E(x) : les erreurs qui ont pu se produire. 3. This product is divided by P. Lors de la transmission, l émetteur! Equation calcule : x r M(x) = Q(x)G(x) + R(x) x r " Q M(x) R(x), ce polynôme est divisible par G(x), c-à-d que le reste de la division par G(x) est nul P! " 2 Comme l addition et la soustraction sont équivalente en base 2 sans retenue, on n M a que : x r M(x) R(x) 1 0 1= G(x)Q(x) = T (x). si des erreurs se sont produites lors de la transmission, alors 1 M (x) reçu est égale à T (x) + E(x), où E(x) est le polynôme correspondant aux erreurs de transmission, c-à-d 1 0 1que dans E(x) une puissance de x correspond à l inversion du bit de même rang dans M(x) Lors de la réception, le récepteur calcule le reste de 1 M 1 0 (x)/g(x), ou plutôt de (T (x) + E(x))/G(x) : Si T (x) est divisible par G(x), alors le récepteur1 calcule le0reste de E(x)/G(x). Si le reste est non nul, alors E(x) est non nul, il1 y 1 a donc eu 1 des erreurs! Si le reste est nul, alors cela veut dire que soit E(x) 1 0 est 1 1 nul 0 0soit il est multiple de G(x) et que l on ne peut pas détecter des erreurs Mais, si l on choisit correctement G(x) en fonction de la nature physique du support de transmission, on minimise les risques! transmitted Code polynomiaux : exemple d application À la réception " R 4. The remainder (R = 01110) is added to 2 n M to give T = , which is 5. If there are no errors, the receiver receives T intact. The received frame is divided by P. a. On divise les données reçues! par Equation le polynôme générateur G = : P! " Q " 2 n M + R " R b. on trouve que le reste vaut 0, il n y a donc pas eu d erreur lors de la transmission! 8.13 Code polynomiaux : exemple d application Soient : M = sur 10 bits ; G = sur 6 bits ; FCS, «Frame check sequence», ou R sur 5 bits (rappel : la division de deux séquences binaires est possible ssi elles sont de même longueur, donc le reste est au plus de dimension longeur(g) 1). Calcul du reste 182 COMPUTER NETWORK a. on multiplie M par 2 5, ce qui 3. réalise This product un décalage is divided à gauche by P. de 5 bits (on fait de la place pour le FCS) ; b. on divise ! par Equation : P! " Q " 2 n M " R c. on ajoute le reste R = The à M 2 remainder 5, ce qui(r donne = 01110) : is added to 2 n M to lesgive données T = , transmises. which is transmitted 5. If there are no errors, the receiver receives T intact. The received frame is divided by P Les codes polynomiaux : exemple de codes utilisés! Equation Exemples de polynômes générateurs " Q la méthode du bit de paritép correspond! à l utilisation du 0 1 polynôme générateur " 2x n M ; R CRC-CCITT = x 16 + x 12 + x CRC-12 = x 12 + x 11 + x 3 + x 2 + x + 1 pour 1 1 un0 codage d information sur 6bits, CRC-16 = x 16 + x 15 + x pour un codage 1 1 des 1 0 informations 1 0 sur 8 bits, utilisé par exemple dans le protocole HDLC Dans le cas d Ethernet, on utilise le CRC-32 : G(x) = x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x Propriétés des codes polynômiaux CRC-16 et CRC-CCITT Ils permettent de détecter les erreurs simples et doubles, 1 1 mais également 1 les erreurs en rafale de longueur inférieur ou égale à " R Pour des erreurs en rafale supérieur ou égale à 17, la probabilité de détection est de 99,997%! Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

43 8.15 Capacité des codes polynomiaux Pour pouvoir détecter une erreur il faut que le polynôme représentant cette erreur ne soit pas divisible par le polynôme générateur. Ou que le polynôme d erreur ne soit pas un multiple du polynôme générateur. Un code polynomial permet de : Détecter toutes les erreurs simples? Oui, si... Le polynôme d erreur est de la forme x i avec 1 < i < n (n le nombre de bits des données) ; Il faut donc que le polynôme générateur ne soit pas réduit à un seul terme (1 ou x ou x j ). Détecter les erreurs doubles? Oui, si... Le polynôme générateur possède un facteur irréductible de 3 termes, comme par exemple : G(x) = x 3 + x + 1 Autrement dit, il est composé au minimum de 3 termes. Détecter un nombre impair d erreur? Oui si... le polynôme générateur contient le facteur (x + 1) Détecter des rafales d erreurs? Oui... un code générateur de degré k, permet de détecter toutes les erreurs en rafale de longueur inférieure à k.?? The architecture of this circuit is best explained by first considering an example, which is illustrated in Figure 7.8. In this example, we have to use Message M = M(X) = X 9 + X 7 + X 3 + X Divisor P = P(X) = X 5 + X 4 + X Implémentation which were used earlier in the discussion. Part (a) of the figure shows the register implementation. The process begins with the shift register cleared (all zeros). The message, or dividend, is then entered, one bit at a time, starting with the most significant bit. Il est possible d implémenter de manière efficace les CRC : Exemple : M= , M(X) = x 9 + x 7 + x 3 + x et G = , G(X) = x 5 + x 4 + x il y a autant de registres que la taille du FCS, ou le degré de G ; il y a un «gate» pour chaque terme présent dans G, qui réalise un xor. Ce qui donne : DATA LINK LAYER 185 Fig. 7.8 (a) Shift-Register implementation C 4 C 3 C 2 C 1 C 0 C 4! C 3 C 4! C 1 C 4! Input Input Initial " Step # # Step # Message Step # to be Step # sent $ Step # Step # # Step # Step # Step # 1 % Step " Five Step # zeros Step # added $ Step # Step # 0 #% Step Fig. 7.8 (b) Circuit with shift registers for dividing by polynomial X 5 + X 4 + X Quelques définitions utilisées dans la transmission numérique Le BER, «Bit Error Rate» BER = Nombre de bits Nombre total de bits transmis mesuré pendant un intervalle de temps donné. C est une approximation de la probabilité d erreur indiqué par le «Taux d erreur» vu précédemment. Le FEC, «Forward Error Checking» Codage de l information permettant au récepteur de corriger l information reçue sans nécessiter de canal de communication inverse vers l émetteur (réception satellite par exemple) en ajoutant de l information redondante avec un ECC, «Error-Correcting Code». Exemple d ECC utilisé : Hamming(7,4) : pour tout groupe de 4 bits, 3 bits de parités sont ajoutés d où l appellation (7,4) ; C est le codage que l on a vu précédemment. Reed-Solomon : utilisé par exemple dans les CD-Roms, DVDs et disque dur (RAID 6) ; le codage (3,1) : pour corriger une erreur simple : Triplet received Interpreted as (error free) (error free) Part (b) is a table that shows the step-by-step operation as the input is applied one bit at a time. Each row of the table shows the values currently stored in the five shift-register elements. In addition, the row shows the values that appear at the outputs of the three exclusive or circuits. Finally, the row shows the value of the next input bit, which is available for the operation of the next step. 9 Protocole TCP, Transmission Control Protocol RFC 793 Du point de vue «Service» offert : service de transport fiable, en mode «connecté» ou «orienté connexion» : étapes d initialisation, d échanges et de terminaison ; garantie de remise des données au récepteur ; garantie de respect de l ordre de ces données ; autorise la gestion des données en flots d octets (flux, ou stream) ; échanges bidirectionnels simultanés («Full duplex»). Il offre un «mode connecté» simulé dans un réseau mode datagramme. Du point de vue de la mise en œuvre Because no feedback occurs until a 1-dividend bit arrives at the most significant end of the register, the first five operations are simple shifts. Whenever a 1 bit arrives at the left end of the register (C 4 ), a 1 is subtracted (exclusive or) from the second (C 3 ), fourth (C 1 ), and sixth (input) bits on the next shift. This is identical to the binary long-division process illustrated earlier. The process continues through all the bits of the message, plus five zero bits. These latter bits account for shifting M to be left five position to accommodate the FCS. After the last bit is processed, the shift register contains the remainder (FCS), which can then be transmitted. At the receiver, the same logic is used. As each bit of M arrives, it is inserted into the shift register. If there have been no errors, the shift register should contain the bit pattern for R at the conclusion of M. The transmitted bits or R now begin to arrive, and the effect is to zero out the register so that, at the conclusion of reception, the register contains all 0s. Une connexion correspond à : une paire de points ou d extrémités de connexion ou «socket» : chaque extrémité de connexion correspond à un TSAP : n port) ; chaque connexion est identifiée par : [TSAP client client, n port client ), TSAP serveur serveur, n port serveur )] Il n y a pas d autre identifiant (pas de numéro de circuit virtuel). la création de deux flots de données inverses et indépendants : A B et B A ; possibilité de terminer un flot dans un sens sans interrompre l autre ; une mise en œuvre en deux étapes : une ouverture passive : elle accepte une connexion entrante ; une ouverture active : elle demande l établissement de la connexion. Mutliplexage de plusieurs communications grâce à la notion de numéro de port. Attention netstat -n inet Connexions Internet actives (sans serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat tcp : :443 CLOSE_WAIT tcp : :80 ESTABLISHED TCP ne permet pas : le multicasting (multi diffusion) ; le broadcasting (la diffusion générale). Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

44 The OSI Reference Model 21 Windows are used to control the amount of outstanding, unacknowledged data segments. In this simplified example, both the sending and receiving machines are workstations. So, the size of the window controls how much information is transferred from one end In reality, this is not done in simple, small numbers but in the amount of bytes that can to the other. While some protocols quantify information by observing the number of packets, TCP/IP measures it by counting the number of bytes. be sent. As you can see in Figure 1.11, there are two window sizes one set to 1 and one set to 3. Acheminement d un flux de donnés découpé en segments numérotés Le mécanisme de fenêtre If a receiving host fails to receive all the bytes that it should acknowledge, FIGU R E 1.11 the host Windowing can improve the communication session by decreasing the window size. Acknowledgments Reliable data delivery ensures the integrity of a stream of data sent from one machine to the other through a fully functional data link. It guarantees that the data won t be duplicated or lost. This is achieved through something called positive acknowledgment with retransmission a technique that requires a receiving machine to communicate with the transmitting source by sending an acknowledgment message back to the sender when it receives data. The sender documents each segment it sends and waits for this acknowledgment before sending the next segment. When it sends a segment, the transmitting machine starts a timer and retransmits if it expires before an acknowledgment is returned from the receiving end. In Figure 1.12, the sending machine transmits segments 1, 2, and 3. The receiving node acknowledges it has received them by requesting segment 4. When it receives the acknowledgment, the sender then transmits segments 4, 5, and 6. If segment 5 doesn t make it to the destination, the receiving node acknowledges that event with a request for the segment to be resent. The sending machine will then resend the lost segment and wait for an acknowledgment, which it must receive in order to move on to the transmission of segment 7. Le mécanisme d acquittement positif avec retransmission When you ve configured a window size of 1, the sending machine waits for an acknowledgment 1.12 for each Transport data segment layer (measured reliable in delivery bytes) it transmits before transmitting another. FIGURE If you ve configured a window size of 3, it s allowed to transmit three bytes of data before an acknowledgment is received. Sender Send 1 Receiver Send 2 Send 3 Send 4 Send 5 Send 6 Connection lost! Ack 5 Send 5 48 Chapter 1 Internetworking u Ack 7 Ack 4 ne pas attendre un acquittement avant de continuer à émettre ; optimiser le temps d accès au réseau : la taille d un paquet dépend de la technologie du réseau pas du récepteur ; le réseau est rapide (beaucoup plus rapide que lorsque la taille du paquet a été choisie) ; l émetteur a remporté la compétition d accès au support ; le réseau lui est alloué ; le temps d allocation est supérieur au temps d émission d un paquet ; ne pas saturer le récepteur : le récepteur définit une taille de fenêtre ; garantie l absence de perte et de duplication des segments ; le récepteur envoie un acquittement en retour à l émetteur lorsqu il reçoit un segment ; l émetteur : envoie un segment et attend l acquittement avant d envoyer le suivant ; lors de l envoi, un compte à rebours démarre : s il expire avant la réception de l acquittement, le segment est renvoyé ; Si on combine avec le mécanisme de fenêtre : l émetteur envoie plusieurs segments suivant la taille de la fenêtre ; le récepteur envoie un acquittement demandant le segment suivant de tous ceux de numéros consécutifs qu il a bien reçu. 9.1 TCP : Segmentation Segmentation Les données transmises à TCP constituent un flot d octets de longueur variable. La transmission de ces données est bufférisée (mises dans un tampon) : les données courtes à envoyer et reçues sont bufférisée pour améliorer la communication : à l envoi : améliorer le taux d occupation du réseau ; à la réception : avertir/réveiller l application que lorsqu il y a un volume suffisant de données à traiter ; les données à envoyer, sont fractionnées en fragment de taille optimale pour TCP, appelés «segment» ; Cette fragmentation peut être contrôlée ou indépendante de l application. chaque segment est émis dans un datagramme IP : Application Slice into TCP segments OSI Layer 4/5: TCP OSI Layer 3: IP From application: stream of bytes Packetize into IP packets TCP TCP hdr payload Du point de la programmation socket : Les données de l utilisateur passe au travers de la socket et sont segmentées automatiquement. IP hdr TCP hdr TCP payload socket door application writes data TCP send buffer Network To application: stream of bytes Concatenate to the byte stream segment IP hdr TCP hdr TCP TCP hdr payload Unwrap TCP segments TCP payload application reads data TCP receive buffer socket door Encapsulation du segment TCP FIGURE 1.28 Data encapsulation Pour généraliser le traitement des différentes couches, on parle de PDU, «Protocol Data Units». Application PDU Presentation TCP header IP header Upper layer data Upper layer data Data Session Transport Network Segment Packet TCP : réémission & acquittement Gestion des erreurs TCP garantit l arrivée des données, en cas de perte les deux extrémités sont prévenues : utilisation d un mécanisme d acquittement : lorsque la source S envoie un message M i vers une destination D, S attend un acquittement A i de D avant d émettre le message M i+1. utilisation d un mécanisme de réémission temporisée, timer ou compte à rebours : si l acquittement A i ne parvient pas à S, S considère au bout d un certain temps que M i est perdu et réémet M i. LLC header Data FCS Data Link Frame MAC header Data FCS Physical Bits Dans la suite des transparents, le temps d attente avant réémission automatique est appelé RTO, «Retransmission TimeOut», et il est calculé en fonction du RTT d un segment (temps de transmission du segment+temps de réception de l acquittement). Each segment is then handed to the Network layer for network addressing and routing through Cours the «internetwork. Réseaux Avancés Logical I» addressing P-F. Bonnefoi (for example, IP) is used to get each segment 12 décembre to the correct network. The Network layer protocol adds a control header to the segment handed down from the Transport layer, and what you have now is called a packet or data-

45 TCP : la fenêtre glissante, sliding window Contrôle de flux TCP utilise un mécanisme de fenêtre pour faire du contrôle de flux : Pourquoi? La technique basée sur l acquittement simple pénalise les performances en faisant baisser le taux d occupation du réseau : choisir la taille d un segment adaptée à la MTU du réseau ; attendre la réception d un acquittement avant d émettre un nouveau segment ; c-à-d l envoi d un seul segment par RTT! Comment? La taille T de la fenêtre : correspond à une taille en octets et non à une taille en nombre de segments ; est variable au cours de la communication ; correspond à la capacité de la mémoire tampon de réception ; est défini pour chaque interlocuteur. Une fenêtre de taille T autorise l émission d au plus n segments (dont la somme des tailles < T), sans attendre l acquittement de chaque segment envoyé, avant de ne plus pouvoir émettre. Amélioration supplémentaire : acquitter plusieurs messages reçus en un seul acquittement. On parle d acquittement cumulatif ou d acquittement retardés, «delayed ACKs». Bufférisation vs Application TCP sender s byte stream Sent & acked LastByteAcked [ Sending Application ] [ Receiving Application ] Allowed to send FlightSize (Buffered in send buffer) LastByteSent Increasing sequence num. Delivered to application Gap in recv d data NextByteExpected Increasing sequence num. Buffered in RcvBuffer LastByteRecvd TCP receiver s byte stream L émetteur dispose d un buffer d envoi dans lequel il stocke les données envoyées par l application (si le buffer est plein, l application est bloquée dans son ordre d envoi) ; L émetteur envoi des données entre le dernier octet acquitté, «LastByteAcked» et un octet, le «LastByteSent» (la taille de l envoi doit être inférieure à la taille de la fenêtre d autorisation, indiquée par «Allowed to send») ; On appelle les données transmises des «données en vol», «data in flight», c-à-d qu elles sont en train de circuler dans le réseau. Le récepteur dispose d un buffer de réception dans lequel il range les données reçues depuis le réseau ; Le récepteur range les données qu il reçoit dans le buffer aux emplacements indiqués par l «offset» du segment reçu : il peut y avoir des trous, «gap in received data». Le récepteur ne transmet à l application que les données sans trou, indiquées par le «NextByte Expected». S il n y a pas suffisamment de données, l application est bloquée dans son ordre de réception. 294 PART II Core Protocols TCP : la fenêtre glissante vs bufférisation Fenêtre glissante Data sent and acknowledged Sliding Window Bufférisation FIGURE 11.5 TCP sliding window. Data sent and waiting for acknowledgment (Each integer represents a segment of hundreds or thousands of bytes) Packet departs source Packet arrives at buffer Flow Control and Congestion Control When flow control is used as a form Time of in congestion buffer control for the whole network, the Packet removed from buffer network nodes themselves are the receivers and try to limit the amount of data that senders dump into the network. Gap in playback But now there is a problem. 0 How can 5 routers tell 10 the hosts 15 using TCP (which 20 is an end-to-end protocol) that there is congestion Time on the (sec) network? Routers are not supposed to play around with the TCP headers in transit packets (routers have enough to do), but they are allowed to play around with IP headers (and often have to). Routers know when a network is congested (they are the first to know), so they can easily Fig. flip some Smoothing bits the IPv4 theand output IPv6 headers streamof by the buffering packets they packets. route. These bits are in the TOS (IPv4) and Flow (IPv6) fields, and the hosts can read these bits and react to them by adjusting windows when necessary. RFC 3168 establishes support for these bits in the IP and TCP headers. However, support for explicit congestion notification in TCP and IP routers is not mandatory, and rare to nonexistent in routers today. Congestion in routers is usually indicated by dropped packets. TCP : fenêtre glissante PERFORMANCE ALGORITHMS Data to be sent Data to be sent By now, it should be apparent that TCP is not an easy protocol to explore and understand. This complexity of TCP is easy enough to understand: Underlying network should be fast and simple, IP transport should be fast and simple as well, but unless every application builds in complex mechanisms to ensure smooth data flow across the network, the complexity of networking must be added to TCP. This is just as well, as the data transfer concern is end to end, and TCP is the host-to-host layer, the last bastion of the network shielding the application from network operations. Le récepteur contrôle : la taille de la fenêtre (> à un segment) : plus petite ou plus grande suivant sa capacité de traitement ; l acquittement des données reçues contigües : il fait glisser la fenêtre. L émetteur est autorisé à envoyer de nouveaux segments lorsque la fenêtre glisse. Elle permet de : «lisser» le débit en sortie ; gérer les trous, gaps.?? Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

46 TCP : problème de la fenêtre stupide Silly Window Syndrome Observation Solution de Clarke Il faut des algorithmes empiriques pour gérer les mécanismes de contrôle de TCP. attendre que l espace libre sur le récepteur soit suffisamment grand avant de prévenir l émetteur... TCP : cas d exception Transmission sans attente ou non bufférisées l application peut demander que ses données soient transmises immédiatement même si le tampon d envoi n est pas plein (traversée du tampon d envoi). Elles sont appelées données «poussées», Push, par exemple dans le cas des protocoles lignes par lignes (SMTP par exemple). l arrivée de ces données est notifiée sans attendre à l application réceptrice (traversée du tampon de réception). Transmission de données urgentes et hors communication Le protocole TCP permet l envoi de contrôle et de données au travers de la même communication. Ces données de contrôle : sont à prendre en compte immédiatement par l application réceptrice Urgent ; ne correspondent pas à des données «normales» de la communication (des données de contrôle, par exemple, comme celles utilisées pour avertir d un problème sans nécessité d établir une nouvelle connexion pour les transmettre) ; Elles sont appelées «Out of Band», elles génèrent un signal Unix sur l application réceptrice. Comment est-ce possible? En utilisant le réseau datagramme sous-jacent : les datagrammes arrivent en même temps, qu ils contiennent des données du flux ou bien des données «out-of-band»! 9.2 TCP : le format du segment H e a d e r Header Length 1 byte Source Port RESV 1 byte Sequence Number Acknowledgment Number E E U A P R S F C C R C S S Y I N N G K H T N N TCP Checksum DATA (application message) 32 bits actual data in the received segment, the acknowledgment number increments by 1. (Every byte in TCP is still counted, but that s not all that contributes to the acquittement sequence number field.) cumulatif : il peut correspondre à plusieurs segments déjà reçus. Header Taillelength The par défaut TCP du header segment length in : 4-byte 536units. octets de données + 20 octets d en-tête : 556 octets. Reserved Four bits are reserved for future use. CHAPTER 11 Transmission Control Protocol byte 1 byte Destination Port Window Size Urgent Pointer Options Field (variable length, maximum 40 bytes, 0 padded to 4-byte multiple) FIGURE 11.2 Acknowledgement number : The TCP header fi elds. Note that some fi elds are a single bit wide, and others, like the options fi eld, can be up to 40 bytes (320 bits) long. ECN flags The two explicit congestion notification (ECN) bits are used to tell the host when the network is experiencing congestion and send windows should be adjusted. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre URG, ACK, PSH, RST, SYN, FIN These six single-bit fields (Urgent, Acknowledgment, Push, Reset, Sync, and Final) give the receiver more information on how to process the TCP segment. Table 11.1 shows their functions. Window size The size of receive window that the destination host has set. This Port source et destination : sur 16 bits identifie le processus associé et définie le TSAP. Sequence number : exprimé sur 32 bits, déplacement ou offset en octet à partir d une valeur initiale, ISN, «Initial Sequence Number» ; positionne le segment dans le flux à recomposer ; numéro de séquence du prochain segment attendu ; acquitter les octets précédemment reçus (ceux de séquence < à celle du prochain segment demandé) ; TCP : le format du segment H e a d e r Header Length 1 byte Source Port RESV 1 byte Sequence Number Acknowledgment Number E E U A P R S F C C R C S S Y I N N G K H T N N TCP Checksum CHAPTER 11 Transmission Control Protocol 283 DATA (application message) 1 byte 1 byte Destination Port Window Size Urgent Pointer Options Field (variable length, maximum 40 bytes, 0 padded to 4-byte multiple) 32 bits Le FIGURE rôle 11.2 des différents bits : The TCP header fields. Note that some fields are a single bit wide, and others, like the options field, can be up to 40 bytes (320 bits) long. Header length The TCP header length in 4-byte units. Reserved Four FIN l émetteur bits are àreserved fini d émettre for future use. (permet de clore un sens de communication). ECN flags The two explicit congestion notification (ECN) bits are used to tell the host when the network is experiencing congestion and send windows should be adjusted. URG, ACK, PSH, RST, SYN, FIN These six single-bit fields (Urgent, Acknowledgment, Push, Reset, Sync, and Final) give the receiver more information on how to process the TCP segment. Table 11.1 shows their functions. Window size The size of receive window that the destination host has set. This header length ou «Data Offset» : sur 4bits, indique la taille en multiple de 4 octets. RESV : réservé pour un usage ultérieur sur 4bit ; ECN, Explicit Congestion Notification : sur 2bits, avertir le récepteur d un état de début de congestion du réseau ; URG, ACK, PSH, RST, SYN, FIN : 6 bits TCP checksum : total de contrôle sur 16bits pour assurer la validité de l en-tête et des données. URG indique des données urgentes indiquée par le «Urgent Pointer» ; ACK accusé de réception présent dans le «Acknowledgement Number» ; PSH actual ce data segment in the received doitsegment, être pris the acknowledgment en compte sans number bufférisation increments ; by 1. (Every byte TCP is still counted, but that s not all that contributes to RST the sequence réinitialiser number field.) la connexion (problème de désynchronisation) ; SYN synchronisation des numéros de séquence pour initialiser une connexion ;

47 TCP : le format du segment Window size : sur 16bits, utilisé pour le contrôle de flux par fenêtre glissante. il indique le nombre d octets que l émetteur de ce segment est prêt à recevoir, ce qui permet à son interlocuteur d augmenter ou de diminuer le nombre de segments qu il peut transmettre (varie pendant la communication). Urgent pointer : permet d indiquer le rang du premier octet des données normales (les données urgentes sont en tête du segment) ; ce rang est indiqué par rapport au segment courant (et pas du flux). l utilisation de ce champ est conjointe à celle du bit URG. Received byte stream, stored in Receive Buffer TCP : Calcul de la somme de contrôle Dans le segment TCP, un total de contrôle est calculé sur : entête du segment TCP ; données du segment ; pseudo entête du datagramme IP : Méthode Received TCP segment sequence number urgent data non-urgent data seq. num + urg. ptr = Last Byte of Urgent Data urgent data pointer options : la MSS, Maximum Segment Size est d indiquer lors de l établissement de la connexion, la taille maximale du segment TCP que l on peut envoyer. Une bonne taille est choisie en accord avec le MTU du réseau employé. la WSF, Window Scaling Factor, sur 3 octets, définie un coefficient multiplicateur pour la donnée de la taille de fenêtre > 65535,... a. on additionne en complément à 1 tous les mots de 16 bits (complété par un octet nul dans le cas où le nombre d octets total est impair) b. on prend le complément à 1 de cette somme. Lors de la réception le calcul est réalisé sur le segment entier (total de contrôle compris) et l on doit obtenir zéro si le segment est correct. 9.3 TCP : établissement d une connexion Technique du Piggybacking ou mode en superposition L acquittement d un paquet paquet de A B, peut être transmis dans un paquet allant de B A. La communication pouvant être bidirectionnel simultanée, elle peut nécessiter la transmission d information de A B et de B A simultanément. L établissement de la connexion, ou handshake se fait en 3 étapes ; correspond à une demande d ouverture de la part de chaque interlocuteur ; permet de synchroniser l ISN, «Initial Sequence Number», la valeur initiale du numéro de séquence : pour le connect() SYN=1 & ACK=0 ; pour le accept() SYN=1 & ACK=1. Un SYN unique indique une demande de connexion. Avec l outil «tcpdump» : [S] : indique un SYN ; [S.] : indique un SYN/ACK ; [.] : indique un ACK. connexion de : port vers port 25. sudo tcpdump -c 3 -n tcp and port 25 listening on eth0, link-type EN10MB (Ethernet), capture size bytes 22:07: IP > : Flags [S], seq , win 14600, options [mss 1460,sackOK,TS val ecr 0], length 0 22:07: IP > : Flags [S.], seq , ack , win 5792, options [mss 1460,sackOK,TS val ecr ], length 0 22:07: IP > : Flags [.], ack 1, win 14600, options [nop,nop,ts val ecr ], length 0 3 packets captured 0 packets dropped by kernel TCP : la connexion classique vs simultanée Connexion classique N TCP A TCP B 1. CLOSED LISTEN 2. SYN-SENT > <SEQ=100><CTL=SYN> > SYN-RECEIVED 3. ESTABLISHED < <SEQ=300><ACK=101><CTL=SYN,ACK> < SYN-RECEIVED 4. ESTABLISHED > <SEQ=101><ACK=301><CTL=ACK> > ESTABLISHED 5. ESTABLISHED > <SEQ=101><ACK=301><CTL=ACK><DATA> > ESTABLISHED CTL, «contrôle», indique les bits du segment TCP sélectionnées. Connexion simultanée TCP A TCP B 1. CLOSED CLOSED 2. SYN-SENT > <SEQ=100><CTL=SYN> SYN-RECEIVED < <SEQ=300><CTL=SYN> < SYN-SENT <SEQ=100><CTL=SYN> > SYN-RECEIVED 5. SYN-RECEIVED > <SEQ=100><ACK=301><CTL=SYN,ACK> ESTABLISHED < <SEQ=300><ACK=101><CTL=SYN,ACK> < SYN-RECEIVED <SEQ=101><ACK=301><CTL=ACK> > ESTABLISHED La connexion simultanée est difficile à mettre en œuvre, et elle est rarement implémentée dans les piles TCP/IP. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

48 9.4 TCP : la fermeture Déconnexion Client Client State ESTABLISHED #1 Receive Close signal from App, FIN Send FIN FIN-WAIT-1 #2 Wait for ACK and ACK FIN from Server Receive ACK FIN-WAIT-2 #1 Wait for Server FIN FIN Receive FIN, #2 Send ACK TIME-WAIT ACK Server Server State ESTABLISHED Normal Operation Receive FIN, Send ACK, Tell App to Close CLOSE-WAIT (Wait for App) App is ready to Close, Send FIN LAST-ACK Wait for ACK to FIN Receive ACK TCP A TCP B 1. ESTABLISHED ESTABLISHED 2. (Close) FIN-WAIT-1 > <SEQ=100><ACK=300><CTL=FIN,ACK> > CLOSE-WAIT 3. FIN-WAIT-2 < <SEQ=300><ACK=101><CTL=ACK> < CLOSE-WAIT 4. (Close) TIME-WAIT < <SEQ=300><ACK=101><CTL=FIN,ACK> < LAST-ACK 5. TIME-WAIT > <SEQ=101><ACK=301><CTL=ACK> > CLOSED 6. (2 Maximum Segment Lifetime) CLOSED 9.5 TCP : l automate de fonctionnement Timeout after two maximum segment lifetimes (2*MSL) CLOSED Passive open Close Timeout/RST LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK SYN RCVD Close Active open/syn SYN SENT CLOSED Wait for Double Maximum Segment Life (MSL) time Even when the 2 nd ACK is lost, the connection will be closed CLOSED Close/FIN ACK ESTABLISHED SYN + ACK/ACK ACK Le MSL, «Maximum Segment Lifetime» : est choisie en fonction de l expérimentation, permet d éviter de prendre en compte des segments d une ancienne connexion dans une nouvelle connexion (segment retardés dans le réseau). en général choisie à 30s. FIN WAIT 1 ACK FIN WAIT 2 Close/FIN ACK FIN + ACK/ACK CLOSING FIN/ACK CLOSE WAIT Close/FIN LAST ACK Déconnexion rapide ACK On utilise une connexion «abrupte» avec le RST : le serveur envoie un FIN au client ; le client envoie un ACK, puis un RST : on évite le temps d attente de fin de connexion. FIN/ACK TIME WAIT TCP : l automate de communication expliqué timeout / send:rst SYN_RCVD Client Appl: close / send: FIN FIN_WAIT_1 rcv: ACK / Appl:passive open / send:<nothing> rcv:syn; / send:syn,ack send: <nothing> FIN_WAIT_2 rcv:rst / send:<nothing> rcv:ack / Send: <nothing> Appl:close / send:fin rcv: FIN / send: ACK rcv:fin,ack / send:ack rcv: FIN / send: ACK active close CLOSED LISTEN passive open rcv: SYN / close send:syn, ACK simultaneous open ESTABLISHED data transfer state Appl: send data / Send:SYN rcv:syn,ack / send:ack CLOSING rcv: ACK / send: <nothing> TIME_WAIT 2MSL timeout Appl: active open / send: SYN rcv: FIN / send: ACK MSL (Maximum Segment Lifetime) 2 minutes recommended typically 30 seconds used SYN_SENT active open Server CLOSE_WAIT AppL:close / send:fin LAST_ACK passive close normal transition for client normal transition for server Appl -- state transition take when application issues operation Appl:close or timeout / reset Timeout after 2 MSL rcv: ACK / send: <nothing> 9.6 TCP : le RST Gestion de la réception d un ancien datagramme avec SYN TCP A TCP B 1. CLOSED LISTEN 2. SYN-SENT > <SEQ=100><CTL=SYN>... pas encore reçu 3. (duplication)... <SEQ=90><CTL=SYN> > SYN-RECEIVED 4. SYN-SENT < <SEQ=300><ACK=91><CTL=SYN,ACK> < SYN-RECEIVED 5. SYN-SENT > <SEQ=91><CTL=RST> > LISTEN <SEQ=100><CTL=SYN> > SYN-RECEIVED 7. SYN-SENT < <SEQ=400><ACK=101><CTL=SYN,ACK> < SYN-RECEIVED 8. ESTABLISHED > <SEQ=101><ACK=401><CTL=ACK> > ESTABLISHED Gestion du RST Le bit RST demande la réinitialisation de la communication. Il est émis lors de la réception d un segment qui ne correspond pas à celui attendu par une connexion ouverte : Si la connexion n existe pas, alors un RST est envoyé lors de la réception de tout segment sur la connexion (sauf si ce segment est déjà un RST). Les paquets SYN envoyés à une connexion inexistante sont rejetés par ce moyen. Cela permet de gérer le cas ou la machine a rebooté alors que le correspondant continue a communiquer. Si la connexion n est pas synchronisée (LISTEN, SYN- SENT, SYN-RECEIVED) et le segment entrant acquitte quelque chose qui n a pas été envoyé (ACK mauvais) un segment RST est envoyé. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

49 9.7 TCP : Améliorations par l utilisation d options MSS, Maximum Segment Size : la taille maximale des données contenues dans un segment (sans tenir compte de l entête du segment). Cette option est transmise lors de l établissement de la connexion Il peut y avoir une différence entre la valeur utilisée pour les deux sens de communication. Window Scale Factor, qui permet de définir un coefficient multiplicateur pour la fenêtre glissante. Cette option permet de définir des tailles de fenêtre supérieure à 16bits : on décale à gauche du coef. indiqué (on multiplie par 2 coef ) : Cette option est très utile pour les connexions très rapide (Gbits). Pour la désactiver sous GNU/Linux : $ sudo sysctl -w net.ipv4.tcp_window_scaling=0 Selective Acknowledgment Permitted, ou SACK, qui permet d acquitter des segments non contigües (RFC 2018) Cette option est négociée à l établissement de la connexion Dans le champs options peut être indiqué une liste de (adresse début, adresse fin) de données reçues mais non encore acquittées Timestamp : permet de calculer le RTT d un segment (RFC1072) : il existe deux champs contenant un timestamp : «Echo», «Echo reply» : l émetteur envoie un segment avec un timestamp par rapport à sa propre horloge ; le récepteur lui renvoie ce timestamp dans le segment réponse : l émetteur connait le RTT. Autres améliorations Keep-Alive, correspond à l envoi de plusieurs segments de taille nulle ou déjà acquitté. Cela permet pour les connexions inactives où aucun échange n a lieu. «garder en vie» la connexion en évitant qu un routeur réalisant du filtrage, «firewall» supprime la connexion du fait de son inactivité ; de tester la présence de l interlocuteur : sans réponse, on mettra fin à la connexion. TCP : mode interactif Le transfert de données de TCP est de deux types : interactif dans lequel chaque segment transporte très peu d octets, voire un seul ; en masse où chaque segment transporte un maximum d octets. Exemple du protocole telnet, remplacé par le protocole SSH bytes back to the client) using 1000-byte segments, but only to make the sequence numbers and acknowledgments easier to follow. The whole file is smaller than the TCP : une communication complète CLIENT Active OPEN OPEN Data Transfer SEQ and ACK (Transfer continues...) Connection Release CLOSING WAIT! FIGURE 11.3 Client Server File Transfer Using 1000-byte Segments SYN SEQ (ISN) 2000 WIN 5840 MSS (OPT)1460 SYN SEQ (ISN) 4000 WIN 8760 MSS (OPT)1460 ACK SEQ 2001 WIN 5840 ACK 4001 SEQ 2001 ACK 4001 SEQ 3001 SEQ 4001 SEQ 5001 SEQ 4001 ACK 3001 (no data). ACK 4001 ACK 4001 ACK 4001 ACK 6001 FIN SEQ 4001 ACK ACK SEQ ACK 4002 FIN SEQ ACK 4002 ACK SEQ 4002 ACK SERVER Passive OPEN OPEN 3-way Handshake Complete (sends 1000 bytes back) (3000 bytes of window full) CLOSING WAIT! Client server interaction with TCP, showing the three connection phases of setup, data transfer, and release (disconnect). TCP : calcul des timers de retransmission Comment choisir la durée du «timeout»? plus long qu un RTT, mais le RTT varie dynamiquement ; si trop court : risque de retransmettre des segments pour rien ; si trop long : réaction trop lente aux pertes de segments. timeout RTT A B A B segment0 pkt0 ack1 Duplicate, segment dupliqué ignoré timeout RTT segment0 X lost segment0 ack1 L utilisateur dans une session telnet envoie la commande date : a. chaque caractère est transmis puis acquitté :c est son acquittement qui est affiché à l utilisateur, «echo» b. en réalité TCP transmet l écho en même temps que l acquittement. c. on utilise l algorithme de Nagle (RFC 896) utilisant une bufférisation légère : si l utilisateur tape vite on mémorise avant d envoyer jusqu à un retour à la ligne \n (utile pour ne pas saturer le réseau avec des segments ne contenant qu un seul octet). Comment évaluer le RTT? Temps Timeout trop court se traduit par un timeout prématuré Transmission non nécessaire! Gaspillage de la capacité (bandwidth) Timeout trop long Utilisation insuffisante de la capacité (bandwidth) le «samplertt» ou «RTT échantillonné» : temps mesuré entre l envoi d un segment et la réception de son acquittement ; le «samplertt» varie : il faut «lisser» la mesure : faire la moyenne, RTT moyen ou EstimatedRT T, sur plusieurs mesures et pas seulement utiliser la dernière : EstimatedRT T = (1 α) EstimatedRT T + α SampleRT T avec 0 < α < 1 α proche de 0 : insensible aux variations rapides α proche de 1 : très sensible aux variations rapides Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

50 TCP : calcul des timers La mesure du RTT EstimatedRT T = (1 α) EstimatedRT T + α SampleRT T 350 Exemple : EstimatedRT T = 250ms SampleRT T = 70ms 300 α = Calcul : EstimatedRT T = ( ) = = 227.5ms 87, 5% de poids au EstimatedRT T 12, 5% de poids au SampleRT T Ce calcul permet de «lisser» les mesures ; obtenir un graphe similaire à celui donné à droite. Calcul du temporisateur, timeout RTT (milliseconds) RTT: gaia.cs.umass.edu to fantasia.eurecom.fr SampleRTT time (seconnds) Estimated RTT calcule la valeur du temporisateur en fonction de EstimatedRT T plus une marge de protection : forte variation de EstimatedRT T = marge de protection plus grande ; mesurer la déviation entre le SampleRT T et le EstimatedRT T : le DevRT T : DevRT T = (1 β) DevRT T + β SampleRT T EstimatedRT T, où β = 0, 25 Ce qui donne au final : T imeoutinterval = EstimatedRT T + 4 DevRT T TCP : calcul des timers Calcul du RTO, «Retransmission Timeout», RFC 2988 Chaque fois qu un segment contenant des données est envoyé (y compris pour une retransmission), un timer doit être déclenché d une durée égale au RTO calculé ; lorsqu un ACK est reçu demandant l envoi de nouvelles données : redémarrer le timer sur la durée du RTO ; lorsqu un timer expire : retransmettre les premiers segments qui n ont pas été acquittés par le récepteur ; augmenter le RTO : RT O = RT O 2, on appelle cette opération : timer backoff ; redémarrer le timer avec la nouvelle valeur de RTO. En résumé : quand un ACK est reçu, on calcul le RTO avec T imeoutinterval = EstimatedRT T +4 DevRT T quand un timeout se produit, on modifie le RTO : RT O = RT O 2 lorsque toutes les données envoyées ont été acquittées, il faut arrêter le timer ; Pour le calcul des SampleRT T : Constat : en cas de retransmission d un segment, l émetteur ne peut savoir si l acquittement s adresse au segment initial ou retransmis (acquittements ambigüs) RTT ne peut donc être calculé correctement TCP ne doit pas mettre à jour le RTT pour les segments retransmis Sauf si l option Timestamp a été utilisée dans le segment. TCP : les scenarii de retransmission timeout Offset = 100 Host A Seq=92, 8 bytes data X loss Host B ACK=100 Seq=92, 8 bytes data ACK=100 time lost ACK scenario Offset = 100 Offset = 120 Offset = 120 Seq=92 timeout Seq=92 timeout time Host A Seq=100, 20 bytes data ACK=100 Host B Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data ACK=120 premature timeout Offset = 120 timeout Host A Seq=92, 8 bytes data X loss Host B Seq=100, 20 bytes data ACK=120 ACK=100 time Cumulative ACK scenario le ACK se perd et le RTO expire ; le RTO expire avant la réception des ACKs ; un ACK se perd mais il devient inutile car un nouveau ACK est envoyé et englobe celui perdu. Implémentation des timers de retransmission En théorie, il est plus simple de gérer un timer de retransmission par segment envoyé. En pratique, la plupart des implémentations utilise un seul timer par connexion TCP (RFC 2988). Offset = 120 timeout time Host A 9.8 TCP : détection de l entrée en congestion du réseau Rapport avec le contrôle de flux? Host B Le contrôle de flux ne gère que la capacité du récepteur à traiter les segments reçus. Ce contrôle de flux utilise un mécanisme de fenêtre. Problème Seq=92, 8 bytes data Seq=100, 20 bytes data le réseau peut être en situation de congestion indépendamment de la situation de l émetteur et du récepteur ; le récepteur et l émetteur doivent détecter cette situation : la perte d un paquet due à une erreur matérielle est rare ; elle doit être due à une congestion du réseau connaissance! des timers servent à réémettre un paquet perdu un timer expiré indique une congestion! Image du seau d eau : le contrôle de flux sert à adapter le débit du robinet à la taille du seau, mais la congestion fait déborder l entonnoir (perte de paquets) même si la taille du seau est grande! ACK=120 On Windows systems Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

51 TCP : contrôle de la congestion Comment gérer une situation de congestion? découvrir la congestion : prendre en compte les pertes de segments situation de congestion faible : réception de 3 ACKs dupliqués (des paquets arrivent encore à circuler) ; situation de congestion forte : expiration d un timer, «timeout» limiter le débit : utiliser une nouvelle fenêtre d autorisation d émission : la fenêtre de congestion, «congestion window» ; la taille de cette fenêtre : CongW in = w MSS octets, où w varie en fonction de l état perçu du réseau. fonctionnement : La fenêtre réception, RcvW indow, & la fenêtre congestion déterminent la quantité d octets à émettre ; L émetteur envoie au plus une taille t de données, telle que t < min(congw in, RcvW indow) Exemple : Le récepteur indique «Autorisation d envoyer 8ko»,RcvW indow = 8ko Si l émetteur dispose d une CongW in = 4ko, il envoie au plus 4ko de données ; Si l émetteur dispose d une CongW in = 32ko, il envoie au plus 8ko de données : En contrôle de flux, c est le récepteur qui contrôle, en contrôle de congestion, c est l émetteur. choisir un algorithme pour faire évoluer la taille de la CongW indow : AIMD, «Additive-Increase, Multiplicative-Decrease» ; «Slow Start» ; gestion des pertes de segments : TCP Tahoe ; TCP Reno ; Autres ; TCP : contrôle de la congestion AIMD, «Additive-Increase, Multiplicative-Decrease» incrémenter le débit de transmission, c-à-d la taille de la CongW indow, de manière linéaire jusqu à une perte ; «additive increase» : augmenter la taille de CongW indow de 1 MSS à chaque RTT, jusqu à une perte ou que l on atteigne la taille de la RcvW indow ; «multiplicative decrease» : diviser par deux la taille de la CongW indow à chaque perte (parce que l effet de la congestion est exponentiel) ; On «probe» la capacité de la ligne de transmission et on obtient un graphe en dent de scie. Le débit initial est faible au démarrage : Exemple : À l établissement de la connexion : CongW indow = 1MSS MSS = 500 octets, RT T = 200ms CongW indow débit = RT T octets/seconde, débit initial = 25Ko par seconde. Le débit initial est trop faible, il faut changer la manière d augmenter la taille de la fenêtre. Nouvelle propostion : le «Slow Start» avec accélération rapide Deux phases : a. démarrer lentement, «slow start» et augmenter exponentiellement la CongW indow ; b. éviter la congestion, «congestion avoidance» et augmenter la CongW indow linéairement. TCP : contrôle de la congestion Fonctionnement du mode «Slow Start» Hôte A Hôte B on envoie le premier segment : s il est acquitté avant expiration du timer, CongW in = CongW in + 1MSS ; on envoie le second segment : s il est acquitté, on incrémente la taille de 1, ce qui équivaut à doubler la taille de CongW in à chaque RTT. on continue, ainsi, à doubler la taille de CongW in à chaque RTT, jusqu à : avoir une perte de segment (on réagira comme en mode «congestion avoidance») ; atteindre une taille de n segments, seuil appelé ssthresh ; on passe en mode «congestion avoidance» (on cherche à «éviter» la temps congestion). Résumé : aussi longtemps que l émetteur reçoit des ACKs non dupliqués on continue à incrémenter la taille de la fenêtre de congestion jusqu à la limite ssthresh et on passe en mode «congestion avoidance» Fonctionnement du mode «congestion avoidance» RTT un segment deux segments quatre segments L idée de ce mode est de repasser à l AIMD et de choisir un comportement lors de la perte d un segment : Il existe différentes méthodes pour réagir à la perte d un segment : TCP Tahoe : pas de distinction entre situation de congestion faible ou forte (3 ACKs dupliqués ou timeout) ; ssthresh =CongWindow/2 («Slow Start threshold») ; CongW indow = 1MSS ; on effectue un «fast-retransmit» : on renvoie le segment sans attendre la fin du RTO ; on recommence le mode «slow-start», c-à-d on augmente exponentiellement jusqu à ssthresh puis linéairement au-delà. TCP : contrôle de la congestion Fonctionnement du mode «congestion avoidance» Il existe différentes méthodes pour réagir à la perte d un segment : TCP Reno : on distingue situation de congestion faible et de congestion forte : congestion faible (3 ACKs dupliqués) : ssthresh = CongW indow/2 ; mode «fast-recovery» : CongW indow = CongW indow/2 ; mode «fast-retransmit» : envoi immédiat du segment «perdu» sans attendre le RTO ; congestion forte (timeout) : fonctionnement à la Tahoe ssthresh = CongW indow/2 CongW indow = 1MSS ; on effectue un «fast-retransmit» ; on recommence le mode «slow-start» ; TCP Vegas : détecte la congestion sur l allongement progressif de la RTT de chaque segment ; New Reno : adapte Reno à l utilisation de l option SACK. Résumé : quand CongW indow < ssthresh augmentation exponentielle de la taille de CongW indow ( 2) ; quand CongW indow ssthresh augmentation linéaire de la taille de CongW indow (+1). Les modes : «fast-retransmit» : l émetteur étant persuadé que le segment demandé plusieurs fois dans les ACKs dupliquées est perdu, il le retransmet sans attendre l expiration du timer («Retransmit TimeOut» ou RTO) ; «fast-recovery» : divise par deux la CongW indow et attend l acquittement complet de la fenêtre d autorisation d envoi, avant de repasser en mode «congestion avoidance» ; la différence entre Tahoe & Reno : l ajout de la notion de «congestion faible» et du «fast-recovery». Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

52 TCP : contrôle de la congestion Comportement de Tahoe vs Reno initialement, le ssthresh = 8 MSS le pic correspond à une perte de segment : CongW indow = 12 au moment du pic ; ssthresh = CongW indow/2 = 6MSS ; Tahoe repart en «slow start» avec CongW indow = 1MSS ; Reno utilise mieux la capacité du support : il repart de CongW indow/2 = ssthresh ; Et finalement le débit moyen d une connexion TCP? Le débit en «dent de scie» passe de (Cg W MSS) (2RT T ) à (Cg W MSS) RT T, d où : throughput average =.75 Cg W MSS RT T TCP : contrôle de congestion Est-ce que TCP est un protocole «équitable» TCP connexion 1 TCP connexion 2 Bottleneck goulot d étranglement routeur capacité R On observe que les deux connexions vont se répartir la capacité de la ligne de transmission : en A : les deux connexions atteignent un débit inférieur à R, pas de pertes, la taille de CongW in augmente de 1 à chaque RTT et la courbe évolue à 45 ; en B : le débit des connexions dépasse R et les deux connexions perdent des segments et reviennent en C ; en D : ça recommence... Objectif de l équité, fairness : Si K connexions utilisent la même ligne de transmission de capacité R ; chaque connexion doit obtenir un débit de R/K. Débit Connexion 2 throughput R Débit souhaité C A Débit Connexion 1 throughput Partage équitable de la capacité Mais la répartition se fait entre toutes les connexions TCP et non entre celles des différentes applications. Équité dans UDP D B R Ligne d utilisation complète de la capacité TCP possède un mécanisme de contrôle de congestion : il offre un traitement équitable en répartissant la capacité entre les différentes connexions : UDP ne possède pas ce mécanisme : les applications multimédia utilise plutôt UDP (VoIP, «Voice over IP», Vidéo) : elles ne veulent pas voir leur débit modifié par le contrôle de congestion ; elles ne veulent pas le surcoût de TCP (gestion de fenêtres d envoi et de réception, gestion d erreurs) ; la transmission par UDP est faite suivant un débit constant où la perte de paquets est tolérée. le trafic UDP peut entraîner une congestion du réseau. Un autre mécanisme de contrôle de congestion pour TCP et IP ECN, «Explicit Congestion Notification», RFC 3168 Habituellement, la découverte de la congestion passe par la perte de datagramme : un routeur jette un paquet qu il ne peut gérer. ECN permet de notifier les extrémités d un que le réseau entre en congestion sans jeter le datagramme : il est géré dans le datagramme IP (mais en rapport avec un protocole supérieur) ou le segment TCP ; l ECN a été négocié lors de l établissement de la connexion (utilisation du bit associé dans l entête IP) ; le routeur gérant l ECN positionne un bit dans l entête du datagramme IP ou du segment TCP, au lieu de jeter le datagramme pour informer, notifier, le récepteur de l entrée en congestion du routeur. le récepteur fait écho de cette indication (au niveau approprié) et réagit comme lors lors d une perte de datagramme (ou du segment encapsulé). TCP : l acquittement sélectif, SACK Le mécanisme utilise deux bits : du champ «Differentiated Services» ou TOS, «Type Of Service» de l en-tête IPv4 ; du champ «Traffic Class» de l en-tête IPv6 ; du champ «flags» de len-tête du segment TCP. Les différentes valeurs des bits et le sens associé : 00: Non ECN-Capable Transport Non-ECT 10: ECN Capable Transport ECT(0) 01: ECN Capable Transport ECT(1) 11: Congestion Encountered CE Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

53 SYN FIN If set, the hosts should synchronize sequence numbers and establish a connection. If set, the sender had finished sending data and initiated a close of the connection. TCP : les options Table 11.2 TCP Option Types, Showing Abbreviation (Meaning), Length, and RFC in Which Established Type Meaning Total Length and Description RFC 0 EOL 1 byte, indicates end of option list (only used if end of options is not end of header) 1 NOP 1 byte, no option (used as padding to align header with 793 Header-Length CHAPTER Field) 11 Transmission Control Protocol MSS 4 bytes, the last 2 of which indicate the maximum payload that one host will try to send another. Can only appear in SYN and does not change. Table 11.2 (continued) Certaines de ces options ne sont négociées que lors de l établissement de la connexion, pour des questions de rétro-compatibilité : leur présence dans les segments des deux interlocuteurs permet leur utilisation. L option TCP MECHANISMS 8 : permet de calculer le RTT d un segment, «RTT measurement» (RFC1323) : It might not be obvious why TCP connections should be such a complication. One of l émetteur envoie un segment avec un timestamp par rapport à sa propre horloge ; the reasons is that TCP adds more to connectionless IP than connection capability. The TCP le récepteur service also provides lui renvoie aspects ce of what timestamp the ISO-RM dans defines leas segment Session Layer réponse services, : l émetteur connait le RTT. services that include the history (a popular term is state variables ) of the connection progress. Connections also provide a convenient structure with which to associate QoS parameters, although every layer of any protocol stack always has some QoS duties to perform, even if it is only error checking. TCP : le calcul de débit Officially, TCP is a virtual circuit service that adds reliability to the IP layer, reliability that is lacking in UDP. TCP also provides sequencing and flow control to the Débit host-to-host maximalinteraction, d une connexion which in turn provides TCP a congestion control mechanism to the routing network as a whole (as long as TCP, normally an end-to-end concern, is aware Leof débit the congested d unecondition). connexion The flow TCP control dépend mechanism du temps in TCP is d acheminement a sliding window des données et de leur acquittement, et de la taille procedure buffer that prevents de réception senders from : overwhelming receivers and applies in both directions of a TCP connection. RW IN TCP was débit initially defined RT Tin RFC 793, refined in RFCs RT T879, est 1106, le «1110, round and 1323 trip time» (which obsoleted RFC 1072 and RFC 1185). RFCs 1644 RWand IN1693 est extended la taille TCP deto la fenêtre de réception. support transactions, which can be loosely understood as connection-oriented Exemple avec la création d un flux avec iperf Type Meaning Total Length and Description RFC 3 WSCALE 3 bytes, the last establishing a multiplicative (scaling) factor. Supports bit-shifted window values above 65, SACKOK 2 bytes, indicating that selective ACKs are permitted SACK Of variable length, these are the selective ACKs Echo 6 bytes, the last 4 of which are to be echoed Echo reply 6 bytes, the last 4 of which echo the above Timestamp 10 bytes, the last 8 of which are used to compute the retransmission timer through the RTT calculation. Makes sure that an old sequence number is not accepted by the current connection POC perm 2 bytes, indicating that the partial order service is permitted POC profi le 3 bytes, the last carrying 2-bit fl ags CC 6 bytes, the last 4 providing a segment connection count CCNEW 6 bytes, the last 4 providing new connection count CCECHO 6 bytes, the last 4 echoing previous connection count On mesure le RTT avec la commande ping : ping -c 1 msi.unilim.fr PING msi.unilim.fr ( ): 56 data bytes 64 bytes from : icmp_seq=0 ttl=50 time= ms On intercepte la communication avec tcpdump tcpdump -c 2 -nnvvx tcp and port 5011 reading from file capture_connexion_tcp_msi.pcap, link-type EN10MB (Ethernet) Les options 11,12&13 : RFC 1644 proposait de mettre des données dans le SYN et SYN/ACK... abandonnées! Les options 6&7 : RFC 1072 abandonnées! Les options 9&10 : RFC 1693 abandonnées! 11:51: IP (tos 0x0, ttl 64, id 19178, offset 0, flags [DF], proto TCP (6), length 64, bad cksum 0 (->2454)!) > : Flags [S], cksum 0xcbac (incorrect -> 0x0979), seq , win 65535, options [mss 1460,nop,wscale 3,nop,nop,TS val ecr 0,sackOK,eol], length 0 TCP : calcul initial de la taille de la fenêtre de réception Taille de fenêtre proposée par le récepteur dépend de la capacité, «bandwidth», du réseau ; dépend du temps d aller-retour d un paquet, le «RTT» ; est calculée par : T aille fenetre = capacité RT T Exemple : Sur un réseau Ethernet 100Mbps, avec un RTT de 5ms : T aille fenetre = = 500kbits On choisit une taille en puissance de 2 : 512kbits, soit 64Ko. ainsi on adapte la taille de la fenêtre à la capacité du réseau, afin d optimiser son utilisation : l émetteur recevra un ACK pour l envoi d une fenêtre complète juste à temps pour recommencer. Sélection de la taille de la fenêtre de réception en programmation Socket Sous Python : 1 ma_socket = socket.socket(socket.af_inet, socket.sock_stream) 2 ma_socket.setsockopt(socket.sol_socket,socket.so_rcvbuf, taille) 3 print Taille buffer utilisee:,ma_socket.getsockopt(socket.sol_socket,socket.so_rcvbuf) Pour le transfert d un fichier de 10 Mo : time python test_option_tcip.py Connexion : Taille buffer initial: Taille buffer utilisee: real user sys 0m8.213s 0m0.080s 0m0.620s TCP : le calcul de débit on utilise la commande «iperf» en mode serveur sur msi.unilim.fr -s Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) [ 4] local port 5001 connected with xxx port [ 4] sec 1.25 MBytes 860 Kbits/sec on observe avec la commande tcptrace : time python test_option_tcip.py Connexion : Taille buffer initial: Taille buffer utilisee: 2240 real user sys 5m16.549s 0m0.244s 0m3.912s en mode client sur «darkstar» (le client envoie un flux vers le serveur) : -c msi.unilim.fr Client connecting to msi.unilim.fr, TCP port 5001 TCP window size: 129 KByte (default) [ 3] local port connected with port 5001 [ ID] Interval Transfer Bandwidth [ 3] sec 1.25 MBytes 951 Kbits/sec 11:51: IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto TCP (6), length 60) > : Flags [S.], cksum 0xb687 (correct), seq , ack , win 5792, options [mss 1460,sackOK,TS val ecr ,nop,wscale 6], length 0 On apprend que : le serveur msi.unilim.fr propose un «WindowScale» de 6, ce qui indique que il faut multiplier la taille de la fenêtre par 2 6 = 64, soit une taille de fenêtre de réception = ; le débit maximal : / = 8Mbps si la taille de la fenêtre ne diminue pas au cours de la communication (débit inférieur à la capacité d un lien Ethernet 10Mbps). Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

54 TCP : des mesures sur la connexion Il existe un certain nombre de serveurs permettant de mesurer : les caractériques de la connexion (type de ligne de transmission, modifications réalisées par le FAI, etc) l influence sur le protocole TCP : de la configuration du système ; de la connexion. Sur une liste de serveurs répartis dans le monde. Dans l option «more details», on apprend : MSS : 1448 octets, modifié par le FAI... TCP : RFC 1323 ou TCP pour les liaisons «hautes performances» Problèmatique des réseaux à débit haute performance Ces réseaux sont appelés des LFN, «Long Fat Network», ils ont un grand BDP, «Bandwidth Delay Product». Les améliorations pour gérer ces «éléphants» sont : «window scale factor» : qui permet d agrandir la taille de la fenêtre de réception en la multipliant par un coefficient taille 2 coefficient ; «fast-restransmit»&«fast-recovery» : conserver au mieux le débit ; «Selective Acknowledge» : éviter de gaspiller du débit ; «Timestamps» : de 1seconde à 1ms qui permettent : «RTTM», Round Trip Time Measurement : une meilleur mesure du RTT calculable sur chaque échange y compris les segments retransmis ; «PAWS», Protect Against Wrapped Sequence Numbers : la taille du numéro de séquence est de 32bits, il faut donc pour «cycler» : Network B*8 B Twrap Scénario : bits/sec bytes/sec secs un segment perdu S perdu avec un numéro de séquence y arrive sur le récepteur ; ARPANET 56kbps 7KBps 3*10**5 (~3.6 days) DS1 1.5Mbps 190KBps 10**4 (~3 hours) ce segment perdu a été retransmis depuis longtemps ; Ethernet 10Mbps 1.25MBps 1700 (~30 mins) la communication à «cyclé» et se trouve au numéro de DS3 45Mbps 5.6MBps 380 séquence x ; FDDI 100Mbps 12.5MBps 170 y est proche de x et fait partie de la RcvW indow Gigabit 1Gbps 125MBps 17 S perdu peut s insérer de nouveau dans la connexion! On utilise alors le Timestamp pour identifier S perdu, comme étant un vieux segment à ne plus utiliser : Timestamp(S perdu ) < Timestamp(courant) TCP : la configuration, le «tuning» La configuration du comportement du protocole TCP sous GNU/Linux : ls tcp* tcp_abc tcp_fin_timeout tcp_mtu_probing tcp_syncookies tcp_abort_on_overflow tcp_frto tcp_no_metrics_save tcp_syn_retries tcp_adv_win_scale tcp_frto_response tcp_orphan_retries tcp_thin_dupack tcp_allowed_congestion_control tcp_keepalive_intvl tcp_reordering tcp_thin_linear_timeouts tcp_app_win tcp_keepalive_probes tcp_retrans_collapse tcp_timestamps tcp_available_congestion_control tcp_keepalive_time tcp_retries1 tcp_tso_win_divisor tcp_base_mss tcp_low_latency tcp_retries2 tcp_tw_recycle tcp_congestion_control tcp_max_orphans tcp_rfc1337 tcp_tw_reuse tcp_cookie_size tcp_max_ssthresh tcp_rmem tcp_window_scaling tcp_dma_copybreak tcp_max_syn_backlog tcp_sack tcp_wmem tcp_dsack tcp_max_tw_buckets tcp_slow_start_after_idle tcp_workaround_signed_windows tcp_ecn tcp_mem tcp_stdurg tcp_fack tcp_moderate_rcvbuf tcp_synack_retries tcp_moderate_rcvbuf vaut 1 : active le mode «autotuning», c-à-d la taille de la fenêtre de réception est adaptée automatiquement pour chaque connexion ; tcp_rmem&tcp_wmem :l espace mémoire d une connexion donné sous 3 valeurs : tcp_rmem minimal, initial, maximum pour la réception tcp_wmem minimal, initial, maximum pour l émission les tailles demandées par l utilisateur avec SO_SNDBUF et SO_RCVBUF sont limitées par : /proc/sys/net/core/rmem_max /proc/sys/net/core/wmem_max - maximum receive window - maximum send window les options les plus importantes sont activées : cat /proc/sys/net/ipv4/tcp_timestamps cat /proc/sys/net/ipv4/tcp_window_scaling cat /proc/sys/net/ipv4/tcp_sack Les paramètres à changer pour 4Mo en BDP élevé «Bandwidth Delay Product», ou RTT*capacité echo 1 > /proc/sys/net/ipv4/tcp_moderate_rcvbuf echo > /proc/sys/net/core/wmem_max echo > /proc/sys/net/core/rmem_max echo " " > /proc/sys/net/ipv4/tcp_rmem echo " " > /proc/sys/net/ipv4/tcp_wmem 9.9 L identification de système d exploitation «OS fingerprinting» D après Wikipedia La prise d empreinte de la pile TCP/IP (en anglais : TCP/IP stack fingerprinting ou OS fingerprinting) est un procédé permettant de déterminer l identité du système d exploitation utilisé sur une machine distante en analysant les paquets provenant de cet hôte. Il y a deux types différents de fingerprinting : L OS fingerprinting passif : identifier le système d exploitation uniquement à l aide des paquets qu il reçoit ; L OS fingerprinting actif : envoie des paquets et attend les réponses (ou l absence de réponses). Ces paquets sont parfois formés de manière étrange car les différentes implémentations des piles TCP/IP répondent différemment face à de telles erreurs. Quelques outils de détection d OS : Actif : Nmap, xprobe [1], Scapy, Passif : p0f (basé sur ouvertures de connexion TCP, paquets TCP SYN), Scapy, Ettercap, le pare-feu Netfilter de noyau > de Linux. Comment faire de l OS fingerprint? en utilisant les protocoles applicatif (IMAP, POP, SMTP, SSH, FTP etc.) : le «banner grabbing» : en se connectant au service et en récupérant la bannière d accueil qui contient des infos sur l hôte. Le principe du «Security by Obscurity» : changer les bannières pour dissimuler le système ; le «banner grabbing» passif : dans l en-tête d un courrier, dans celui de la réponse du serveur HTTP, dans la récupération d une commande du système au travers d un FTP pour voir comment elle a été compilé etc en utilisant les particularités des protocoles TCP : les réponses à des paquets inattendus, le temps de réponse, les valeurs des options etc. en utilisant le protocole SNMP, «Simple Network Management» : s il est installé et configuré par défaut, il peut informer sur la nature du matériel ; en identifiant les ports ouverts pour détecter les services présents sur l hôte : le balayage de ports, «port scanning» : passer en revue les différents ports pour trouver ceux ouverts, c-à-d où un serveur attend (listen) : windows : port 137, netbios-ns, NetBIOS Name Service, le mdns etc. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

55 OS fingerprinting Méthodologie Pour effectuer un «fingerprinting», on mesure des comportements de la machine cible que l on compare avec des comportements pré-enregistrés dans une BD : la comparaison de plusieurs comportements (valeurs prises, temps mis pour répondre etc.) permet d identifier avec plus ou moins de précision la cible. «Port scanning» : trouver les ports ouverts, fermés ou filtrés Pour le comportement de la pile TCP/IP, au niveau TCP : envoyer un segment avec le bit FIN : d après la RFC 793, la réception d un segment FIN sans connexion préalable doit être ignoré, mais certaines piles TCP/IP renvoie un RST = fingerprint ; «TCP ISN sampling» : tester l évolution des numéros de séquence lors de l établissement de connexion TCP et déterminer comment il évolue : de manière incrémentale, par rapport à une horloge, de manière aléatoire etc. les options TCP : quelles sont les options présentes, leur valeur, leur ordre dans le segment ; le Timestamp de TCP : comment évolue-t-til? le timeout de TCP : envoyer un simple SYN, ignorer le SYN/ACK et mesurer le temps pris pour l hôte pour réenvoyer ce SYN/ACK (à l aide de l option TimeStamp on évite les erreurs dues aux délais du réseau). Cette mesure est très efficace et est mise en œuvre par l outil RING, «Remote Identification Next Generation». Pour le comportement de la pile TCP/IP, au niveau IP : l IPID, ou l identifiant du datagramme IP : souvent à zéro mais pouvant valoir une valeur aléatoire ou incrémenter de un à chaque transmission ; la gestion de la fragmentation : est-ce qu un fragment qui «overlap», c-à-d recouvre, un segment précédent est rpis en compte ou non ; Pour le comportement de la pile TCP/IP, au niveau ICMP : leur TOS (différent de zéro sous GNU/Linux), leur contenu dans le cas d erreur : une partie du datagramme IP qui a entraîné l erreur «ICMP Error Quoting» ; le message ICMP reçu dans le cas d une erreur dans ce message ICMP «ICMP Error MEssage Echo Integrity» ; remote stack on behalf of the client. Before any application layer data is transmitted, the two stacks must negotiate the parameters that govern the conversation that is about to take place between the client and server. This les options negotiation de nmap is : the standard TCP three-way handshake and requires three TCP packets, connect() as shown scan (Nmap in Figure -st) 3-4. : envoi un SYN et ACK (connexion normale) ; Un outil d audit : nmap (1) SYN (2) SYN + ACK (3) ACK nmap -st -p Ici, le port ciblé est le port 80. Un outil d audit : nmap déterminer si la cible est sur le réseau : envoie un ICMP ping request, et essaye de se connecter sur le port 80 (HTTP) ; balayer les ports ouverts pour trouver au moins un port ouvert (une application est en écoute et attend une connexion) et un port fermé (pas d application attachée à ce port) ; déclencher l OS fingerprint : envoyer un paquet unique SYN : initier une connexion TCP ; envoyer un second paquet sans drapeaux (pas de SYN, ACK, PSH etc.). Ce paquet est appelé «null scan» envoyer un troisième paquet avec les drapeaux : URG, PSH, SYN et FIN Ces paquets sont appelées dans la RFC 1025 : nastygram, kamikaze, christmas tree en cas de service connu ouvert : faire du «banner grabbing» : nmap -A Starting Nmap 5.51 ( ) at :25 CEST Nmap scan report for Host is up (0.0023s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.8p1 Debian 1ubuntu3 (protocol 2.0) ssh-hostkey: c:02:1e:99:51:e6:29:21:46:95:6e:95:a5:ed:b7:50 (DSA) _2048 cc:1b:0d:e8:36:65:fe:ac:61:10:50:35:98:18:81:f9 (RSA) 53/tcp open domain dnsmasq /tcp open http Apache httpd ((Ubuntu)) _http-title: Site doesn t have a title (text/html). 8080/tcp filtered http-proxy Service Info: OS: Linux Service detection performed. Please report any incorrect results at TCP SYN or Half-Open Scans Nmap done: 1 IP address (1 host up) scanned in seconds A SYN or half-open scan is similar to a connect() scan in that the scanner sends a SYN packet to each TCP port in an effort to elicit a SYN/ACK or RST/ACK response that will show if the targeted port is open or closed. However, the scanning system never completes the three-way handshake because it deliberately fails to return the ACK packet to any open port that responds with a SYN/ACK. Therefore, a SYN scan is also known as a half-open scan because TCP three-way SYNhandshakes or half-open are scan (Nmap never given a chance -ss) : envoi to gracefully un seul complete, SYN (pas de log sur la cible, mais attention à la depicted in Figure 3-5. réception d un SYN/ACK ou RST/ACK) ; Un outil d audit : nmap TCP Client (1) SYN (2) SYN + ACK (ACK is never sent) TCP Server sudo nmap -ss -p Ici, le port ciblé est le port 80. TCP Client TCP Server Figure 3-4: TCP nmap three-way -st -p80 handshake Starting Nmap 5.51 ( ) at :30 CEST Nmap scan report for Host isthe up (0.0016s first packet, latency). SYN (short for synchronize), is sent by the client to the PORT server. STATE This SERVICE packet advertises the desired initial sequence number (among 80/tcp open http other things, such as the TCP window size and options such as whether La Selective trace recueillie Acknowledgment avec tcpdump is : permissible) used for tracking data transmission across sudo the tcpdump TCP -i session eth0 -nvvxto host the server. If the andsyn host packet reaches an 18:26: IP (tos 0x0, ttl 255, id 33680, offset 0, flags [DF], proto TCP (6), length 64) open port, the server TCP stack responds with a SYN/ACK to acknowledge > : Flags [S], cksum 0xb01e, seq , win 65535, the receipt of the initial sequence value from the client and to declare its options [mss 1460,nop,wscale 3,nop,nop,TS val ecr 0,sackOK,eol], length 0 own sequence number back to the client. The client receives the SYN/ACK 18:26: and responds IP with (tos 0x0, an acknowledgment ttl 64, id 0, offset 0, to flags the server. [DF], proto At this TCP (6), point, length both 56) sides have agreed on > the : connection parameters Flags [S.],(including cksum 0xd648, the seqinitial , sequence ack , win 14480, numbers), options [mssand 1460,sackOK,TS the connection val state ecr is defined ], as length established 0 and ready to transfer data. 18:26: IP (tos 0x0, ttl 255, id 37505, offset 0, flags [DF], proto TCP (6), length 52) In the context of the TCP connect() scan, the scanner sends both the SYN > : Flags [.], cksum 0x36ab, seq 1, ack 1, win 65535, and options the ending [nop,nop,ts ACK valpacket for ecr each ], scanned length port. 0 Any normal user can scan a remote system in this mode with Nmap; no special privileges are required. 18:26: Below are IP (tos some 0x0, of ttl the 255, iptables id 48576, log offset messages 0, flags displayed [DF], protofrom TCP (6), a SYN length scan 40) along with the Nmap > : output. You can Flags see [R.], that cksum the 0x89d5, http and seq 1, https ack 1, ports win 65535, are length 0 open, and the options portion of the SYN packet contains a substantial number of options: Cours «Réseaux Avancés I» P-F. Bonnefoi within its SYN scan mode (-ss), the default scanning mode for privileged 12 décembre [ext_scanner]$ nmap -P0 -st X.X Starting Nmap 4.01 ( ) at :32 EDT Interesting ports on X.X: Figure 3-5: TCP half-open sudo scan nmap -ss -p Starting A SYN Nmap scan cannot 5.51 ( be accomplished with ) the atconnect() system 18:39 call because CEST Nmap that call scan invokes report the for vanilla TCP stack code, which will respond with an ACK Host for each is up. SYN/ACK received from the target. Hence, every SYN packet sent in a SYN scan must be crafted by a mechanism that bypasses the TCP stack PORT STATE SERVICE altogether. This is commonly accomplished by using a raw socket to build a data 80/tcp structure filtered that mimics http a SYN packet when placed on the wire by the OS kernel. Nmap done: 1 IP address (1 host up) scanned in seconds RAW SOCKETS AND UNSOLICITED SYN/ACKS La trace recueillie avec tcpdump : Using a raw sudo socket tcpdump to craft -i a TCP eth0syn -nvvx packet hostoward a remote system and host instead of tcpdump: using listening the connect() eth0, system link-type call brings EN10MB up an interesting (Ethernet), issue. capture If the remote size host bytes responds with a SYN/ACK, then the local TCP stack on the scanning system receives 18:40: IP (tos 0x0, ttl 42, id 64924, offset 0, flags [none], proto TCP (6), length 44) the SYN/ACK, but the outbound SYN packet did not come from the local stack (because we manually > crafted : it via the raw socket), Flags so [S], the cksum SYN/ACK 0x50d4, is not seq part , of win 3072, options a legitimate [msstcp 1460], handshake lengthas 0 far as the stack is concerned. Hence, the scanner s local stack sends a RST back to the target system, because the SYN/ACK appears to 18:40: be unsolicited. IP You (tos can 0x0, stop ttl this 64, behavior id 0, on offset the scanning 0, flags system [DF], by proto adding TCP the (6), length 44) following iptables rule to the OUTPUT chain before starting a scan with the command: > : Flags [S.], cksum 0xd63c, seq , ack , win 14600, options [ext_scanner]# [mss 1460], iptables length -I OUTPUT 0 1 -d target -p tcp --tcp-flags RST RST -j DROP Nmap uses a raw socket to manually build the TCP SYN packets used users. Because the characteristics of these packets are determined by Nmap directly (without the use of the local TCP stack), they differ significantly from TCP SYN packets that the stack would normally have generated. For example, if we initiate a web session to with a web

56 [ Un outil d audit : nmap TCP FIN, XMAS, and NULL scans (Nmap -sf, -sx, -sn) : envoi de segments avec les drapeaux choisis ; sudo nmap -sf -p Starting Nmap 5.51 ( ) at :54 CEST Nmap scan report for Host is up. PORT STATE SERVICE 80/tcp open filtered http sudo tcpdump -i eth0 -nvvx host and host tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size bytes 18:54: IP (tos 0x0, ttl 53, id 25131, offset 0, flags [none], proto TCP (6), length 40) > : Flags [F], cksum 0xcc21, seq , win 2048, length 0 18:54: IP (tos 0x0, ttl 43, id 33275, offset 0, flags [none], proto TCP (6), length 40) > : Flags [F], cksum 0xc41e, seq , win 4096, length 0 TCP ACK scan (Nmap -sa) : envoi un ACK et attend un RST en retour ; sudo nmap -P0 -e en0 -sa -p Starting Nmap 5.51 ( ) at :03 CEST Nmap scan report for Host is up. PORT STATE SERVICE 80/tcp filtered http sudo tcpdump -i eth0 -nvvx host and host tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size bytes 19:03: IP (tos 0x0, ttl 39, id 55545, offset 0, flags [none], proto TCP (6), length 40) > : Flags [.], cksum 0xba54 (correct), seq 0, ack , win 4096, length 0 19:03: IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40) > : Flags [R], cksum 0xca60 (correct), seq , win 0, length 0 TCP Idle Scans Un outil d audit : nmap The TCP idle scan is an advanced scanning mode that requires three systems: a system to launch the scan, a scan target, and a zombie host running a TCP server that is not heavily utilized (hence the idle part of the scan s name). TCP The idle idle scan scan (Nmap is illustrated in Figure si) : Scanner FTP Session Figure 3-6: TCP idle scan Zombie FTP Server Spoofed SYN Packets from Zombie Hosts s IP Address SYN/ACK for Open Port RST/ACK for Closed Port Scan Target The idle scan exploits the fact that IP increments the IP ID value by one for every packet that is sent through the IP stack. The scan combines this fact with the requirement that a TCP stack send a SYN/ACK in response to a SYN packet to an open port, or a RST/ACK packet in response to a SYN packet to a closed port. In addition, all TCP stacks are required to ignore unsolicited RST/ACK packets. Taken together, these facts allow the scanner to watch how the zombie host increments the IP ID values during a TCP session that is maintained from scanner to the zombie host, while the scanner spoofs SYN packets with the zombie host s IP address at the target system. As a result, the scanner is able to monitor IP ID values in the IP header of packets coming from the zombie system, and from this information it is able to extrapolate whether ports are open or closed on the target. When a SYN packet is sent from the scanner to an open port on the target (see Figure 3-6) with the source IP address spoofed as the zombie s IP address, the target responds with a SYN/ACK (to the zombie system). Because the SYN packet that the zombie receives is actually unsolicited (it was spoofed from the scanner), it responds with a RST 5 to the target system, thereby incrementing the IP ID counter by one. If a SYN packet is sent from the scanner to a closed port on the target (again with the source IP address spoofed), the target responds to the zombie with a RST/ACK, and the zombie ignores this unsolicited packet. Because in this case no packet is sent from the zombie, the IP ID value is not incremented. By monitoring how the IP ID values are incremented (by one for open ports on the target, and not at all for closed ports), the scanner can infer 5 The RST packet from the zombie does not contain the ACK bit in this case because the SYN/ACK from the target does have the ACK bit set. More material on the circumstances under which an ACK bit is set on a RST packet is included in RST vs. RST/ACK on page 63. on se sert d un intermédiaire sur lequel on est connecté en TCP ; on spoofe de l intermédiaire pour scanner la cible ; on surveille les IP ID de la connexion avec l intermédiaire pour voir s ils sont modifiés (l intermédiaire envoie un RST à la cible et incrèmente cet IPID). UDP scan (Nmap -su) : envoi d un datagramme UDP et attente d un ICMP de type «Port unreachable» pour savoir si le port est ouvert ou fermé. les valeurs retournées sont : «open» : il y a une application accessible associée à ce port ; «closed» : il n y a pas d application attachée ; «filtered» : il peut y avoir une application attachée à ce port, mais les communication sont bloquées. Il n y a pas de «RST» envoyé, en le bloquant avec le firewall «netfilter» sous GNU/Linux : $ sudo iptables -A OUTPUT -p tcp sport 80 tcp-flags RST RST -j DROP Les règles du RST : RST ou RST/ACK? à la réception d un SYN sur un port fermé on renvoie un RST/ACK ; à la réception d un SYN/ACK sur un port fermé, on renvoie un RST. Transport Layer Attacks and Defense UDP, User Datagram Protocol, RFC 768 Il est : différent de TCP : pas de connexion, pas d accusé de réception, pas de tri des datagrammes à la réception, pas de contrôle de flux, pas de garantie contre les pertes ; identifié par le numéro de protocole 17 (11 en hexa) dans le datagramme IP ; associé au bit DF du datagramme IP (en général) ; «stateless», contrairement à TCP : il n y a pas d état conservé par les hôtes l utilisant pour communiquer (pas de TCB, «transmission control block» contenant les TSAPs, les numéros de séquence&acquittement, les buffers de réception/envoi, les fenêtres d envoi/congestion etc.) ; capable de faire du «multicast» (envoyer simultanément à plusieurs destinataires) ; capable d être multiplexé grâce au numéro de port : Well-kown ports : de 0 à 1023, sont associés à des protocoles «système» ; registered ports : de 1024 à peuvent être enregistrés auprès de l ICANN ; dynamic : à ; ephemeral vs persistent : celui d un client par rapport à celui d un serveur ; La liste des associations ports/services est indiquée dans le fichier /etc/services, sous GNU/Linux et dans C:\%SystemRoot%\system32\ drivers\etc\services sous Windows. Ce protocole est utilisé pour les applications : de type «demande-réponse», où l établissement d une connexion serait trop coûteuse : la requête et la réponse peuvent être contenues dans un seul datagramme. «temps réels» : celles dans lesquelles le plus important est d avoir les données à temps, comme la transmission du son et de l image. Les ports et les protocoles UDP & TCP Pour obtenir la liste des ports en attente de connexion pour TCP et de datagramme pour UDP, sous GNU/Linux, à l aide de la commande netstat : $ sudo netstat -lp inet Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 *:https *:* LISTEN 2403/apache2 tcp 0 0 *:17500 *:* LISTEN 1979/dropbox tcp 0 0 localhost:mysql *:* LISTEN 3535/mysqld tcp 0 0 *:www *:* LISTEN 2403/apache2 tcp 0 0 *:domain *:* LISTEN 1677/dnsmasq tcp 0 0 *:ssh *:* LISTEN 1706/sshd tcp 0 0 localhost:ipp *:* LISTEN 1561/cupsd udp 0 0 *:52906 *:* 470/avahi-daemon udp 0 0 *:domain *:* 1677/dnsmasq udp 0 0 *:bootpc *:* 393/dhclient udp 0 0 *:bootpc *:* 21932/dhclient udp 0 0 *:17500 *:* 1979/dropbox udp 0 0 *:mdns *:* 470/avahi-daemon udp 0 0 *:radius *:* 2328/freeradius Des protocoles utilisant UDP : NTP permet de mettre les ordinateurs à l heure par internet à 500 millisecondes près ; DNS permet de retrouver une adresse IP en fonction d un nom symbolique (comme un annuaire) ; VoIP permet de communiquer vocalement par Internet ; IPTv pour la télé sur Internet (quelle idée!) ;... Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

57 UDP 56 PART I Networking Basics the whole object. For this computation, the Checksum field itself is set to zero, and the 16-bit result placed in the field before transmission. If the checksum computes to zero, an all-1s value is sent, and all-1s is not a computable checksum. The pseudo-header fields are not sent with the datagram. 1 byte 1 byte 1 byte 1 byte that before any TCP segment can be sent to another host, a TCP connection must be established to that host. Source Port Connectionless IP Destination has no Portconcept of a connection, and simply In contrast to TCP, UDP Datagram is a connectionless Data (optional) transport layer on top of connectionless la taille du datagramme FIGURE UDP 10.2 inclue celle de l entête : elle varie de 8, juste l entête, à (il dépend de la taille du buffer d envoi The et four de UDP réception header souvent fi elds. Technically, limité à 8000 use octets) of the checksum ; is optional, but it is often used an implied or formal acknowledgment that the UDP segment arrived. il est encapsulé danstoday. un datagramme IP de taille minimale à supporter par les routeurs de 576 octets, soit 556 octets sans l entête IP (certains protocoles 268le limitait PART II àcore 512Protocols octets comme le protocole DNS, Domain Name Server, dans la RFC1035, mais cette limitation a été levée dans la RFC2671) ; Calcul du Checksum il est calculé avec une pseudo-entête : FIGURE 10.3 il n est pas obligatoire mais conseillé (obligatoire dans IPv6) : si le client envoie avec un checksum, le serveur The UDP IPv4 pseudo-header. These fi elds are used for checksum computation and include répond avec un checksum ; fi elds in the IP header. s il est mauvais le datagramme est éliminé silently : pas de message d erreur. At the receiver, the value of the Checksum is copied and the field again set to zero. The checksum is again computed on the pseudo-header and compared to the received value. If they match, the datagram is processed by the receiving application indicated by the destination port number. If they do not match, the datagram is silently discarded (i.e., no error message is sent to the source). Naturally, using 32-bit IPv4 addresses to compute transport layer checksums will not work in IPv6, although the procedure is the same. RFC 2460 establishes a different set of pseudo-header fields for IPv6. The IPv6 pseudo-header is shown in Other Figure Other FTP SMTP The SSH Next Header NFS* value is not always SNMP 17 for UDP, because DNS* other extension headers could be in use. Length is the length of the upper layer header and the data it TCP UDP Client carries. Client Remote Network Name Server Server File Remote File Management Service Lookup Applications The presence of the IP source and destination address in an upper layer tions checksum IPv4 AND IPv6 NOTES Applica- Transfer Access Access computation strikes many as a violation of the concept of protocol layer independence. (The same concern applies to NAT, discussed in Chapter 27.) In fact, a lot of TCP/IP books mention that including packet level fields in the end-to-end checksum helps TCP assure (when the checksum is correct at the receiver) UDP that the message has not only made its way to right port, but to the correct system. Connection-Oriented, Reliable The presence of a pseudo-header Connectionless, also shows how late Best-Effort in the development process that TCP and UDP were separated from IP. Not only that, but the transport layer and network layer (or, to give them more intuitive names, the end-to-end layer and routing layer) have always been tightly coupled in any working network. Some The use of the UDP checksum is not required for IPv4, but highly recommended. It is required in IPv6, of course. In IPv4, servers that receive client datagrams with the Routing IP (Best-effort) checksum field set are supposed to reply ICMP using the checksum, but ARPs this is not always enforced. If the IPv4 checksum field is not used, it is set to all 0 bits (recall that all 0 Protocols checksums are sent as all-1s). 274 PART II Core Protocols UDP : les différents cas de réponses Le format dutcp datagramme is a connection-oriented UDP layer on top of the connectionless IP layer. This means Certains envois de datagramme UDP peuvent générer une réponse d erreur de type ICMP : forwards packets without any understanding if the packets ever really got where they Length (including header) Checksum were going. IP. UDP segments are simply forwarded to a destination under the assumption that sooner or later a response will come back from the remote host. The response forms At the top of the TCP/IP stack is the application, or application services, layer. This is where the client server concept comes into play. The applications themselves typically come in client or server versions, which is not true at other layers of TCP/IP. While a 1 byte 1 byte 1 byte 1 byte host computer might be able to run Source client IPv4 Address processes and server processes at the same time, in the simplest case, these processes Destination IPv4 are Address two different applications. Client server application implementation can be extremely simple. A server process All 0 byte Protocol (517) UDP Length can start and basically sit and listen for clients to talk to the server. For example, a Web server is brought up on a host successfully whether there is a browser client pointed at it or not. The Web server process issues a passive open to TCP/IP and essentially remains idle on the network side until some client requests content. However, the Web browser (the client) process issues an active open to TCP/IP and attempts to 10.1 UDP vs TCP Action UDP request sent to server UDP request sent to server UDP request sent to server UDP request sent to server UDP request sent to server UDP request sent to server FIGURE 10.6 Condition Server available Port is closed on server Server host does not exist Port is blocked by firewall/router Port is blocked by silent firewall/router Reply is lost on way back Outcome Sender gets UDP reply from server Sender gets ICMP Port unreachable message Sender gets ICMP Host unreachable message Sender gets ICMP Port unreachable Administrative prohibited message (timeout) (timeout) UDP protocol actions, showing the request reply outcomes. 11 Conception de réseaux : la segmentation Lors de la conception d un réseau pour une organisation (une société, un campus universitaire etc.) répartie entre UDP un ouoperation plusieurs sites (salles, bureaux, bâtiments, etc.), il est possible d utiliser : The delivery of UDP datagrams is by no means certain. The lack of an expect l interconnexion response de différents on the réseaux part of locaux a server par to routage a UDP ; client request is handled by a simple timeo la commutation Responses au sein d un are même not always réseau local. expected, as might be the case with streaming audio an Interconnexion devideo. différents The réseaux client might resend the datagram, but in many cases this might not be t Elle utilise les capacités best strategy. de la couche 3, «la couche réseau», pour : définir de In sous-réseaux some cases, (en lack utilisant of response VLSM et is CIDR) not a ; reliable indication that anything is wro affecter with à différents the network réseaux or locaux remote mis host. en œuvre Routers dansroutinely l organisation filter ; out unwanted packets, an interconnectermany ces réseaux do so àsilently, l aide dewhile routeur(s) others ; send the appropriate ICMP administratively proh définir des tables ited demessage. routage : pour un poste In de travail general, : authere minimum, are five la route major parpossible défaut, ouresults passerelle when ; an application sends a UD pour un routeur request, : aushown minimum, Figure la connaissance Note desthat différents any of réseaux the replies interconnectés can be joignables à un to saut. the sender, Plus tard, generating on verra l utilisation a timeout. de protocole de construction de table lost on the way ba de routage comme IGP, OSPF ou RIP. Commutation au sein d un même réseau local Network Access and Physical Layer (Etherent LANs or other) Elle utilise les capacités de la couche 2, «la couche liaison de données», pour : UDP OVERFLOWS décomposer un réseau local en plusieurs parties indépendantes ; *In some instances, NFS and DNS use TCP. créer différentswe ve domaines looked de collisions at UDP as dans a sort unof même quick-and-dirty domaine de diffusion. request response interaction betwe hosts over a network. Delivery is not guaranteed, but neither is an important netwo FIGURE 2.4 Cours «Réseaux Avancés I» P-F. Bonnefoi property called flow control. A lot of nonsense has 12 décembre been written 2013 about 57flow co The TCP/IP protocol stack in detail. The many possible applications on top and many possible trol, which is a very simple idea. It just means that no sender should ever be able network links on the bottom all funnel through the IP hourglass.

58 11.1 Problème de croissance d Internet Croissance du réseau Internet Le protocole IP a été utilisé intensivement depuis des dizaines d années. Son succès s est accompagné d une croissance exponentielle du réseau Internet. Problème du manque d adresses Le réseau basé sur IP ne peut plus s agrandir par épuisement du nombre d adresses disponibles : 1987 : réseaux prévues après plusieurs décennies ; 1996 : réseaux effectifs ; 2012 : épuisement des adresses IPv4 disponibles. L adressage sur 32 bits permet de définir 2 milliards d adresses potentielles. L organisation de l espace d adressage en classes en consomme des millions : les réseaux de classe A sont beaucoup trop grands (16 millions d adresses) ; les réseaux de classe C sont trop petits (256 adresses) ; les réseaux de classe B sont trop grands (65536 machines). Problème de la taille des tables de routage pour aller d un réseau à l autre L espace des adresses IP est une hiérarchie à deux niveaux : <identifiant réseaux>.<identifiant machine> Les routeurs doivent connaître l identifiant de tous les réseaux! La taille des tables de routage devient énorme et difficile à gérer : occupation mémoire trop importante dans les routeurs ; complexité des algorithmes de gestion de ces tables de routage 130; PART II Core Protocols routeur conçu dans la perspective d un réseau Internet contenant réseaux, et où les réseaux étaient un avenir lointain (limitation du protocole de routage RIP) ; Hosts transmission des tables de routage entre routeurs propice aux erreurs, et aux pertes... Subnetting 130 PART II Core : Protocols RFC mask Internet Defining the Subnet Mask / Extended-Prefix Length Before Subnetting Après Hosts The first step is to determine the number of bits required to define the six subnets. Since Hosts a network address can only be subnetted along binary boundaries, subnets must be created in blocks of powers of two [ 2 (2 1 ), 4 (2 2 ), 8 (2 3 ), 16 (2 4 ), etc. ]. Thus, it is impossible to define an IP address block such that it contains exactly six subnets. For this example, the network administrator must define a block of 8 (2 3 ) and have two network network unused subnets that can be reserved Router for future growth Router broadcast broadcast broadcast Avant Exemple?? Les Solutions Le «subnetting» Où comment partitionner un réseau d une classe donnée en différents sous-réseaux. Fonctionnement : Une structure obtient un seul réseau de classe A, B ou C : elle décompose ce réseau en différents sous-réseaux qu elle peut répartir géographiquement ; elle peut faire du routage entre ces différents sous-réseau ; Pas de différence vu de l extérieur du réseau! Le «supernetting» Où comment supprimer le concept de classe réseau et optimiser l usage des adresses restantes. Fonctionnement : Une structure obtient des «tranches de réseau» : par exemple : pour disposer d au plus 500 machines elle obtient deux réseaux de classe C (2*256) ; pour simplifier le routage, on considère que cette tranche ne désigne qu un seul et même réseau, ce qui oblige à dispose de certaines propriétés sur les adresses de ces réseaux ; Pas de différence vu de l extérieur du réseau! Le NAT, Network Address Translation Où comment partager une ou plusieurs adresses entre différentes machines. Fonctionnement : Une structure obtient une ou plusieurs adresses fixes : ces adresses sont partagées entre différentes machines connectées dans un réseau privé ou Intranet ( x.Y, x.y ou 10.x.y.z). Attention : différence vu de l extérieur du réseau! Cours In subnet general, mask «Réseaux to by define writing Subnet down Avancés #n, the the mask network bits. Then I administrator the subnet portion of the address» P-F. places Bonnefoi the binary /24 12 décembre can be easily marked off by turning on the masked bits. Next, it is easy to form the subnet and broadcast address for the subnet by setting the rest of the bits in the address representation of n into the bits of the subnet-number field. For example, to define Subnet #6, the network administrator simply places the binary representation of 6 (110 (the host bits) first to all 0 bits (network) and then to all 1 bits (broadcast). The resulting address the 3-bits range of forms the subnet-number the limits of the field. 2) into subnet network broadcast Since 8 = 2 3, three bits are required to enumerate the eight subnets in the block. In this mask mask Internet Internet example, the organization is subnetting a /24 so it will need three more bits, or a Before Subnetting After /27, Subnetting as the extended-network-prefix. A 27-bit extended-network-prefix can be expressed in FIGURE 4.4 dotted-decimal notation as Hosts This is illustrated in Figure 11. Subnetting a LAN, showing how the value of the initial bits determines the subnet. Host addresses, if assigned manually, must follow the subnet mask convention. subnetnumbenumber host- Découpage du réseau /24 en 8 sousréseaux A sometimes : tricky subnet issue is determining exactly what the subnet address (all bits bits network network 0 bits after the mask) and broadcast address (all 1 bits after the mask) are for a given IP Router /27 broadcast network-prefix address and subnet mask. This can be difficult because subnet masks do not always fall broadcast on byte boundaries as do classful addresses. An IP address like might not /24 = / look like the address of the network itself, but it might be. A network address, in some mask extended-network-prefix Internet. implementations.. of TCP/IP, cannot be assigned to a host. ( with a subnet After Subnetting mask of = is a network address.) /27 Consider the address with a subnet mask of What FIGURE bits is the subnet and broadcast address for this subnet? What range of host addresses can Figure Subnetting 11: a Example LAN, showing #1 how - Defining the value the of the Subnet initial bits Mask/Extended-Prefix determines the subnet. Host Length addresses, be assigned to this subnet? These questions come up all the time, and there are utilities if assigned manually, must follow the subnet mask convention. available on the Internet that do this quickly. But here s one way to do it by hand. A 27-bit extended-network-prefix leaves 5 bits to define host addresses on each subnet. The first thing to do is to mask out the network portion of the IP address with the A sometimes tricky subnet issue is determining exactly what the subnet address (all This de 0 bits means combien after the that mask) each de and subnetwork réseaux subnet mask by writing down the mask bits. Then the subnet portion of the address broadcast address with l organisation a (all 27-bit 1 bits prefix a after represents besoin the mask) are a et contiguous dans le for a given IP block futur of? can be easily marked off by turning on the masked bits. Next, it is easy to form the subnet and broadcast address for the subnet by setting the rest of the bits in the address 2 address 5 combien (32) individual and subnet de mask. IP machines addresses. This can be au However, difficult maximum because since the subnet dans all-0s masks un and do des all-1s not sous-réseaux, always host addresses fall dans le futur? cannot on byte be boundaries allocated, as there do classful are 30 addresses. (2 5-2) assignable An IP address host like addresses on each might subnet. not (the host bits) first to all 0 bits (network) and then to all 1 bits (broadcast). The resulting address range forms the limits of the subnet. look like Attention the address of the network itself, but it might be. A network address, in some Defining implementations Each of TCP/IP, the Subnet cannot Numbers assigned to a host. ( with a subnet mask La of RFC 950 autorise a network un address.) seul masque de sous-réseau pour le subnetting dans une même structure. The Consider eight subnets the address will be numbered with 0 through a subnet 7. mask Throughout of the remainder What of this paper, is the Sur subnet the XXX deand vieux 2 broadcast notation routeurs, address indicates for the classful, this binary subnet? representation What évite range of d utiliser of host the addresses number. lecan The sous 3-bit réseau «tout à zéro» et «tout à 1». binary be assigned representation to this subnet? of the These decimal questions values come 0 through up all the 7 time, are: and 0 (000 there 2), are 1 (001 utilities 2), 2 (010 2), 3 available (011 2), on 4 (100 the Internet 2), 5 (101 that 2), do 6 this (110 quickly. 2), and But 7 here s (111 2). one way to do it by hand. The first thing to do is to mask out the network portion of the IP address with the Pour décider du nombre de bits à affecter aux sous-réseaux Router IPv6 Où comment passer à Internet NextGen! Avec des adresses sur 128 bits entre autre... VLSM : Variable Length Subnet Masks RFC 1009 But : Exemple Permettre d utiliser plusieurs VLSM masques supports more de sous-réseaux efficient use of an pour organization's le subnetting, assigned d où IP address la notion space. One of the major problems with the earlier limitation of supporting only a single subnet de «variable length». mask across a given network-prefix was that once the mask was selected, it locked the organization into a fixed-number of fixed-sized subnets. For example, assume that a network administrator decided to configure the /16 network with a /22 extended-network-prefix. On dispose du réseau /16 à décomposer : En /22, ce qui donne 64 sous-réseaux, pour 1022 machines chacun : Si un réseau ne contient que 30 machines, on perd énormément d adresses! En /26, ce qui donne 1024 sous-réseaux, pour 62 machines chacun : C est mieux, mais l idéal serait de disposer du /22 et du /26 simultanément. Contraintes For these reasons, RIP-1 is limited to only a single subnet mask for each network number. However, there are several advantages to be gained if more than one subnet mask can be assigned to a given IP network number: - Multiple subnet masks permit more efficient use of an organization's assigned IP address space. - Multiple subnet masks permit route aggregation which can significantly reduce the amount of routing information at the "backbone" level within an organization's routing domain. Efficient Use of the Organization's Assigned IP Address Space network-prefix subnet-number bits host-number bits /22 = extended-networkprefix Figure 15: /16 with a /22 Extended-Network subnet-number Prefix host-number bits bits Please refer to Figure 15. A /16 network with a /22 extended-network prefix permits 64 subnets (2 6 ), each of which network-prefix supports a maximum of 1,022 hosts (2 10-2). This is fine if the /26 organization wants = to deploy a number of large subnets, but what about the occasional small subnet containing only 20 or 30 hosts? Since a subnetted network could have only a single mask, extended-network-prefix the network administrator was still required to assign the 20 or 30 hosts to a subnet with a 22-bit prefix. This assignment would waste Figure 16: /16 with a /26 Extended-Network Prefix approximately 1,000 IP host addresses for each small subnet deployed! Limiting the association of a network number with a single mask did not encourage the flexible and efficient Route use Aggregation of an organization's address space. VLSM also allows the recursive division of an organization's address space so that it can One be reassembled solution to this and problem aggregated was to to reduce allow a the subnetted amount network of routing to be information assigned more at the than top one level. subnet Conceptually, mask. Assume a network that in is the first previous divided example, into subnets, the network some of administrator the subnets is are also allowed to configure the /16 network with a /26 extended-network-prefix. Please further refer divided to Figure into sub-subnets, 16. A /16 network and some address of the with sub-subnets a /26 extended-network are divided into prefix sub 2 - subnets. This allows the permits 1024 subnets (2 10 detailed structure of routing information for one subnet ), each of which supports a maximum of 62 hosts (2 6 group -2). to be hidden from routers in another subnet group. The /26 prefix would be ideal for small subnets with less than 60 hosts, while the /22 prefix is well suited for larger subnets containing up to 1000 hosts / / / / /27 plusieurs masques de sous-réseau compatibles hiérarchiquement ; l utilisation de routeurs qui emploient : des protocoles de construction de table de routage qui transmettent le masque de sous-réseau pour chaque réseau destination ; un algorithme de «forwarding» qui utilise le «longest matching» ; une affectation des sous-réseaux qui soit topologiquement adapté / / / / / / /27

59 VLSM extended-network-prefix is said to be "more specific" while a route with a shorter extended-network-prefix is said to be "less specific." Routers must use the route with the longest matching extended-network-prefix (most specific matching route) when forwarding traffic. For example, if a packet's destination IP address is and there are three network prefixes in the routing table ( /24, /16, and /8), the router would subnet-number host-number select the route to /24. The /24 route is selected because its prefix has bits bits the greatest number of corresponding bits in the Destination IP address of the packet. Algorithme de forwarding basé sur le «longest match This» is illustrated in Figure 19. network-prefix /26 = Pour un datagramme à destination de l adresse Destination = extended-network-prefix , on sélectionne la route qui correspond avec le plus grand nombre de bits d un des * Figure 16: /16 with a /26 Extended-Network Prefix Route # /24 = Route # /16 = Route Aggregation sous-réseaux, ici, /24 VLSM also allows the recursive division of an organization's address space so that it Route can # /8 = be reassembled and aggregated to reduce the amount of routing information at the Figure top 19: Best Match is with the Route Having the Longest Prefix (Most Specific) level. Conceptually, a network is first divided into subnets, some of the subnets are elle further nedivided serait into pas sub-subnets, accessible and some! of the sub-subnets are divided into sub There 2 - is a very subtle but extremely important issue here. Since the destination address subnets. This allows the detailed structure of routing information for one subnet matches group all three routes, it must be assigned to a host which is attached to the Aggrégation to be hidden from derouters routes in another subnet group /24 subnet. If the address is assigned to a host that is attached to the /16 or /8 subnet, the routing system will never route traffic to the host /24 since L aggrégation the "longest match permet algorithm" deassumes simplifier that the lehost routage is part of : le the réseaux / / /27 subnet. This means that great care must be taken when assigning host addresses to / / /8 est décomposé /16, puis le sous-réseau make sure that every host is reachable! / / /16 est décomposé en / / / /27 Topologically Significant Address Assignment /27 Le processus est récursif, mais n impose pas que la taille /8 Since OSPF and I-IS-IS convey the extended-network-prefix information with each /19 route, duthe préfixe VLSM soit subnets lacan même be scattered à chaque throughout niveau an organization's de l arbre. topology / /19 However, to support hierarchical routing and reduce the size of an organization's routing /16 tables, addresses should be assigned so that they are topologically significant. Attention : la machine doit bien être connectée dans le réseau /24. Dans le réseau / / /19 Hierarchical routing requires that addresses be assigned to reflect the actual network /19 topology. This reduces the amount of routing information by taking the set of addresses Figure 17: VLSM Permits the Recursive Division of a Network Prefix On diminue la taille des tables de routage nécessaires assigned : to a particular region of the topology, and aggregating them into a single /16 routing advertisement for the entire set. Hierarchical /16 routing allows /24 this to be done In le Figure routeur 17, the /8 D «cache network» CHAPTER 6is sous-réseaux first configured 4 IPv4 and with derrière IPv6 a /16 Addressing extended-networkprefix. The /16 subnet is then configured with a /24 extended-network-prefix routing B topology / recursively at various ; points within Router the A hierarchy /16 of the Router /24 If addresses and lethe routeur /16 C cache subnet is 6configured sous-réseaux with a /19 extended-network-prefix. avec /16 do Note not have ; a topological /8 significance, aggregation cannot be performed and the size of / /24 that the recursive process does not require that the same extended-network-prefix the berouting tables cannot or be 11/8 reduced. Remember this point when we discuss CIDR / /24 two assigned laforms structure at are each equivalent. level des of the The sous-réseaux recursion. notation Also, just means the est recursive cachée that a sub-division subnet de mask l extérieur of 18 thebits aggregation long avec later in this paper. should organization's be applied address to space can be carried This is out the as same far as as the writing network administrator needs with to /8. take it. Internet / /24 mask but in more compact form. Table 4.5 shows all possible prefix lengths, their netmasks in dotted decimal, and Router C Router D the number of classful networks the prefix represents. It also shows the number of / /27 usable IPv4 addresses that can be assigned to hosts once the network address itself and / / /27 the directed broadcast address are subtracted. We ll talk about the special 0/0 address /27 and prefix length in Chapter 8. All possible mask lengths are shown for /1 to /32. The / /27 /0 mask matches the whole Internet and is discussed in the routing chapters / /27 Even when CIDR was used, all bits after the IP network address had to be zero, an aspect of IP addressing that did not change. For example, /18 was a valid 134 Figure PART 18: VLSM II Core Permits Protocols Route Aggregation - Reducing Routing Table Size IP network address, but /17 was not (due to the presence of the 1 bit Figure 18 illustrates how a planned and thoughtful allocation of VLSM can reduce the for the 64 in the 17th bit position). This aspect of CIDR is shown in Figure 4.6. The IP size of an organization's routing tables. Notice how Router D is able to summarize the network /18 is a CIDR supernet because the mask contained fewer bits six subnets behind it into a single advertisement ( /24) and how Router B is CIDR able to aggregate all of subnets behind it into a single advertisement. Likewise, Router C than the natural mask in classful IP addressing. Table 4.5 is able CIDR to summarize Prefixes the and six Addressing* subnets behind (Continued) it into a single advertisement ( /16). Finally, since the subnet structure is not visible outside of the Les différents préfixes possibles Prefix Length organization, Router Dotted A injects Decimal a single route Number into the global of Classful Internet's routing Number table - of Usable IPv4 Table 4.5 CIDR Prefi xes and Addressing* /8 (or 11/8). Netmask Networks Addresses Prefi x Length Dotted Decimal Netmask Number of Classful Networks Number of Usable IPv4 Addresses / Class A s 2,147,483,646 / Class A s 1,073,741,822 / Class A s 536,870,910 / Class A s 268,435,454 / Class A s 134,217,726 / Class A s 67,108,862 / Class A s 33,554,430 / Class A or 256 Class B s 16,777,214 / Class B s 8,388,606 / Class B s 4,194,302 / Class B s 2,097,150 / Class B s 1,048,574 / Class B s 524,286 / Class B s 262,142 / Class B s 131,070 / Class B or 256 Class C s 65,534 / Class C s 32,766 Attention (Continued) /18 VLSM Design Considerations 64 Class C s 16,382 /19 When developing a VLSM design, the network designer 32 Class must C s recursively ask the same 8,190 set of questions as for a traditional subnet design. The same set of design decisions /20 must be made at each level of the hierarchy: 16 Class C s 4,094 1) How many total subnets does this level need today? / Class C s 2,046 2) How many total subnets will this level need in the future? / Class C s 1,022 3) How many hosts are there on this level's largest subnet today? /23 4) How many hosts will there be on this level's largest 2 Class subnet C s be in the future? 510 /24 At each level, the design team must make sure that 1 they Class have C enough extra bits to 254 support the required number of sub-entities in the next and further levels of recursion. / /2 Class C 126 / /4 Class C 62 / /8 Class C 30 / /16 Class C 14 / /32 Class C 6 / /64 Class C 2 / /128 Class C 0 / /256 Class C (1 host) (1 host route) *All possible mask lengths are shown, for /1 to /32. The /0 mask matches the whole Internet and will be discussed in the routing chapters. The /31 Prefix In many cases, a /31 prefix that allows only two IPv4 addresses on a subnet is useless. Hosts are not normally assigned addresses that indicate the network itself (the lowest address on the subnet) or the directed broadcast (the highest address on the subnet). Because a /31 prefix only allows the final bit to be 0 or 1, this prefix is not useful for a subnet with hosts. Most subnets normally use a /30 prefix at most, which yields two useful host addresses in addition to the low and high addresses. However, many router networks employ the /31 prefix to address the endpoints of a point-to-point link such as SONET/SDH. There are no hosts to worry about, and only the router network need worry about the use of internal address spaces. With /31 prefixes, a single Class C address space can be used to provide addresses for 128 (256 divided by 2) point-to-point inter-router links, not just 64 (256 divided by 4). Le préfixe \31 est réservé aux connexions «point à point» entre routeurs : avec un identifiant machine réduit à 0 ou à 1. Avec des routeurs CISCO, il est également possible d utiliser des «unnumbered interfaces» : interface Serial0 ip unnumbered Ethernet0 CIDR : routage sans classe, RFC 1519 La technique du CIDR Classless InterDomain Routing RFC 1519 Allouer des adresses de classe C (2 millions disponibles) sous forme de blocs de taille variable. Exemple : si un site a besoin de 2000 adresses, on lui alloue un bloc de 2048 adresses (8 réseaux de classe C contigus). si un site a besoin de 8000 adresses on lui alloue un bloc de 8192 adresses (32 réseaux de classe C contigus). Ce principe est étendu vers les réseaux de classe A et B également. Distribution des adresses de manière régionale, RFC 1174 Les règles d attribution d adresses de classe C sont changées, le monde est partagé en 4 zones : à sont attribuées à l Europe, RIPE NCC et à l Afrique, AfriNIC ; à sont attribuées à l Amérique du Nord, ARIN ; à sont attribuées à l Amérique du Sud & Centrale, LACNIC ; à sont attribuées à l Asie et au Pacifique, APNIC ; à sont conservées en réserve à sont conservés pour la «fin d IPv4»... Chaque région dispose ainsi de 32 millions d adresses de classe C. Les organismes chargés d allouer les adresses sont des RIRs, Regional Internet Registries. Simplification du routage Quand un routeur hors d Europe reçoit une adresse à destination de 194.x.y.z ou 195.x.y.z, il doit l expédier vers un routeur européen. CIDR : Exemple & Conclusion Gestion de l affectation de sous-réseau par un FAI Soit le réseau /16 géré par un FAI, «Fournisseur d accès internet» ou ISP, «Internet service provider». Il veut décomposer le réseau /20 suivant : ISP s Block / /23 Org A: /21 D Reserved: / /23 Puis : C A /21 Reserved /21 Org B: /22 B Reserved / /22 et enfin : Reserved /22 Org C: /23 Figure 30: Slicing the Pie - Classless Environment Org D: /23 Le CIDR Step #1: est similaire Divide the auaddress VLSMblock /20 into two equal size slices. Each block represents le VLSM est one-half réaliséof à l intérieur the address duspace réseauor de2,048 l organisation (2 11 ) IP addresses. et il est caché de l extérieur ; ISP's le CIDRBlock est réalisé par les différents organismes, FAI, et il est visible /20 de l extérieur. Org A: /21 La configuration des tables de routages n est pas la même, car le CIDR soit être communiqué à toutes les autres organisations. Reserved: /21 Step #2: Divide the reserved block ( /21) into two equal size slices. Each block represents one-fourth of the address space or 1,024 (2 10 ) IP addresses. Reserved /21 Org B: /22 Reserved /22 Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre Step #3: Divide the reserved address block ( /22) into two equal size blocks. Each block represents one-eight of the address space or 512 (2 9 ) IP addresses. Reserved /22

60 CIDR : une méthodologie Une abstraction du réseau et sa configuration en CIDR Une première abstraction du réseau indépendamment Ivan Marsic de Rutgers l adresse University réseau de l organisation : 54 A B Network 1: Ethernet R1 Network 4: Point-to-point Network 2: Wi-Fi Network 3: Point- to-point R2 9*: E F 9A: C D Network 5: Ethernet "#$%&'()! *$! (+*,-.(! &$/()$(/0#)1! &$! 2&34)(! 56789*:;! 0<&=<! =#$%&%/%! #>! >&?(! $(/0#)1%! &$/()=#$$(=/('! /0#! )#4/()%B! C<(! $(/0#)1! /<*/! *! '(?&=(! 4%(%! /#! =#$$(=/! /#! #/<()! Ivan Une '(?&=(%!=#4.'!A(!*!DEF!=#$$(=/&#$!.&1(!G/<()$(/!#)!C#1($!H&$3;!*!0&)(.(%%!DEF!.&$1!%4=<!*%! Marsic seconde Rutgers University abstraction du réseau avec la notion IJKB55! 91$#0$! *%! L&62&:! #)! M.4(/##/<;! #)! *! '&*.4-;! NOD;! #)! *! C65! =#$$(=/&#$B! G*=<! Table =*$!A(!%($/!&$!*!%&$3.(!>)*,(!9.&$1!PCQ;!O(=/&#$!5B5B7:B! 1-3: CIDR hierarchical address assignment for the internetwork in Figure Subnet Subnet mask Network prefix Interface addresses $(/0#)1!*//*=<,($/!-#&$/;!1$#0$!*%!network UH!!!!!!! ! #/<()!$#'(%B!G?($!&>!*!<#%/!<*%!/0#!#)!,#)(!$(/0#)1!&$/()>*=(%;!%4=<!*%!$#'(!M!&$!2&34)(!56789*:;! (! / [(A(H!! ! &/! &%! $#/! &$/($'('! /#! A(! 4%('! >#)! /)*$%&/! XA(H!!!! ! \H!!!!!!! ! 56789*:;! "! A#/<! /30! )#4/()%! H5! *$'! HK! <*?(! /<)((! $(/0#)1! *//*=<,($/! #&$/%! &$/()>*=(%:! [(A"H!! ! (*=<B! G*=<! ]H!!!!!!! ! 8!E!$#'(! 0&/<!/0#!#)!,#)(!$(/0#)1!&$/()>*=(%!&%!%*&'!/#!A(!multihomed V!9#);!,4./&=#$$(=/(':B!F#/&=(!/<*/!,4./&<#,('!<#%/%!'#!("$!-*)/&=&-*/(!&$!)#4/&$3!#)!>#)0*)'&$3!#>!/)*$%&/!/)*>>&=B!P4./&<#,('!<#%/%! B! /31! [(ABH!! ! ["A(H!! ! *=/! *%! #/<()! ($'! <#%/;! (+=(-/! 4%(! '&>>()($/! &$/()>*=(%! >#)! '&>>()($/! '(%/&$*/&#$%;! '(-($'&$3!#$!/<(!'(%/&$*/&#$!'&%/*$=(B! $! /31! ["A"H!! ! XA"H!!!! ! C<(! 0<#.(! &'(*! A(<&$'! *! -)#/#=#.! &%! /#! &,-.(,($/! /<(! =#$=(-/! #>! ["ABH!! ! *! W?&)/4*.! I! /30! TH!!!!!!! ! *A#4/! '(/*&.%;! %4=<! *%! '&>>()($=(%! &$! -*=1(/! >#),*/%! #)! %&Y(!.&,&/%! #>! "#$%&%'$%()&*"+%!,-./! 012! 31245! 67789/! :-.! 8/58;85264! 655<.77.7! :1! :-.! /.:=1<>! 8/:.<?63.7! 67!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! M.4(/##/<;! (/=B! S#0(?();! /<(! <#%/! A(=#,(%! W,4./&<#,('X! &>! /0#! #)!,#)(! &$/()>*=(%! *)(! *%%&3$('! A Interfaces on Network 1 B R1 C Interfaces on Network 4 Interfaces on Network 2 E D Interfaces on Network 3 R2 Interfaces on Network 5 Figure 1-35: Example internetwork: (a) The physical networks include 2 Ethernets, 2 pointto-point links, and 1 Wi-Fi network. (b) Topology of the internetwork and interfaces. de «sub-net» et l adresse réseau : / Autonomous Systems and Path Vector Routing C892<.! (ABI! K<.7./:7! 6! /6L;.! ;8.=! 1?! :-.! M/:.</.:N! =-.<.! G6/0! -17:7! 6<.! G2:26440! 31//.3:.5! ;86! 8/:.<G.586<0! /15.7! D<12:.<7! 1<! 7=8:3-.7E!:-6:!48;.!8/785.!:-.!O/.:=1<>! 34125%P!,-87! =1245! 8GK40! :-6:! :-.! 34125! 87! 6! 78/94.! 65G8/87:<6:8;.! Z.!?8<7:! <.;8.=! :-.! /9.7! 8/:.<63:8/9! 62:1/1G127! 51G68/7! 6/5! :-./! K<.7./:! :-.! F 76 Chapter 1 Introduction to Computer Networking 75 Subnet-1: w.x.y.z/30 AHB La segmentation : les commandes «modernes»!"##$%&' ($)' *+&' %,-&' $('.//"%*),*.$0' *+,*' 1$"',)&',23.0.%*&).04' 1$")' $)4,0.5,*.$06%' 0&*7$)-',%' %+$70'.0' 8.4")&' 9:;<=' )&#)$2">&2' +&)&'.0' 8.4")&' D%%"3&' *+,*' 1$"' -0$7' *+,*' *+.%' 0&*7$)-' 7.//' )&3,.0' (.E&2'.0' %.5&=',02' 1$")' *,%-'.%' *$',>F".)&',' %&*' $('0&*7$)-',22)&%%&%',02',%%.40'*+&3'$#*.3,//1'*$'*+&'+$%*%C'G$")'(.)%*'*,%-'.%'*$'2&*&)3.0&'+$7'3,01',22)&%%&%'*$')&F"&%*C' D%'%&&0'.0'!&>*.$0'9C?C9='H$*+')$"*&)%'I9',02'IJ'+,K&';'0&*7$)-'.0*&)(,>&%'&,>+C'L&>,"%&'1$")'.0*&)0&*7$)-'+,%','*$*,/'$('9;'.0*&)(,>&%'A;'+';'($)')$"*&)%='J'($)'+$%*'L',02'<' '9'($)'$*+&)'+$%*%B=' 1$"' 0&&2' 9;' "0.F"&' MN',22)&%%&%C' O$7&K&)=' 1$"' 7$"/2' /.-&' *$' %*)">*")&' 1$")' $)4,0.5,*.$06%' M/!<.648:0!:-.!M/:.</.:!87!31GK17.5!1?!G6/0!8/5.K./5./:!/.:=1<>7!D1<N!O341257PEN!.63-!G6/69.5! 0&*7$)-' +.&),)>+.>,//1=' %$' *+,*' &,>+' %"H0&*'.%'.0'.*%' $70',22)&%%' %#,>&=',%' %+$70'.0' 6! 58??.<./:! 1<96/8Q6:81/! 8:7! 1=/! 31GG.<3864! 1<! K148:8364!8/:.<.7:7%!D,-.!<.65.<!G60!6471!=87-!:1!<.?.<!:1!C892<.!(AB! Il vaut mieux utiliser la commande «ip», du package iproute2. ;',02'?' +,K&' $0/1' *7$'.0*&)(,>&%' &,>+=' %$' *+&1' 0&&2' J',22)&%%&%' &,>+C' P+&.)' :1! 9.:! 6! 7./7.! 1?! 31GK4.S8:0! 1?! :-.! M/:.</.:%E! T63-! 8/58;85264!,%%.403&0*%'7.//'+,K&'*+&'3,%-'!'Q';9C'G$"'>,0'4)$"#'*+&%&'*7$'.0','%.04/&'%&*'7.*+'!'Q';RC' 65G8/87:<6:8;.!51G68/!87!>/1=/!67!6/!autonomous system!duve%!!"h0&*%'9='j=',02'<'+,k&'*+)&&'.0*&)(,>&%'&,>+='%$'1$"'0&&2',*'/&,%*'j'h.*%'a?',22)&%%&%b'($)'&,>+' W8;./! :-.8<! 58;.<9./:! 31GG.<3864! 8/:.<.7:7N! :-.7.! 65G8/87:<6:8;.! Afficher 51G68/7! 6<.! leg1<.! configuration 48>.40! :1! 31GK.:.! D?1<! réseau,02'*+&.)'3,%-%'7.//'&f",/'!'q';rc'p+&)&($)&='1$"'0&&2'?' '?',22)&%%&%'A$('7+.>+'*+)&&'7.//'H&' K<1?8:7E! :-6/! :1! "0"%&2B',02'1$")',22)&%%')&4.$0'7.//'H&'$('*+&'($)3'"C#C$C%SJT='7+.>+'4.K&%'1$"'J A;J' 'JTB 'Q'J? 'Q'9U',22)&%%&%C' V&*' "%',%%"3&' *+,*' *+&',>*",/',22)&%%' %"H%#,>&',%%.403&0*' *+,*' 1$"',>F".)&2'.%' X1:-! $ ip 587:6/3.! addr ;.3:1<! 6/5! 48/>! 7:6:.! <12:8/9! K<1:13147! afficher la liste 27.5!?1<! des!"#$%!&%' interfaces %&(#!")!D1<N! qu elles soient ou non activées.!"#$%"*+' %&(#!")E%!,-6:! 87N! :-.0! 27.5! 8/785.! 8/58;85264! 65G8/87:<6:8;.! 51G68/7! 1<! $ ip link G6/0! 51G68/7! D62:1/1G127! 707:.G7E%!,-.! ! K<1:13147! =.<.! !.6<48.<%!M/!6558:81/N!:-.0!51!/1:!K<1;85.!G.3-6/87G7!?1<!6/!65G8/87:<6:8;.!./:8:0!:1!<.K<.7./:!8:7!.31/1G83! $ ip 8/:.<.7:7! route67! K6<:! 1?! :-.! <12:8/9! K<1:1314%! affiche T31/1G83! la8/:.<.7:7! table36/! routage. 278/9! +&)!,*+'%(+$-!:-6:!.SK<.77!:-.!<12:8/9!.&+!,!$-!:1!<.?4.3:!:-.!.31/1G83!8/:.<.7:7%!C1<!:-87!K2<K17.N! =.! /..5! $/#$%!&%' %&(#!")! D1<N!$/#$%"*+' %&(#!")E! K<1:13147!?1<! 58??.<./:! 62:1/1G127!707:.G7%! Configuration d une interface $ sudo ip addr add /24 dev tap0 $ sudo ip link set tap0 up A B A,B Organization s address subspace: w.x.y.z/28 Subnet-2: w.x.y.z+4/30 Subnet-3: w.x.y.z+8/31 Subnets-3&4: w.x.y.z+8/30 Subnet-4: w.x.y.z+10/31 Subnet-4 Subnet-1 Subnet-5: w.x.y.z+12/30 R1 E Subnet-3 Subnet A>B R2 F Subnet-5 Subnet-1: /30 A B Subnet-4: /31 C D R1 C Subnet-5: / Subnet-3: / E Subnet-2: /30 D R Figure 1-47: (a) Example internetwork with five physical networks reproduced from Figure 1-35 above. (b) Desired hierarchical address assignment under the CIDR scheme. (c) Example of an actual address assignment. configurer l interface et l activer. $ ip link set eth0 promisc on passer l interface en mode «promiscuous» pour laisser passer les trames qui ne sont pas à destination de cette interface. $ ip link set eth0 mtu 1500 configure la MTU de l interface. Configuration de la table de routage $ ip route add /24 via ajouter une route vers un réseau en passant par un routeur. On utilisera del pour enlever cette route. $ ip route add default via ajouter la route par défaut. F 11.2 La segmentation : les commandes «classiques» Pour configurer une interface réseau sous Gnu/Linux $ ifconfig - a permet d afficher toutes les interfaces réseaux présentes sur la machine qu elle soit ou non activée. $ sudo ifconfig eth0 up Active l interface réseau (down pour la désactiver). $ sudo ifconfig eth /24 permet de définir d une interface réseau. $ sudo ifconfig eth /0 supprime associée à l interface. Pour configurer une interface avec DHCP, «Dynamic Host Configuration Protocol» $ sudo dhclient eth0 lance la configuration de l interface par DHCP passerelle DNS + etc.). $ sudo dhclient eth0 - r dé-configure l interface en «libérant» la configuration IP Pour configurer la table de routage $ sudo route Affiche la table de routage du système. $ sudo route add default gw eth0 ajoute la passerelle «par défaut» vers le routeur $ sudo route add -net /24 gw ajoute un chemin de routage vers le réseau indiqué (l option del au lieu de add permet la suppression de la route). sudo route add -host gw ajoute un chemin pour un «host» donné. La segmentation : les commandes Exemples $ ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:9d:ea:19 brd ff:ff:ff:ff:ff:ff $ ip address show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet /8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:9d:ea:19 brd ff:ff:ff:ff:ff:ff inet /24 brd scope global eth0 inet6 fe80::20c:29ff:fe9d:ea19/64 scope link valid_lft forever preferred_lft forever $ ip route show /24 dev eth0 proto kernel scope link src metric 1 default via dev eth0 proto static Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

61 La segmentation : la configuration du noyau GNU/Linux Déclencher les fonctions de routage sous GNU/Linux À l aide de la commande sysctl : 1 sudo sysctl net.ipv4.ip_forward=1 2 sysctl net.ipv4.ip_forward La ligne 1 active le «forwarding» et la ligne 2 vérifie l activation. Pour le rendre permanent, c-à-d activé lors du prochain redémarrage, il faut ajouter la ligne suivante dans le fichier /etc/sysctl.conf 1 net.ipv4.ip_forward = 1 Pour prendre en compte la modification du fichier : 1 sudo sysctl -p /etc/sysctl.conf Il est également possible d utiliser les fichiers spéciaux du répertoire /proc : 1 60echo PART Basics 1 I>Networking /proc/sys/net/ipv4/ip_forward Transfer Protocol:aura SMTP),lieu and a Domain (DNS) resolver for domain name Le routage entrename les System différentes interfaces présentes sur le système, en accord avec la to IP address translation (and vice versa), and more. Many TCP/IP implementations also table routage du includede a way of accessing filessystème. remotely (rather than transferring the whole file to the other host) known as the Network File System (NFS). There is also the Simple Network Management Protocol (SNMP) for network operations. For the Web, the server and browser applications are based on the Hypertext Transfer Protocol (HTTP). Some of these applications are defined to run on TCP and others are defined to run on UDP, and in many cases can run on either. BRIDGES, ROUTERS, AND SWITCHES Segmentation des réseaux locaux : commutation The TCP/IP protocol stack establishes an architecture for internetworking. These protocols can be used to connect LANs in the same building, on a campus, or around the world. Not all internetworking devices are the same. Generally, network architects seeking to extend the reach of a LAN can choose from one of four major interconnection devices: repeaters, bridges, routers, and switches. Not long ago, the network configuration and the available devices determined which type of internetworking device should be used. Today, network configurations are growing more and more complex, and the devices available often combine the features of several of these devices. For example, the routers on the Illustrated Network have all the features of traditional routers, plus some switching capabilities. In their simplest forms, repeaters, bridges, and routers operate at different layers of the TCP/IP protocol stack, as shown in Figure 2.5. Roughly, repeaters forward bits from one LAN segment to another, bridges forward frames, and routers forward packets Segmentation : domaine de diffusion et de collision Domaine de diffusion Pour un réseau à diffusion, on définit le «domaine de diffusion» comme étant la zone de taille maximale où il est possible de recevoir un message envoyé dans la zone. Par exemple dans Ethernet, un domaine de diffusion définie la limite de la transmission d une trame (qu elle soit transmise vers d une machine, ou bien de diffusion FF:FF:FF:FF:FF:FF) : en dehors de cette zone de diffusion, il n est pas possible de recevoir la trame envoyée. La taille de la zone de diffusion est limitée : par des contraintes techniques : limitation de la transmission physique (WiFi, câbles Ethernet trop long), choix technologiques, etc. pour des décisions administratives : limitation des transmissions à un ensemble choisi de matériels, augmentation le nombre de machines connectées à un même réseau ; amélioration les débits (moins de partage du réseau), application de QoS, «Quality of Service» ; prise en compte de la sécurité (isoler les postes) ; etc. Domaine de collision Dans un réseau à diffusion, lorsqu au moins deux messages sont diffusés par deux entités autonomes sans contrôle centralisé d une entité d arbitrage, il existe un risque de collision. Cela est vrai dans Ethernet 10/100 Mbps, faux dans Ethernet Gigabit, WiFi par exemple. Un domaine de collision est une zone du réseau où il existe une compétition pour l accès à cette zone. Le résultat de cette compétition peut être la création de collision et une baisse de débit par rapport à la capacité du réseau. Le fonctionnement illustré d un routeur? une ligne de transmission correspond à un tuyau dans lequel s écoule les données (des bits) ;? un paquet correspond à une «portion» de ces données : il est matérialisé par un seau.? un paquet entre dans le routeur par l «input» et sort par l «output» ;? au milieu se trouve un «switch», un commutateur sélectionnant la sortie du paquet sur une ligne de transmission. La commutation : une affaire de matériel Le matériel utilisé pour réaliser cette commutation : le répéteur, «repeater», pour allonger les distances physiques de transmission ; le pont, «bridge», pour connecter des domaines de diffusion avec intelligence ; le «concentrateur commuté» ou «switch», pour connecter et isoler surtout. Couches, commutation & routage? Le routeur intervient sur la couche 3. Il retransmet, «forward», des datagrammes ; Layer 5 Application Layer Application Layer Il réalise du routage. Layer 4 Transport Layer Transport Layer? Le pont intervient sur la couche 2. Router Layer 3 Network Layer Network Layer Il retransmet, «forward», des trames ; Bridge Layer 2 Data Link Layer Data Link Layer Repeater Il réalise de la commutation. Layer 1 Physical Layer Physical Layer? Le répéteur intervient sur la couche 1. FIGURE 2.5 Il ne commute pas mais allonge les distances. Repeater, bridge, and router. A repeater spits bits, while a bridge deals with complete frames. A router operates at the packet level and is the main mode of the Internet. Il est équivalent à un «hub». Il retransmet des bits à 1 ou à 0. Host 2 3 Network Layer Link & Physical Layers Host Services offered to incoming packets: 1 1 Receiving and storing packets 2 Forwarding decision for packets 3 Moving packets from input to output port 4 Transmission of packets?? 4 1. récupérer les paquets (datagramme ou circuit virtuel) ; 2. décider de la manière de «faire suivre» le paquet : forwarding decision ; 3. commuter un circuit d acheminement interne reliant l entrée à la sortie choisie ; 4. transmettre le paquet sur ce circuit interne. 1 Receiving and storing packets Forwarding decision for packets 2 3 Moving packets from input to output port 4 Transmission of packets Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

62 Le fonctionnement d un routeur Forwarding table Le routeur décide en fonction du contenu de sa table de routage, «forwarding table», de l aiguillage des paquets. Switch vs Hub Computer Computer?? (a) Packets Interface 1 Interface 4 Interface 2 Interface 3 Input ports Switch fabric Output ports Ethernet hub / bridge / switch Computer Ethernet Hub (b) Packets Router Forwarding table Destination ece.rutgers.edu msi.unilim.fr xlim.fr cs.rutgers.edu Output Interface Interface 3 Interface 2 Arbiter Il possède des circuits électroniques spécialisés, des NFE, «Network Flow Engine» : Network layer Link layer Input port Output port Routing processor CPU Forwarding & Routing Input port processor NFE processor NFE processor CPU Memory Memory Network layer Output port packets Line card Line card System bus Link layer packets Line card Line card System bus Cette architecture matérielle : permet d atteindre des débits très élevés : délais de traversé des paquets, gestion de table de routage importante, gestion de la QoS, gestion de «circuit-virtuel», gestion de Firewall etc ; fait la différence avec des architectures non dédiées comme un matériel générique sous GNU/Linux : plus de port de connexion pour ligne de transmission, support de la fibre optique, alimentation protégée etc. quelques sociétés sont présentes : CISCO System, Juniper Networks, Hewlett-Packard, Huawei. Twisted pair cable Network port un hub ou répéteur transmet la trame sur une sortie pendant qu elle est reçue sur une entrée : on parle de «cut-through switching» ; un switch ou bridge reçoit d abord toute la trame et la stocke ; il attend alors que le réseau auquel est connecté le port de sortie soit libre pour la transmettre : on parle de «store-and-forward switching». Ethernet Switch Sur le schéma, on constate que différents ports peuvent communiquer simultanément (indiqués en rouge) dans le cas d un switch : on comprend qu il y a une forme de commutation et d établissement de «circuit» physique Segmentation des réseaux locaux : le pont ou «bridge» Le pont connecte au moins deux domaines de collision ; ne crée qu un seul domaine de diffusion ; commute une trame d une ligne de transmission à une autre. Fonctionnement : Pour chaque trame, suivant de destination : «forwarded» : la trame est envoyée uniquement dans le segment où se trouve la destination ; «filtered» : la trame est détruite par le pont sans en informer la source ; «flooded» : la trame est envoyée à chaque segment attaché au pont (cas d de destination de broadcast ou de multicast). Pour connaitre les domaines de collision, où les matériels entrent en compétition pour l accès au support de transmission, le pont écoute les trames qui circulent et apprennent utilisées dans ces trames. Il peut y avoir des problèmes : le trafic multicast peut encombrer inutilement le réseau (vidéoconférence par ex.) ; la présence de plusieurs ponts peut crée des boucles. Pour la découvrir et désactiver les ponts inutiles, on utilise le SPT, «Spanning Tree Protocol». Segmentation des réseaux locaux : le pont Le pont Le pont : dispose de deux «ports» de connexion réseau (prise Ethernet) ; apprend des matériels connectés sur chacun de ces ports (au travers d un «hub»), en surveillant la destination des trames qui y circulent. Exemple : Sur l exemple, les 4 machines sont configurées dans le même réseau IP. 1. le pont établit une table où les entrées associent un port avec (les entrées ont une durée de vie limitée) ; 2. une trame est envoyée : de 00:00:0C:DD:DD:DD ; vers 00:00:0C:CC:CC:CC ; 3. le pont : vérifie les entrées de sa table : les sont sur le port 2 ; de destination n est pas une adresse de diffusion ni de multicast ; ne «forward» pas la trame sur le port on évite de diffuser la trame sur une partie du LAN. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

63 Segmentation des réseaux locaux : le pont Le STP, «Spanning Tree Protocol» Le STP permet de désactiver les ponts pour éviter les boucles : les ponts étant accessibles les uns des autres par un «port», un pont identifie un autre pont par le port qu il doit employer pour l atteindre ; chaque pont existant conserve un unique pont qui doit lui permettre d atteindre l intégralité du réseau : le pont racine, ou «root port» parce qu on l atteint uniquement par un certain port. le choix du pont racine à conserver pour, le «root port», se fait à l aide de trame diffusée au format STP, suivant : la sélection du chemin le plus court pour l atteindre, en nombre de pont à franchir ; un identifiant numérique qui peut être choisi, le «port ID» lorsqu il y a plusieurs chemins possibles ; des intervalles de temps régulier afin d éviter la rupture du réseau en cas de panne d un pont. La présence de deux ponts crée une boucle dans le LAN : a. les deux ponts reçoivent une trame émise par le Host1 à destination du Host6 dans le segment du haut ; b. bridge1 retransmet la trame vers le segment du bas ; c. bridge2 reçoit du trafic dans le segment du bas de Host1 à Host6 et modifie sa table pour mettre Host1 dans le segment du bas ; d. bridge2 retransmet la trame dans le segment du haut ; e. etc. Le pont : les commandes sous GNU/Linux Il est nécessaire d installer le paquetage de gestion des ponts : $ sudo apt-get install bridge-utils Puis de configurer le pont sur le système disposant d au moins deux interfaces réseaux : 1 sudo bash En ligne 7 et 8, on configure les interfaces sans adresse IP et en mode «promiscuous 2 ifconfig eth0 down», car ses interfaces vont recevoir des trames ethernet qui devront franchir 3 ifconfig eth1 down le pont et qui ne sont pas destinées au pont lui-même. 4 brctl addbr monpont 5 brctl addif monpont eth0 La ligne 10, qui permet la configuration du pont est nécessaire si on prévoit d accéder 6 brctl addif monpont eth1 depuis le réseau à la machine mettant en œuvre le pont. 7 ifconfig eth promisc up 8 ifconfig eth promisc up 9 ifconfig monpont up 10 dhclient monpont On peut ensuite vérifier la configuration à l aide de la commande brctl show : bridge name bridge.id STP enabled interfaces pont c2922ca2f no eth0 eth1 On peut regarder ce que le pont à «appris» comme adresse MAC connectées à ces différentes interfaces à l aide de la commande brctl showmacs : port no mac addr is local? ageing timer 1 00:0c:29:22:ca:2f yes :0c:29:22:ca:39 yes :0c:29:22:ea:19 no :50:56:fa:2c:a8 no :50:56:fe:7d:70 no Le pont : les risques Le pont : le filtrage Attention! Un pont sert d intermédiaire de communication, c est une sorte de «routeur» de niveau 2, il faut donc faire attention à des attaques de type MiTM, «Man in The Middle», où : un attaquant se fait désigner comme pont racine par les autres ponts et peut ainsi intercepter le trafic réseau. On parle «d attaque sur le STP» ; un attaquant transmets des trames sous l identité, adresse MAC, d un autre poste pour se faire retransmettre les trames à destination de cet autre poste en corrompant les tables d association (MAC spoofing) ; un attaquant transmets «énormément» de trame sous des identités différentes pour saturer la mémoire cache de la table associative du pont associée au port. Il arrive que dans ce cas le switch passe en mode concentrateur uniquement, «hub», et diffuse toute trame sur tous les ports (il arrête de travailler!). Il est possible d établir des règles de firewall sur les ponts, c-à-d sur les trames ethernet de niveau 2, à l aide d une extension de NetFilter les «ebtables». Pour pouvoir les utiliser, il faut installer le paquetage suivant : $ sudo apt-get install ebtables Il est ainsi possible : de faire du filtrage en tenant compte que l on travaille au niveau des trames : 1 ebtables -P FORWARD DROP 2 ebtables -A FORWARD -p Ipv4 -j ACCEPT 3 ebtables -A FORWARD -p ARP -j ACCEPT Comme pour le firewall de niveau 3, basé sur iptables, on peut définir une «policy», puis autorisé le trafic IP et ARP seulement. Les options «-P», pour «policy», «-A» pour «Add», «p» pour «protocol» sont similaires à celles utilisées pour netfilter qui sera vu plus loin. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

64 Le pont : le filtrage Il est possible de faire : du filtrage : 1 ebtables -A FORWARD -p IPV4 ip-protocol 1 -j DROP Ici, on utilise la table par défaut, «filter», et on met une règle sur la section «FORWARD» afin de filtrer les trames contenant un datagramme IP et un contenu de protocole numéro 1, c-à-d ICMP. Le pont : le filtrage faire de la protection anti-spoofing : 1 ebtables -A FORWARD -p Ipv4 ip-src s! 00:11:22:33:44:55 -j DROP Ici, la trame ne traversera le pont que si l adresse MAC et l adresse IP correspondent. Remarque Cette règle peut également s écrire avec iptables : 1 iptables -A FORWARD -s m mac mac-source! 00:11:22:33:44:55 -j DROP Le traitement est moins rapide car ebtables intervient en amont d iptables. On peut également traiter plusieurs associations, en utilisant une policy basée sur DROP : 1 ebtables -A FORWARD -p IPv4 among-dst 00:11:22:33:44:55= ,00:11:33:44:22:55= j ACCEPT it is not possible for any frames to cross the boundary of a broadcast domain: Another external device, such as a router, is always required to internetwork the domains. When LAN switches define multiple broadcast domains they are creating virtual LANs (VLANs). Not all LAN switches can define VLANs, especially smaller ones, but many can. A VLAN defines membership to a LAN logically, through configuration, not physically by sharing media or devices. On a WAN, the term switch means a class of network nodes that behave very differ Segmentation des réseaux locaux : commutation et switch, les VLANs ently than routers. We ll look more closely at how fast packet network devices, such as Frame Relay and ATM switches as network nodes, differ from routers in a later chapter. Le switch IlVirtual permet LANs : A de VLAN, segmenter according to un the domaine official IEEE de definition, diffusion defines entre broadcast plusieurs domains domaines at Layer 2. de collisions, avec plus de deux ports de VLANs, connexion as a Layer à la2 manière entity, really d un have pont little ; to do with the TCP/IP protocol stack, but VLANs make a huge difference how switches and routers operate on a TCP/IP de créer plusieurs domaines de diffusion segmentés : network. Routers en associant do not propagate un oubroadcasts plusieurs as bridges portsdo, à un so a domaine router automatically de diffusion defines ; broadcast domains on each interface. Layer 2 LAN switches logically create broadcast en assurant un travail de pont entre ces différents ports ; domains based on configuration of the switch. The configuration tells the LAN switch what to endo permettant with a broadcast l utilisation received on des a port autres in terms ports of libres what other pour ports définir should un ou plusieurs autres domaines de diffusion. receive Dansit ce (or cas, if it should on dira even que be flooded le switch to all créé other des ports). LANs virtuels, appelés VLANs. When LAN switches are used to connect LAN segments, the broadcast domains cannot be determined just by looking at the network diagram. Systems can belong to different, the same, or even multiple, broadcast domains. The configuration files in the Les VLANs Cli Cli Cli VLAN 1 VLAN 2 VLAN 1 VLAN 2 Broadcast messages from VLAN 1 devices are sent only to the VLAN 1 broadcast domain. FIGURE 2.6 LAN Switch Svr CHAPTER 2 TCP/IP Protocols and Devices 65 Cli Cli Cli Svr VLAN 2 VLAN 1 VLAN 2 VLAN 1 Broadcast messages from VLAN 2 devices are sent only to the VLAN 2 broadcast domain. VLANs in a LAN switch. Broadcast domains are now logical entities connected by virtual bridges in the device. Les domaines de diffusion, «broadcast domain», VLAN1 et VLAN2 sont des «entités logiques» dont les matériels sont connectés par des pont virtuels. faire de la «traduction» d adresse, «NAT», sur les adresses MAC, seulement pour des adresses qui existent sur des interfaces différentes (si la trame est réécrite avec une adresse MAC destination qui est sur l interface d où elle est venue intialement, elle ne sera pas retransmise) : 1 ebtables -t nat -A PREROUTING -d 00:11:22:33:44:55 -i eth0 -j dnat to-destination 54:44:33:22:11:00 Ici, on utilise la table «nat» pour réécrire des adresses MAC dans les trames au passage dans le pont. 1 ebtables -t nat -A POSTROUTING -s 00:11:22:33:44:55 -i eth0 2 -j snat to-source 54:44:33:22:11:00 snat-target ACCEPT Ici, on change l adresse MAC source. répondre automatiquement à des requêtes arp : 1 ebtables -t nat -A PREROUTING -p arp arp-opcode Request arp-ip-dst j arpreply arpreply-mac de:ad:be:ef:ca:fe Ici, on peut répondre automatiquement à une requête ARP, par exemple en donnant une adresse MAC différente pour une adresse IP connue et faire du MiTM... Segmentation des réseaux locaux : commutation et routage, les VLANs L avantage du VLAN est sa flexibilité : il est possible d associer un port à un VLAN particulier ; chacun de ses ports peut être connecté à un site particulier ; une personne peut rester dans le même bureau tout en migrant dans un VLAN différent ; son usage se combine avec celui d un routeur : le routeur reste nécessaire aux échanges entre VLANs La segmentation du réseau de l organisation peut être réalisée avec : une approche «traditionnelle» : différents LAN utilisant des ponts, switch ou répéteurs ; un routeur interconnectant ces différents LANs ; une approche «VLAN» : un ou plusieurs switch en mode VLAN ; un routeur interconnectant ces différents VLANs. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

65 rapide ; le MSTP (Multiple Spanning Tree), décrit dans le standard IEEE 802.1Q, permet de créer des arbres couvrants multiples pour les différents VLAN. Les VLANs Les trames de VLAN La gestion des VLANs se fait au travers de l affectation d un port d un switch à un domaine de diffusion particulier, c-à-d à un VLAN particulier. Lorsque plusieurs switchs doivent être reliés afin de créer les différents VLANs, il est nécessaire d échanger entre ces switchs des Figure 5.16 trames appartenant à différents VLANs, il est nécessaire de savoir à quel VLAN appartient une trame. Exemple de deux commutateurs reliés par deux trunks pour véhiculer les données de deux VLAN. Arbre couvrant multiple dans les VLAN (802.1Q) L idée sous-jacente au concept de STP multiple est de proposer un algorithme qui tienne Switch compte de la & complexité VLAN de la : circulation les améliorations des flux des différents VLAN dans les trunks. Dans l exemple de la figure 5.16a, deux commutateurs reliés par deux trunks transportent Amélioration les données de deux desvlan protocoles (l un des «deux anti-boucles VLAN est en trait» plein, l autre en pointillé). La mise en œuvre d un seul arbre couvrant conduit à bloquer un port dans chaque commutateur protocole pour éviter STP, les boucles. «Spanning La figure Tree 5.16b Protocol montre que» àl utilisation été modifié de deux : arbres Le couvrants RSTP, évite «Rapid ce problème. Spanning Tree», «802.1w» : amélioration de l arbre de recouvrement tenant compte des VLANs ; Pour MSTP, permettre «Multiple une configuration Spanning dynamique Tree», des «802.1Q différents» VLAN, : permet les trunks de créer doivent des abres de recouvrement multiples pour les différents transporter les données de tous les VLAN. VLANS : Configuration avec deux VLAN véhiculés sur deux Trunk 1 Trunk 1 trunks distincts entre les commutateurs SW1 et SW2. VLAN 2 VLAN 2 Un gros trait signifie qu un port est bloqué. Trunk 2 Trunk 2 on doit «noter» à quel VLAN chaque trame appartient ; on utilise la norme IEEE 802.1Q, qui étend la trame : elle utilise le «frame tagging», c-à-d de l étiquetage de trame ; les étiquettes permettent de savoir à quel domaine de diffusion appartient la trame ; il est possible de mettre plusieurs tags dans une trame Le Trunk ou le multiplexage de VLAN On appelle «Trunk» la liaison où circule les trames des différents VLANs. Les VLANs et le trunking La norme 802.1Q Ethernet Frame Structure Destination Address 6 bytes Source Address 6 bytes Ethernet q-in-q VLAN tags Tag Protocol ID 16 bits Tag 4 bytes Type 2 bytes Priority 3 bits 802.1p priority levels (027) CFI 1 bit Information bytes VLAN ID 12 bits VID (unique): 0 to 4095 (Canonical Format Indicator: 0 5 canonical MAC, 1 5 noncanonical MAC) DA SA Type TPID: (defaut), , Data CHAPTER 2 TCP/IP Protocols and Devices 67 FCS Original Ethernet Frame FCS 4 bytes Elle ajoute : 4 octets au format de la trame, entre source et le champs type contenu dans la trame ; La taille maximale de la trame passe de 1518 octets à 1522 octets. un identifiant de VLAN qui peut aller de 0 à Il est possible d utiliser un double étiquetage, appelé «q in q» pour permettre à un FAI d avoir ses propres VLANs an plus de ceux du client (dans le cas ou les sites du client sont dispersés et doivent communiquer entre eux par l intermédiaire du FAI). SW1 VLAN 1 (a) SW2 SW1 VLAN 1 (b) SW2 Configuration avec deux VLAN véhiculés sur deux trunks distincts entre les a. Configuration commutateurs SW1 utilisant et SW2. Un ungros seul trait signifie arbrequ un couvrant port est bloqué. : pour éviter la création d une boucle entre SW1 et SW2, on ne peut pas se servir (a) : Configuration d un des utilisant deux un seul liens arbre pour couvrant. écouler Pour éviter lela trafic création normal d une boucle des VLAN. entre SW1 et SW2, on ne peut pas se servir d un des deux liens pour écouler le Ici, SW2 trafic anormal ses deux des VLAN. ports Ici, SW2 bloqués a ses deux : le ports second bloqués : lien le second sert lien uniquement sert de secours en cas de panne du premier. uniquement de secours en cas de panne du premier. b. Configuration utilisant deux arbres couvrants : dans ce cas, un des trunks transporte les données d un VLAN, tandis (b) : Configuration utilisant deux arbres couvrants. Dans ce cas, un des trunks que l autre transporte véhicule les données les d un données VLAN, tandis deque l autre véhicule VLAN. les données de l autre VLAN. En cas de panne d un trunk, le lien survivant peut transporter En cas les dedonnées pannedes d un deux VLAN. trunk, le lien survivant peut transporter les données des deux VLAN. Création de «commutateur-routeur» Nous voyons bien que la contrepartie de la multiplication des VLAN dans le réseau de Il l entreprise combine est les la multiplication fonctionnalités du nombre d und arbres commutateur couvrants à avec maintenir. un routeur Cette prolifération risque d entraîner une gestion complexe de l algorithme et provoquer une baisse : routage intervlan en fonction de l adressage IP ; des performances des commutateurs. routage dynamique avec des protocoles de routage comme RIP, OSPF et BGP ; Pour rendre la circulation entre VLAN plus efficace, il s est développé des techniques de routage protocole intervlan, VRRP, naturellement «Virtual assumées Router par Redundancy les commutateurs, Protocol qui sont ainsi», RFC devenus 2338 : permet d introduire de la redondance de routeur des pour commutateurs-routeurs. le choix du routeur par défaut ; Commutateurs-routeurs du contrôle d accès, «Access Control List» : bloquer l accès d un sous-réseau à un autre sous-réseau. Les fonctionnalités de plus en plus étendues des commutateurs empiètent sur les fonctions classiquement dévolues aux routeurs. De ce fait, les commutateurs les plus sophistiqués sont souvent appelés des commutateurs-routeurs. Désormais, en plus des fonctions traditionnelles de commutation d un port à l autre, les commutateurs-routeurs sont capables Les d effectuer VLANs des fonctions de : niveau la3 gestion et même de niveau sous 4 du modèle GNU/Linux OSI. Création d interface de connexion à un VLAN Les réseaux locaux d entreprise Il faut installer la prise en charge des VLANs : $ sudo apt-get install vlan Pour créer une interface virtuelle vers un VLAN, de numéro 10, connectée à une interface réelle donnée : sudo vconfig add eth DA SA Tag Type Data FCS DA SA Tag Tag Type Data FCS 802.1q Tagged Frame Doubly-Tagged Frame La FIGURE norme p intègre des notions de priorités pour favoriser le trafic d un VLAN et faire de la QoS. Description VLAN tags and frames. : Note that frames can contain more than one tag, and often do. le TPID, «Tag Protocol Identifier» : prend la place du type dans une trame et identifie la trame comme étant une trame de VLAN (valeur 0x8100) ; PCP, «Priority Code Point» : champ sur 3 bits allant de la priorité 1 la plus faible à 7 la plus forte (la valeur 0 indique Cutting down on broadcasts Some network protocols are much worse than others when it comes to broadcasts. These broadcast frames can be an issue pas because de priorité). they rarely carry user data and each and every system on the segment must process the content of a broadcast frame. VLANs can isolate protocol broadcasts so that they arrive only at the systems that need to hear them. Also, a number of hosts that might otherwise make up a very large logical network (e.g., Page 19 what we will call later a /19-sized wireless subnet ) could use VLANs because they can be just plain noisy. Ces priorités peuvent être associées à des classes de trafic : voix, vidéo, données... ; CFI, «Canonical Format Indicator» : compatibilité avec les Token Ring : une trame dont le CFI est à 1, c-à-d non canonical, alors la trame ne doit pas être relayée vers un port non tagé, non associé à un VLAN ; VID, «VLAN Identifier» : identifie le VLAN, le numéro 1 est associé à un VLAN de gestion administrative, et la Router delay Older routers can be much slower than LAN switches. VLANs can valeur be used 0to indique establish que logical laboundaries trame n appartient that do not need à aucun to employ VLAN. a router to get traffic from one LAN segment to another. (In fairness, many routers today route at wire speed and do not introduce much latency into a network.) Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre The Illustrated Network uses Gigabit Ethernet links to connect the customer-edge routers to the ISP networks. Many ISPs would assign the frame arriving from LAN1 and LAN2 a VLAN ID and tag the frames at the provider-edge routers. If the sites are close Puis, on peut associer une adresse à cette interface de VLAN : sudo ifconfig eth /24 En utilisant une adresse dans le réseau /24 on empreinte l interface eth0 et on modifie la trame pour qu elle soit en 802.1Q. Ce fonctionnement équivaut à faire du «trunking».

66 11.6 Les «containers» Linux La virtualisation Sous Linux, il est possible de créer des machines virtuelles suivant différentes méthodes : l émulation hardware : où il est possible de faire tourner des OS différents par émulation, c-à-d. en émulant l intégralité du hardware mis à disposition de l OS. C est une solution très lente. Exemple : qemu, bochs la «full virtualization» ou la virtualisation complète : on utilise un «Hyperviseur», et un point d accès commun aux ressources matérielles que l on met à disposition des différents OS ; On obtient de bonnes performances, mais il faut disposer d un mode hyperviseur dans le processeur. Exemple : VMWare, VirtualBox, IBM z/vm, KVM. la «paravirtualisation» : on utilise également un mode hyperviseur, mais on utilise uniquement des OS qui ont été modifiés pour tenir compte de cette virtualisation. On obtient les meilleurs performances, mais on ne peut l exploiter que pour certains OS modifiables. Exemple : Xen. la «virtualisation d OS» : qui est également appelé «containerization» ou «zoning» qui permet de définir différents «espaces utilisateurs» en utilisant un seul noyau. Les performances sont excellentes, et le container ne s applique que sur les éléments que l on veut mettre dans un container. Exemple : OpenVZ, Linux-Vserver LXC.?? Les containers Linux Dans notre cas, nous allons virtualiser une pile TCP/IP afin de disposer de plusieurs machines reliées par différents types de liens, etc. La configuration d un container Exemple : on va définir : un pont mon_pont ; deux containers possédant chacun une interface connectée à ce pont : 1 # fichier lxc-ishtar1.cfg 2 lxc.utsname = ishtar1 3 lxc.tty = 3 4 lxc.pts = lxc.network.type = veth 6 lxc.network.flags = up 7 lxc.network.link = mon_pont 8 lxc.network.name = eth0 9 lxc.network.ipv4 = /24 Pour les exécuter et les arrêter : $ sudo lxc-execute -f lxc-ishtar1.cfg -n Ishtar1 bash $ sudo lxc-execute -f lxc-ishtar2.cfg -n Ishtar2 bash $ sudo lxc-stop -n Ishtar1 1 # fichier lxc-ishtar2.cfg 2 lxc.utsname = ishtar2 3 lxc.tty = 3 4 lxc.pts = lxc.network.type = veth 6 lxc.network.flags = up 7 lxc.network.link = mon_pont 8 lxc.network.name = eth0 9 lxc.network.ipv4 = /24 Ici, on crée un container disposant d une interface réseau et qui ne «confine» qu un shell bash. Attention : utiliser Ubuntu 10.10, avec la version de LXC > 0.7.2!?? Définition d interface virtuelles sous GNU/Linux Création d une interface réseau virtuelle Pour pouvoir créer une interface réseau virtuelle, de deux types : appelée TUN : pour le niveau 3, c-à-d. IP, qui permettra de faire du routage, par exemple à travers un tunnel ; appelée TAP : pour le niveau 2, c-à-d. Ethernet, qui permettra de mettre en place un pont, ou «bridge», c-à-d. la possibilité de faire passer une trame Ethernet d une interface à une autre. Vous devrez installer le paquetage uml-utilities pour pouvoir les utiliser : $ sudo apt-get install uml-utilities Ensuite, vous pourrez : créez une interface TAP : sudo tunctl -t ecoute (l interface s appelle, ici, «ecoute») ; détruire une interface TAP : sudo tunctl -d ecoute ; activer l interface virtuelle : sudo ipconfig ecoute up.?? Connexion de container par VLAN Pour connecter un container par un VLAN, on va d abord créer une nouvelle interface virtuelle sur la machine hôte : $ sudo tunctl -t vers_net1 Puis configurer le container afin de s accrocher à cette interface virtuelle : 1 lxc.utsname = ishtar1 2 lxc.network.type = vlan 3 lxc.network.vlan.id = lxc.network.flags = up 5 lxc.network.link = vers_net1 6 lxc.network.name = eth0 7 lxc.network.ipv4 = /24 à la ligne 2, on indique que la connexion du container sera faite au travers d un VLAN ; en ligne 3, on choisit le VLAN d identifiant 128 ; en ligne 5, on relie l interface eth0 du container à l interface virtuelle vers_net1 du container.?? Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

67 Utilisation de VLAN dans un container On peut configurer un container pour que ses communications soient encapsulés dans un VLAN en utilisant le type «vlan» pour définir son interface dans le fichier de configuration du container : 1 lxc.utsname = ishtar1 2 lxc.network.type = vlan 3 lxc.network.vlan.id = lxc.network.flags = up 5 lxc.network.link = vers_net1 6 lxc.network.name = eth0 7 lxc.network.ipv4 = /24 On définira une interface virtuelle à laquelle le container s accrochera, de type TUN avec la commande : $ sudo tunctl -t vers_net1 Ensuite, on peut «sniffer» l interface «vers_net1» avec tcpdump ou «wireshark».?? 12 Le Firewall : la décision d autoriser ou non le traitement du datagramme Fonctionnement d un Firewall sur un système Lorsqu un datagramme arrive sur une interface par l intermédiaire de la couche de niveau 2, c-à-d ethernet, une décision de routage doit être prise, en «amont» de la couche de niveau 3 du système : il est possible d analyser le paquet avant de l introduire dans la pile TCP/IP locale a. si le système n assure pas les fonctions de routeur : le paquet est à destination du système : il est considéré comme en «Entrée», INPUT, du système : il est filtré et/ou éventuellement modifié par le Firewall ; s il est accepté, il est dirigé vers un processus s il en existe un capable de le gérer ; le paquet n est pas à destination du système : il est ignoré. b. si le système assure les fonctions de routeur : le paquet est à destination du système : il est considéré comme en «Entrée», INPUT, du système : il est filtré et/ou éventuellement modifié par le Firewall ; s il est accepté, il est dirigé vers un processus s il en existe un capable de le gérer ; le paquet n est pas à destination du système : choix de «forwarder» le paquet vers une interface de sortie en fonction des règles de routage ; modifier le datagramme en sortie : intégration de la QoS, traduction etc. La «Sortie», OUTPUT, correspond à des datagrammes créés et émis par le système lui-même. Le Firewall : la reconnaissance du trafic TCP entrant ou sortant Stateless vs Stateful Exemple de scenario : On veut bloquer les communications web entrantes On veut autoriser les communications web sortantes Comment faire? Le «web» indique des communications TCP vers le port 80 ; Qelle différence entre «sortantes» en «entrantes»? les paquets «sortants» vont de vers Internet ; les paquets «entrants» vont d Internet vers ; Première proposition : on bloque les paquets «entrants» et on autorise ceux «sortants» : ça ne marche pas! Car... une communication TCP est composée de paquets «entrants» et sortants : des segments TCP sortent avec la requête utilisateur GET / HTTP/ des segments TCP entrent avec la réponse du serveur HTTP/ ok... il y a des ACKs, des PUSH etc. Seconde proposition : on laisse passer les segments de données dans les deux sens ; on contrôle l établissement des connexions TCP : Bloquer le trafic Web Autoriser le trafic Web on autorise seulement les segments contenant un SYN en provenance ou à destination du port 80 : Le Firewall : la reconnaissance du trafic TCP entrant ou sortant Exemple de scenario (suite) : On veut bloquer les communications web entrantes On veut autoriser les communications web sortantes Bloquer le trafic Web Autoriser le trafic Web Troisième proposition : on utilise le «handshake TCP» et on mémorise un état 1. on autorise uniquement les paquets SYN depuis vers Internet ; 2. lorsque l on voit passer un segment SYN autorisé, on mémorise l établissement de la connexion (état NEW) ; 3. si une connexion a été initiée en (2) alors on autorise le segment SYN/ACK a traversé depuis Internet ; 4. si un ACK correspondant à cette connexion est envoyé depuis , la connexion est considérée comme ESTABLISHED et on autorise tous les segments associés ; 5. lorsqu il n y a plus d activité ou lorsque l on intercepte l envoi réciproque de FIN, on oublie l état mémorisé et plus aucun segments associés ne peuvent traversés (pour éviter de confondre une connexion sans échange d une connexion terminée sans échange mutuel de FIN, on peut utiliser le TCP Keep-Alive). Cette troisième proposition repose sur la mémorisation d un état :«stateful», correspondant de l automate TCP : Problème : un vilain hacker choisit le port source 80 pour établir sa connexion depuis Internet vers : le segment contient un SYN et provient du port 80 : Bingo! On est pas arrivé à bloquer le trafic interdit! Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

68 Le firewall sous GNU/Linux : NetFilter L outil de firewall sous Linux : Netfilter «Give me your invitation, Sir» «Ken Sent Me...» On parle de : SPI, «Stateful Packet Inspection». La commande permettant de contrôler le firewall netfilter est : iptables sous IPv4 ip6tables sous IPv6. La table à apprendre NAT and Packet Mangling with iptables Le Firewall Netfilter : trajet du datagramme La création d un règle de firewall, se fait à l aide de la commande iptables en choisissant la table ainsi que la chaîne en faisant partie dans laquelle on veut entrer la règle. Chacune de ses tables correspond à différentes opérations sur les paquets traversant la pile TCP/IP du système : on a jouté des «hooks» ou crochets, dans les différentes étapes du routage, où l on peut faire intervenir des règles afin de laisser ou non le paquet transiter (éventuellement après modification). Il existe différentes tables, et pour chacune de ces tables il existe différentes chaînes : filter : celle utilisée par défaut lorsque l on indique pas explicitement la table ; INPUT : traite les paquets à destination de la machine locale ; FORWARD : traite les paquets qui traverseront par routage la machine locale (ne pas oublier d activer l option de «forwarding» du système) ; OUTPUT : traite les paquets créés sur la machine locale et à destination de l extérieur ; nat : pour effectuer de la traduction d adresse source et/ou destination du datagramme (peut impacter les ports dans le cas d UDP et de TCP) PREROUTING : traite les paquets tout juste entrés et avant qu ils ne soient éventuellement «forwardés» ; OUTPUT : traite les paquets créés localement avant qu il ne soient routés ; POSTROUTING : traite les paquets modifiés avant qu ils ne quittent la machine mais après avoir été routés ; mangle : pour effectuer des transformations sur certains champs du datagramme et de son contenu. PREROUTING, INPUT, OUTPUT, POSTROUTING, FORWARD. Le Firewall Netfilter : trajet du datagramme Le parkour du datagramme The rules in the PREROUTING chain of the mangle table are analyzed by the kernel when a packet comes in, before the routing process takes place. If the packet is not for the router (is destined to a host behind it), the kernel looks up the rules in the mangle table FORWARD chain and afterwards the mangle table POSTROUTING chain. Quand un paquet se présente sur une interface, il circule de la manière suivante : [ 116 ] Le Firewall Netfilter : la commande iptables Gestion des règles : définition & application à l aide de la commande iptables Avec iptables, on peut réaliser les différentes opérations pour une règle : -A ou : ajouter -D ou delete : effacer -I ou insert : insérer -R ou replace : remplacer Il faut spécifier la table, indiquer l opération suivie de la chaîne concernée. Ainsi, avec iptables -t filter -A INPUT, on peut ajouter une règle pour la table de filtrage et dans la chaîne INPUT correspondant aux paquets en entrée d interface réseau. Enfin une chaîne doit finir par une «cible» ou «target» afin de faire circuler le paquet. Cette cible est indiquée avec l option -j pour «jump». Ainsi, la règle iptables -t filter -A INPUT -j DROP va rejeter tous les paquets en entrée. Dans le cas de plusieurs interfaces, on peut préciser avec -i l interface d entrée et -o l interface de sortie. Il faut être cohérent : un -i eth0 s applique sur la chaîne INPUT mais peut-être pas sur la chaîne OUTPUT. Chaque table intervient à une étape du parcours du datagramme dans ce circuit et peut intervenir sur ce parcours : modifier le datagramme ; bloquer le datagramme. Un datagramme peut être traité en amont de la décision de routage dans la chaîne PREROUTING, ou après dans la chaîne POSTROUTING. Quand un paquet entre dans une chaîne, il parcours les règles dans l ordre de leur définition : jusqu à en trouver une qui s applique sur lui : il poursuit son chemin dans la «cible» indiquée (éventuellement une autre chaine lorsqu elle a été définie par l utilisateur) ; jusqu à ce qu il n y en est plus : la règle générale ou «policy» s applique : soit ACCEPT ou DROP (on définie la policy associée à un chaîne avec l option -P et en indiquant une «cible» qui doit être non définie par l utilisateur). Exemple : iptables -t filter -P FORWARD DROP. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

69 Le Firewall Netfilter : le parcours des chaînes Le datagramme parcours les règles en cherchant la première qui lui correspond, «match». INPUT test Pour définir ses propres chaînes et pouvoir faire des sélections complexes avec l option : Règle1: -p ICMP -j DROP Règle1: -s iptables -N nom_chaine (sur l exemple ci-contre, la chaîne «test» a été ajoutée) Règle2: -p TCP -j test Règle2: -d Règle3: -p UDP -j DROP On sort de la chaine utilisateur : avec la «cible» RETURN qui permet de retourner dans la chaîne d où l on a été envoyé par épuisement des règles sans concordance (circulation ci-contre). v INPUT / test v / Règle1 / Règle / Règle2 / Règle v---- Règle3 /--+ / Faire la concordance entre le datagramme (ou même la trame qui l a contenu) et une règle : avec des options de la commande iptables : -p ou protocol : qui permet de spécifier le protocole que doit contenir le paquet (tcp, udp ou icmp), -s pour source, -d pour destination ; avec de nombreux modules et l option -m ou -match : cette option est suivie du nom du module à utiliser, ainsi que des options spécifiques à ce module préfixée avec - De même, il existe différentes cibles, target, qui sont également paramètrable avec des options. v Le Firewall Netfilter : les protocoles Par protocole tcp : permet de traiter les connexions TCP et les options présentes dans les segments : -syn : indique que le segment doit avoir le bit SYN à 1 à l exclusion des autres. Cela permet de désigner les demandes d établissement connexions ; -tcp-flags : permet d indiquer les drapeaux qui doivent être présents : SYN, RST, ACK, FIN, URG, PSH et ALL et NONE. Il est nécessaire de donner une liste des drapeaux que l on veut surveiller sous forme d une liste de valeurs séparées par des virgules puis après un espace des drapeaux qui doivent être à 1. Par exemple : -tcp-flags SYN,RST,ACK,FIN (uniquement SYN est équivalent à -syn) ; -mss : permet de prendre en compte la taille maximale du segment. -source-port ou -sport : on peut éventuellement indiquer un intervalle avec la notation 80:90 ; -destination-port ou -dport : idem. iptables -t filter -A OUTPUT -p tcp -syn -sport 80 -j DROP udp : permet de traiter le protocole UDP -source-port ou -sport : on peut éventuellement indiquer un intervalle avec la notation 80:90 ; -destination-port ou -dport : idem. iptables -A INPUT -i eth0 -p udp -dport 67:68 -sport 67:68 -j ACCEPT Cette règle permet de laisser passer les paquets DHCP. icmp : pour la gestion du protocole icmp : -icmp-type : permet de spécifier le type du paquet icmp iptables -A INPUT -p icmp -icmp-type 8 -j DROP Cette règle supprime les messages ICMP d «echo request» Le Firewall Netfilter : les modules Par état ou «state» : Permet de tenir compte de l état d une connexion pour disposer d un firewall «statefull» -state : où l état est indiqué par une liste d états de connexion séparés par des virgules NEW : correspond à l établissement d une nouvelle connexion ; ESTABLISHED : correspond aux paquets d une connexion déjà établie ; RELATED : le paquet est en rapport avec une connexion déjà existante (un message ICMP d erreur ou par exemple, le protocole FTP, où deux connexions sont liées, l une de contrôle et l autre de données) ; INVALID : le datagramme ne peut être identifié ou ne correspond pas à un état attendu. La configuration initiale du firewall : verrouillage maximal # Vide toutes les chaînes /sbin/iptables flush # Autorise tout le trafic possible sur l interface réseau interne de boucle (loopback) /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT # Positionne les Policies par défaut : on bloque tout /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP On autorise les datagrammes associés à une connexion établie, ESTABLISHED,RELATED (autorisée par une règle utilisant NEW). Ensuite, viendront les règles autorisant explicitement l établissement d une connexion, -syn, suivant une concordance précise. Par exemple, pour les connexions SSH : /sbin/iptables -P FORWARD DROP iptables -t filter -D INPUT -p tcp -dport # Autorise le trafic déjà établie à passer à travers le routeur 22 -syn -j ACCEPT /sbin/iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT ou de manière équivalente : # Autorise tout trafic en sortie (outbound) iptables -t filter -D INPUT -p tcp -dport /sbin/iptables -A OUTPUT -m state -state NEW,ESTABLISHED -j ACCEPT 22 -m state -state NEW -j ACCEPT On peut vérifier dans /proc/net/ip_conntrack, l autorisation du port 22, «SSH» : tcp ESTABLISHED src= dst= sport=58143 dport=22 src= dst= sport=22 dport=58143 [ASSURED] mark=0 use=2 Le Firewall Netfilter : généralisation de la notion de connexion Gestion des datagrammes UDP et ICMP Pour permettre au Firewall d accepter les datagrammes en retour, la partie «connection tracking» de netfilter : enregistre les datagrammes en sortie ; autorise pendant une certaine durée un datagramme en retour : de TSAP inverse à celui envoyé dans le cas du protocole UDP ; Dans /proc/net/ip_conntrack : udp src= dst= sport=137 dport=1025 [UNREPLIED] src= dst= sport=1025 dport=137 use=1 La valeur 30 indique un temps d attente de 30 secondes. [UNREPLIED] indique que le paquet réponse n a pas été reçu. de réponse ICMP dans le cas de l envoi d un «echo request» (pour un ping) ; Pour le protocole ICMP, on a une notion de : «NEW, ESTABLISHED» : lors d un «ICMP Echo Request» ; «NEW, RELATED» : lorsque les protocoles UDP et TCP sont susceptibles d échouer, on autorise le paquet ICMP d erreur à traverser le firewall en retour. Ne pas oublier d autoriser le trafic «RELATED» : Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

70 Le Firewall Netfilter : les commandes utiles Commandes utiles pour la gestion de l ensemble des règles du firewall En utilisant l option supplémentaire -h on peut obtenir de l aide sur l utilisation d un module donné : iptables -m limit -h. L utilisation d un «!» devant une sélection permet de faire le contraire (c est la négation de l option de sélection). Pour nettoyer une table des chaînes définies, il faut utiliser l option -F pour «flush» : $ iptables -t nat -F PREROUTING Pour afficher l ensemble des règles du firewall : $ sudo iptables -t filter -L Seul l administrateur peut afficher le contenu des règles de firewall, pour des raisons de sécurité. Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp anywhere anywhere tcp dpt:ssh flags:fin,syn,rst,ack/syn limit: avg 3/min burst 1 DROP tcp anywhere anywhere tcp dpt:ssh flags:fin,syn,rst,ack/syn Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Le Firewall Netfilter : les commandes utiles Commandes utiles pour la gestion de l ensemble des règles du firewall Pour surveiller, l application des règles et voir si elles se déclenchent : 1 watch ebtables -L Lc 1 watch iptables -t nat -nvl Pour sauvegarder/restaurer ce que l on a définit dans iptables : iptables-save -c : permet de conserver les valeurs de compteurs à fin de statistiques ; -t : permet de sélectionner la table à sauvegarder (si l option est omise, toutes les tables sont sauvegardées). iptables-restore -c : permet de restaurer les valeurs de compteur ; -n : permet de ne pas effacer les règles existantes avant restauration. Pour réinitialiser les compteurs de concordance de règles du firewall : iptables -Z FORWARD Pour suivre l activité des transmissions de trames du protocole TCP sous shell avec tcpdump : 1 tcpdump -ev -i eth0 tcp and port 80 Ici, on ne s intéresse qu au trafic TCP, de port source ou destination 80.?? 12.1 Firewall : le plan de la présentation des usages le «filtrage» : autoriser ou non des connexions : sur le poste local (où tourne le Firewall) ; sur les machines du réseau situées derrière le routeur/firewall ; le «NAT» : faire de la traduction lors du routage des datagrammes : partage globale ; protection des postes du réseau situés derrière le routeur/firewall ; mise en place de «proxy transparent» ; faire du «port forwarding» ; la «QoS» : faire du «trafic shaping», c-à-d adapter les datagrammes en sortie du routeur/firewall à la QoS : classifier le trafic : reconnaître les différents flux (services TCP, RTP, «Real-Time-Protocol» basé sur UDP, VoIP, IPtv, p2p, etc.). On parle de «Deep Packet Inspection», car on s intéresse à son contenu. marquer les datagrammes pour adapter leur prise en charge lors de leur acheminement suivant de la QoS : en sortie du routeur : en contrôlant le débit ; lors de l acheminement du datagramme : en fixant les champs TOS/DSCP pour les autres routeurs ; faire de l équilibrage de charge ; tenir compte de quota, des heures de bureau etc. la protection contre les attaques : contre les attaques «brute force» : ralentir les accès en général ; ralentir les accès suivant leur origine ; protéger contre les paquets surdimensionnés (le «ping of death», les «buffer overflow», etc.), protéger contre des tentatives de réseaux connus (par exemple de Chine ou de Fédération de Russie... ) la programmation en collaboration avec le firewall. NAT & PAT : traduction d adresse et de port Rappel du contexte pour communiquer sur Internet, il faut unique et publique (pas privée) ; du fait d un manque publiques, il est nécessaire de partager une avec plusieurs postes ; La solution du NAT Le NAT, «Network Address Translation» permet de traduire en une autre : réécrire source ou destination d une machine située derrière un routeur réalisant du NAT (c est le cas des «box ADSL»). Autre avantage du NAT : dissimuler des postes : il ne sont accessibles qu au travers du routeur et non directement. Pour communiquer depuis l extérieur vers une machine située à l intérieur, il faut configurer explicitement le routeur NAT and Packet NAT. Mangling with iptables To explain NAT in more detail, let's take a look at the following diagram: We have a Linux router with one Internet connection and a public IP address We can use whatever IP addresses we want from the private IP segments we presented in Chapter 1; so we choose for this network /24 as a subnet for our private network. The private IP segments are described in RFC 1918, and are: (10/8 prefix) (172.16/12 prefix) Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre ( /16 prefix) Now, since /24 is a private network, those IP addresses are not routed anywhere in the Internet, meaning that no host on the Internet can access the devices in our network (so, using private IP addresses also offers some protection, doesn't it?). In order for the hosts using private IP addresses to communicate with other hosts on the Internet, the NAT router rewrites their private IP addresses into its own public IP On utilise les réseaux dits privés, réseaux non «routables», (RFC 1918) : / / /8 Pour qu une machine du réseau privé communique sur Internet, le routeur NAT : réécrit dans les datagrammes privée de la machine avec sa publique ; doit différencier ses datagrammes de ceux des machines du réseau privé ; doit garder une trace de toutes les connexions TCP et UDP (!!!) qui le traverse ; On parle de «connection tracking». C est le principe des «stateful firewalls».

71 NAT & PAT : traduction d adresse et de port Le «connection tracking» pour UDP, on mémorise l envoi d un datagramme UDP et on autorise le retour d un datagramme UDP (d où le terme impropre de «connexion»!!!) sudo modprobe ip_conntrack sudo more /proc/net/ip_conntrack tcp udp ESTABLISHED src= dst= sport=80 dport=51911 src= dst= sport=51911 dport=80 [ASSURED] mark=0 use= src= dst= sport=138 dport=138 [UNREPLIED] src= dst= sport=138 dport=138 mark=0 use=2 pour UDP & TCP, on mémorise les numéros de port, le protocole, l état de la connexion et les timeouts. Différents scénarios de réécriture d adresse un vers un, one-to-one, 1:1 : une privée est traduite en publique ; un vers plusieurs, one-to-many, 1:many : privée est réécrite en publiques : pour chaque connexion le routeur NAT choisie publique parmi un ensemble disponible (utile pour le respect de vie privée ou privacy) ; plusieurs vers une, many-to-one, many:1 : privées sont réécrites en une publique. Si appartient au routeur NAT, on parle de «masquerading». plusieurs vers plusieurs, many-to-many, many:many : privées sont réécrites vers un ensemble publiques. NAT & PAT : l utilisation de netfilter et de la table nat SNAT, «Source NAT» & Masquerade le SNAT correspond à la réécriture de source du paquet ; en absence de configuration, une connexion initiée depuis Internet à destination d une machine du réseau privée est impossible ; C est une bonne protection pour les machines du réseau privé. il existe deux formes : le «static SNAT» : une ou privées sont réécrites vers la publique ; le «dynamic SNAT» : une ou privées sont réécrites vers un ensemble publiques. Netfilter utilise pour chaque nouvelle connexion publique la moins récemment utilisée ou aléatoire. le «masquerading» ou MASQ fonctionne Chapter 4 comme le «static NAT», mais on ne spécifie pas à utiliser : The following c est diagram celle presents de an example l interface of how SNAT de or Masquerade sortie works: du routeur. Exemple : la machine veut communiquer avec ; le routeur effectue du SNAT et réécrit source privée en , publique de sortie ; le routeur mémorise la connexion (les informations sont consultables dans /proc/net/ip_conntrack) ; au retour le routeur réécrit destination du paquet vers NAT and Packet Mangling with iptables & PAT : l utilisation de netfilter et de la table nat Using SNAT or Masquerade, can initiate a connection to , but can't initiate a connection to , because this is a private IP address. DNAT, «Destination NAT» le DNAT permet de faire correspondre publique à privée ; DNAT DNAT leor DNAT Destination Network est leaddress contraire Translations dumaps SNAT a public IP (si address onto utilise le SNAT pour traduire privée en publique a private IP address. DNAT is the reverse of SNAT; so, if you SNAT to translate a private etip le address DNAT into a public pour IP address faire and DNAT l opération to translate the same inverse public IP sur les publique et privée, alors on parle de «full address into the same private IP address, the result will be full NAT. DNAT NAT is usually»). used when you have servers behind NAT, so the same public IP address is mapped to different private IP addresses depending on ports or protocols. Le This process DNAT is also est called utilisé port forwarding. dans le cas de serveurs situés derrière le routeur NAT : la publique est traduite en Let's différentes take a look at the privées en fonction du numéro ou du protocole. On parle de «port forwarding». Exemple : une connexion est initiée de vers ; le routeur NAT détecte que la connexion ne concerne pas lui-même mais un serveur du réseau privé ; le routeur réécrit destination en privée du serveur , capable de traiter cette connexion ; les réponses en provenance de sont réécrites depuis la source [ 94 ] Sur certaines box ADSL, on parle de DMZ, «Demilitarized Zone» pour la fonction de DNAT : il redirige tout le trafic en provenance de l extérieur vers une machine du réseau privé en plus de faire du masquerading en sortie. Ce n est pas tout à fait la même notion, dans la mesure où une machine en DMZ n est pas du tout filtrée que ce soit en trafic entrant ou sortant. In this diagram, the computer with the IP address tries to initiate a connection to The packet is passed to the Linux router with the source IP address and destination IP address NAT & PAT : le «Full NAT» If the computer is SNATed or Masqueraded, the Linux router will change the source IP address in the packet header from to and will pass the packet towards according to the routing process. Information about this connection is stored in /proc/net/ip_conntrack. Le «Full NAT» ou «Full Cone NAT» When replies, the IP packet that arrives in the Linux router will have source IP address and destination IP address Linux searches for information about this packet in /proc/net/ip_conntrack, and finds a match against information stored at the previous step. At this point, Linux will change the réseau privé vers l extérieur. destination IP address in the packet header to and will pass the IP packet towards the NATed computer according to the routing process. Le SNAT permet de faire de la traduction d adresse uniquement lorsqu une connexion est réalisée depuis le la connexion est mémorisée ; [ 93 ] les paquets en retour subissent automatiquement le DNAT associé ; le DNAT permet de réécrire destination d une connexion initiée depuis l extérieur vers un port ou protocole choisie : on change destination vers du réseau privée. les paquets en retour subissent automatiquement le SNAT associé. Le «Full NAT» correspond à effectuer le DNAT d publique toujours vers la privée ; effectuer le SNAT d privée toujours vers la privée ; ce fonctionnement est appelé «DMZ» par les box ADSL : toute connexion non initiée depuis le réseau privée (donc non référencée dans la table du «connection tracking») est redirigée vers la privée et ce sans autorisation supplémentaire (pas de DNAT à configurer explicitement ni de SNAT non plus). Le PAT, «Port Address Translation» Il correspond à : permettre au routeur de faire du SNAT en mode masquerading (many-to-one) en changeant au besoin le port d origine ; faire du DNAT en fonction d un numéro de port choisi qui peut être différent du port de destination final. Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

72 iptables t nat; so there is no need to use Linux utilities insmod or modprobe for NAT to work. NAT : netfilter et la table nat The OUTPUT chain is not fully supported, so we will have to ignore that for now. Les chaînes The PREROUTING associées and POSTROUTING chains have meaningful names. The PREROUTING chain is sudo analyzed iptablesby -t nat the -nvl kernel before any routing decision is made. Therefore, what Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) we should do in the PREROUTING chain is to change the address of the destination pkts bytes target prot opt in out source destination IP and then leave it to the routing process to find the destination that we just Chain INPUT (policy ACCEPT 0 packets, 0 bytes) changed (DNAT). pkts bytes target prot opt in out source destination The POSTROUTING chain contains rules that the kernel analyzes after a routing decision is made. This means that we have a path to the destination, and so we can change the source IP address if that path is outside our network (SNAT). Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination!"#$%&'(#$)*%$+,-*./$)#%0#/$+1*22#)/#%$3.$+#$%#4#//#%$/3.5$(#5$)*6.#/57 89#0)(#$+#$-:2;:#%$+#$23"-:'.%*/:3"$< la chaîne PREROUTING : elle est traitée avant toute [ 100 décision ] de routage : c est dans cette chaîne que l on +)(0#A5BC#-"#,;%<+)(0"#31"22"#</&'%,"8 effectue le DNAT : on changera de destination du datagramme et on laissera le routage trouver la! M3:/$."$%,5#*.$230)3%/*"/$K$53.5$%,5#*.9$<$=N$ON$#/$>$%#(:,5$)*%$."$%3./#.%$IB$P5/%.2/.%#$#"$ destination que l on vient de changer ;,/3:(#Q7 la chaîne POSTROUTING : elle est traitée après la décision de routage : c est dans cette chaîne que l on le R$)*%/:%$+.$%,5#*.$>$3"$*43./#$."$%3./#.%$IH$)3.%$*22,+#%$S$T"/#%"#/7 *$U$V3""#%$."#$23"-:'.%*/:3"$)355:W(#$+#$2#$%,5#*.$P*+%#55#5$T?$%,5#*.N$0*56.#$#/$*+%#55#$ SNAT : on a une destination pour le datagramme après le routage et maintenant on peut changer l origine du +#5$:"/#%-*2#5$+.$%3./#.%Q datagramme en correspondant à l interface de sortie (c-à-d du routeur qui permet d être joint X"$+,5:%#$#--#2/.#%$(#5$3),%*/:3"5$$5.:Y*"/#5$< en retour sur cette interface de sortie). Z#$%,5#*.$=$Y#./$*22,+#%$*.$0*:($#/$*.$[#W$\ Z#$%,5#*.$O$Y#./$*22,+#%$*.$0*:($0*:5$)*5$*.$]#W Z#$%,5#*.$O$)#./A:($;,W#%'#%$(#$5:/#$[#W$+#$(1#"/%#)%:5#$^ W$U$T"+:6.#%$(*$23"-:'.%*/:3"$)3.%$2;*6.#$%3./#.%$+#5$-:%#[*((5$)%,5#"/$5.%$#.97!"$5#%Y#.%$V_M$*$,/,$:"5/*((,$+*"5$(#$%,5#*.$>$)3.%$-3"2/:3""#%$.":6.#0#"/$)3.%$(#5$ Description rapide de STUN, «Session Traversal Utilities for (NAT)», RFC 5389 %,5#*.9$=N$O$#/$>7$?*%$53.2:5$+#$5,2.%:/,N$:($+3:/$`/%#$:0)355:W(#$+#$23"/*2/#%$."$5#%Y#.%$V_M$#9/,%:#.%7$ Ce protocole sert à savoir si l utilisateur est «derrière» un NAT, comment est configuré le NAT et si un flux UDP entrant 2$U$a3+:-:#%$(#5$-:2;:#%5$+#$-:(/%*'#$#"$23"5,6.#"2#7 est possible (par exemple pour faire de la VoIP). SNAT is one of the most commonly used types of NAT with iptables because of the topology used. Let's see, for example, the following scenario: Network /24 is in our office. We have an Ethernet connection from our provider, which assigned us the IP address /30 and the default gateway NAT : les commandes iptables de netfilter et la table nat All the computers in the /24 network have the default gateway set to SNAT Our Linux router has two Ethernet interfaces: Eth0, with the IP address and netmask , is connected to a switch that connects other devices in the /24 network. Eth1, with the IP address and netmask , is connected to the provider's CPE (Customer Premises Equipment), which can be a DSL modem, cable modem, media converter, etc. DNAT iptables t nat A PREROUTING d j DNAT -to We can set up SNAT so that all devices in the /24 network access the Internet with only one rule: iptables t nat A POSTROUTING s /24 j SNAT -to Ou dans le cas où du routeur est configurée dynamiquement (par exemple en DHCP) iptables t nat A POSTROUTING s /24 j MASQUERADE Pour donner un ensemble : iptables t nat A POSTROUTING s /24 j SNAT -to Redirection vers une machine sur le port SSH, lorsque la connexion vient sur le routeur sur le port : iptables t nat A POSTROUTING s /24 j SNAT -to iptables t nat A PREROUTING d p tcp -dport j DNAT -to :22 This command has the same effect as the following command, which we would use NAT and Packet Mangling with iptables if the IP address of Eth1 were dynamically assigned, or if we used a dial-up modem Proxy instead of transparent Ethernet card: Example: mark packets to with nfmark 6: [ 102 ] iptables -t mangle -A POSTROUTING -d j MARK --set-mark 6 Un proxy transparent est un moyen de forcer les utilisateurs à utiliser un proxy, c-à-d un intermédiaire de connexion, même si leur navigateur n est pas configuré pour le faire : The TOS field is 8 bits long and was discussed in the previous chapter. Alteration of the TOS field is very useful for QoS. For this, iptables uses the TOS target, which has iptables t nat A PREROUTING s /24 p tcp the -dport --set-tos 80 option. j We REDIRECT can see TOS -to-port target options 3128 using --help in the command line: Le proxy est installé sur le routeur et le «REDIRECT» un DNAT vers iptables dutos routeur --help lui-même. Le proxy peut être utilisé pour servir de cache Web, ou pour filtrer some leslines contenus missing dangereux. TOS target v1.3.5 options: --set-tos value Netfilter : modifier les paquets, la table mangle L utilisation de cette table permet de modifier le contenu de certains champs du datagramme IP : le champs TOS, «Type Of Service»/DSCP, «Differentiated There are only Services five TOS values field we can» : set; modifier so the TOS la target priorité doesn't modify du datagramme IP en fonction de son origine, de son contenu etc. the whole TOS byte. However, this can be done with DSCP (Differentiated Services Field Codepoints). The DSCP bits are the first six bits in the TOS byte, as shown in Cette modification permet de faire de la QoS entre routeurs the following capables figure: de gérer ces priorités (RFC 2474, 2475). Precedence Level Description 7 Stays the same (link layer and routing protocol keep alive) 6 Stays the same (used for IP routing protocols) 5 Express Forwarding (EF) 4 Class 4 3 Class 3 2 Class 2 1 Class 1 0 Best effort Set Type of Service field to one of the following numeric or descriptive values: Minimize-Delay 16 (0x10) Maximize-Throughput 8 (0x08) Maximize-Reliability 4 (0x04) Minimize-Cost 2 (0x02) Normal-Service 0 (0x00) Example: set TOS to Maximize-Throughput for outgoing FTP data: iptables -t mangle -A POSTROUTING -p tcp --sport 20 -j TOS --set-tos 8 iptables has the DSCP target that can be used to alter the DSCP bits. The options can be found using --help with the DSCP target. iptables -j DSCP --help some lines missing DSCP target options --set-dscp value Set DSCP field in packet header to value le champs TTL : pour le diminuer : empêcher la sortie de certains datagrammes, ou au contraire l augmenter : masquer le passage par le routeur ; [ 114 ] marquer le datagramme : permet ensuite d appliquer de la QoS sur le paquet en collaboration avec l outil traffic control, tc. iptables -t mangle -A FORWARD -p tcp -dport 80 -j DSCP -set-dscp 1 iptables -t mangle -A FORWARD -p tcp -dport 80 -j DSCP -set-dscp-class EF TTL : permet de modifier la valeur du champ de TTL : -ttl-set : positionne la valeur ; -ttl-dec et -ttl-inc : incrémente la valeur du TTL. iptables -t mangle -A PREROUTING -i eth0 -j TTL -ttl-inc 1 Cours «Réseaux Avancés I» P-F. Bonnefoi 12 décembre

Plan. 1. Introduction. 1.1 Notion de réseau. Réseau extrémité. Le cœur du réseau. Les Protocoles de Télécommunications Evolution Internet Cours de DEA

Plan. 1. Introduction. 1.1 Notion de réseau. Réseau extrémité. Le cœur du réseau. Les Protocoles de Télécommunications Evolution Internet Cours de DEA Plan Les Protocoles de Télécommunications Evolution Internet Cours de DEA Isabelle CHRISMENT ichris@loria.fr Introduction Routage dans l Internet IPv6 Communication de groupes et l Internet x sans fils,

Plus en détail

Formation Réseaux : Notions de base

Formation Réseaux : Notions de base Formation x Formation Réseaux : Notions Jean-Philippe André (), p2009 3. Couche Septembre 2007 Que sont les x? Formation x Wikipedia.org : Un est un ensemble de nœuds (ou pôles) reliés entre eux par des

Plus en détail

Cours de Réseau et communication Unix n 6

Cours de Réseau et communication Unix n 6 Cours de Réseau et communication Unix n 6 Faculté des Sciences Université d Aix-Marseille (AMU) Septembre 2013 Cours écrit par Edouard Thiel, http://pageperso.lif.univ-mrs.fr/~edouard.thiel. La page du

Plus en détail

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6 IPv6 Internet Control Message Protocol ICMPv6 Objectif: Comparer ICMPv4 avec ICMPv6 v.1b IPv6 Théorie et Pratique & Microsoft Introduction to IPv6 1 ICMPv6 (RFC 2463) Trois fonctions déjà présentes en

Plus en détail

VI - La couche réseau : adresse IP. LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur

VI - La couche réseau : adresse IP. LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur VI - La couche réseau : adresse IP LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur 86 La couche réseau Achemine les données entre l émetteur et le destinataire au travers de différents réseaux

Plus en détail

1 Introduction aux réseaux Concepts généraux

1 Introduction aux réseaux Concepts généraux Plan 2/40 1 Introduction aux réseaux Concepts généraux Réseaux IUT de Villetaneuse Département Informatique, Formation Continue Année 2012 2013 http://www.lipn.univ-paris13.fr/~evangelista/cours/2012-2013/reseaux-fc

Plus en détail

Commandes utiles à connaître

Commandes utiles à connaître La commande ping Commandes utiles à connaître La commande ping sert à tester les fonctions de transmission et de réception de la carte réseau, la configuration TCP/IP et la connectivité réseau. Les différentes

Plus en détail

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter.

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter. Exonet - Ressources mutualisées en réseau Description du thème Propriétés Intitulé long Formation concernée Présentation Modules Activités Compétences ; Savoir-faire Description Ressources mutualisées

Plus en détail

Plan. Programmation Internet Cours 3. Organismes de standardisation

Plan. Programmation Internet Cours 3. Organismes de standardisation Plan Programmation Internet Cours 3 Kim Nguy ên http://www.lri.fr/~kn 1. Système d exploitation 2. Réseau et Internet 2.1 Principes des réseaux 2.2 TCP/IP 2.3 Adresses, routage, DNS 30 septembre 2013 1

Plus en détail

Nicolas Delestre et Géraldine Del Mondo

Nicolas Delestre et Géraldine Del Mondo Internet - Généralités Nicolas Delestre et Géraldine Del Mondo Internet - généralités - V1.0.1 1 / 37 Plan 1 Historique 2 Architecture TCP/IP 3 Adressage Généralité Masque de réseau Sous réseaux CIDR 4

Plus en détail

Rappels réseaux LPSIL ADMIN

Rappels réseaux LPSIL ADMIN Rappels réseaux LPSIL ADMIN Marie-Agnès Peraldi-Frati Maître de Conférences en Informatique LPSIL ADMIN 2012 M.A. Peraldi-Frati - IUT Nice Côte d Azur Déroulement du module 2x3h heures de cours 2 x3h de

Plus en détail

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence Réseaux - Cours 3 IP : introduction et adressage Cyril Pain-Barre IUT Informatique Aix-en-Provence Semestre 1 - version du 13/11/2009 1/32 Cyril Pain-Barre IP : introduction et adressage 1/24 TCP/IP l

Plus en détail

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6 IPv6 Internet Control Message Protocol ICMPv6 Objectif: Comparer ICMPv4 avec ICMPv6 v.1c IPv6 Théorie et Pratique & Microsoft Introduction to IPv6 1 ICMPv6 (RFC 4443) Messages de service de IPv6 Trois

Plus en détail

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr DIFF DE BASE Serendip serendip@via.ecp.fr Samy samy@via.ecp.fr I. INTRODUCTION AU RÉSEAU RÉSEAU : /ʁE.ZO/ N.M. DÉR., AU MOYEN DU SUFF. -EAU, DE L'A. FR. REIZ, REZ «FILET» (RETS); RÉSEAU A ÉTÉ EN CONCURRENCE

Plus en détail

Réseaux informatiques

Réseaux informatiques PC / Réseau Réseaux informatiques Ethernet, WiFi, Bluetooth Objectif Cette présentation reprend les notions de base : Réseaux locaux et étendus Éléments du réseau local, topologie Réseau Ethernet Sous-couches

Plus en détail

Fiche de Réseau de données

Fiche de Réseau de données Fiche de Réseau de données V.R May 25, 2015 Contents I Le modèle OSI 2 1 Concepts de base 2 2 Modèle OSI 4 II Réseau de données 5 1 Erreurs et correction d erreurs 5 2 Contrôle de flux 6 3 Contrôle de

Plus en détail

Administration réseau Introduction

Administration réseau Introduction Administration réseau Introduction A. Guermouche A. Guermouche Cours 1 : Introduction 1 Plan 1. Introduction Organisation Contenu 2. Quelques Rappels : Internet et le modèle TCP/ Visage de l Internet Le

Plus en détail

Réseaux - Cours 4. IP : introduction et adressage. Cyril Pain-Barre. version du 18/2/2013. IUT Informatique Aix-en-Provence

Réseaux - Cours 4. IP : introduction et adressage. Cyril Pain-Barre. version du 18/2/2013. IUT Informatique Aix-en-Provence Réseaux - Cours 4 : introduction et adressage Cyril Pain-Barre IUT Informatique Aix-en-Provence version du 18/2/2013 1/34 Cyril Pain-Barre : introduction et adressage 1/26 TCP/ l architecture d Internet

Plus en détail

Pile de protocoles TCP / IP

Pile de protocoles TCP / IP Pile de protocoles TCP / IP Fiche de cours La pile de protocoles TCP/IP est le standard de fait le plus utilisé au monde comme ensemble protocolaire de transmission dans les réseaux informatiques. La raison

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

MPLS, GMPLS et NGN. Sécurité MPLS. Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr. Ingénierie Conseils Services Télécommunications

MPLS, GMPLS et NGN. Sécurité MPLS. Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr. Ingénierie Conseils Services Télécommunications MPLS, GMPLS et NGN Sécurité MPLS Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr 1 Contents Treats Requirements VPN Attacks & defence 3 8 14 19 2 3 Threats Threats Denial of service Resources

Plus en détail

Administration des ressources informatiques

Administration des ressources informatiques 1 2 Cours réseau Supports de transmission Les câbles Coaxial Ethernet RJ45 Fibre optique Supports de transmission 3 Les câbles Ethernet RJ45 Supports de transmission 4 Les câbles Coaxial Type BNC Cours

Plus en détail

Cours des réseaux Informatiques (2010-2011) rziza@fsr.ac.ma

Cours des réseaux Informatiques (2010-2011) rziza@fsr.ac.ma Cours des réseaux Informatiques (2010-2011) Rziza Mohammed rziza@fsr.ac.ma Les réseaux Locaux Un réseau local ou LAN en anglais (Local Area Network) permet la connexion d un ensemble de postes afin d échanger

Plus en détail

Administration Système

Administration Système Administration Système Nadi Tomeh 10 mars 2015 Conception du réseau Configuration/installation d une station de travail Switching Hub Ether 10/100 COL 12345678 100 1236 125080! 10 Power Intégration dans

Plus en détail

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30 Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015

Plus en détail

Téléinformatique! Réseaux Locaux

Téléinformatique! Réseaux Locaux Téléinformatique! Réseaux Locaux AS - 2010/2011 Thomas Morsellino IUT Bordeaux 1 (Dépt. Info) Réseau 2 n Réseau : ensemble d ordinateurs/boîtiers reliés entre eux par un support de transmission : ces éléments

Plus en détail

Chapitre 6-2. Ce chapitre présente le IPv6 ainsi que les protocoles de routage

Chapitre 6-2. Ce chapitre présente le IPv6 ainsi que les protocoles de routage Chapitre 6-2 Ce chapitre présente le IPv6 ainsi que les protocoles de routage 1. Présentation de IPv6 1.2. Adressage v6; 1.5 Le format V6 1.3. Les types d adressage; 1.6 Fonctionnement Multicasting 1.4

Plus en détail

Chapitre VIII : Introduction aux réseaux. Motivations. Notion de système distribué. Motivations Différents types de SE

Chapitre VIII : Introduction aux réseaux. Motivations. Notion de système distribué. Motivations Différents types de SE Chapitre VIII : Introduction aux réseaux Eric.Leclercq@u-bourgogne.fr Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 4 mai 2006 1 Structures de Systèmes distribués

Plus en détail

NFA083 Réseau et Administration Web TCP/IP

NFA083 Réseau et Administration Web TCP/IP NFA083 Réseau et Administration Web TCP/IP Sami Taktak sami.taktak@cnam.fr Centre d Étude et De Recherche en Informatique et Communications Conservatoire National des Arts et Métiers Rôle de la Couche

Plus en détail

RESEAUX ARCHITECTURES EN COUCHES. J.L Damoiseaux ; Dpt R&T 1

RESEAUX ARCHITECTURES EN COUCHES. J.L Damoiseaux ; Dpt R&T 1 RESEAUX ARCHITECTURES EN COUCHES J.L Damoiseaux ; Dpt R&T 1 Plan Notions sur les réseaux Couche/Service/Protocole Le modèle OSI Le modèle TCP/IP J.L Damoiseaux ; Dpt R&T 2 Problématique J.L Damoiseaux

Plus en détail

Ethernet Industriel. Composants d une Infrastructure Ethernet

Ethernet Industriel. Composants d une Infrastructure Ethernet Ethernet Industriel Composants d une Infrastructure Ethernet Ethernet C est quoi Ethernet? Ethernet est une méthode de transmission d un signal entre deux appareils ou plus sur un média partagé. Cela ne

Plus en détail

Partie 3 Les réseaux informatiques

Partie 3 Les réseaux informatiques Partie 3 Les réseaux informatiques EMI 10/11 1 Définitions Un réseau est un ensemble d équipements informatiques interconnectés On distingue les nœuds qui sont les équipement actifs des éléments d interconnexion

Plus en détail

4. Les réseaux locaux

4. Les réseaux locaux 4. Les réseaux locaux 4.1 Types des réseaux 4.2 Modèle en couches et réseaux locaux 4.3 Topologie et câblage 4.4 Méthodes d accès au médium CSMA/CD Anneau à jeton Caractéristiques «Réseau» Réseau : ensemble

Plus en détail

Concepts de base de l Internet Protocol IPv4. Module 2

Concepts de base de l Internet Protocol IPv4. Module 2 Concepts de base de l Internet Protocol IPv4 Module 2 Objectifs Comprendre les bases du protocole IPv4 IPv4 Internet Protocol version 4 (IPv4) est la 4ème version du protocole d internet et la première

Plus en détail

Chap.1: Introduction à la téléinformatique

Chap.1: Introduction à la téléinformatique Chap.1: Introduction à la téléinformatique 1. Présentation 2. les caractéristiques d un réseau 3. les types de communication 4. le modèle OSI (Open System Interconnection) 5. l architecture TCP/IP 6. l

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant RÉSEAUX INFORMATIQUES

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant RÉSEAUX INFORMATIQUES RÉSEAUX INFORMATIQUES Page:1/13 Objectifs de l activité pratique : Réseau Ethernet : - câblage point à point, test d écho ; commandes «mii-tool» et «linkloop» Commutation Ethernet : - câblage d un commutateur

Plus en détail

Réseau en automatisme industriel Ethernet les réseaux IP

Réseau en automatisme industriel Ethernet les réseaux IP Rappel Réseau en automatisme industriel Ethernet les réseaux IP Le modèle OSI définit sept couches. TCP/IP est basé sur le modèle DOD, qui ne comporte que quatre couches, mais en cohérence avec le modèle

Plus en détail

TD2 : CORRECTION. Exercice 1 : 1. Quel est l avantage de la séparation de l adressage en deux parties dans l adressage Internet?

TD2 : CORRECTION. Exercice 1 : 1. Quel est l avantage de la séparation de l adressage en deux parties dans l adressage Internet? TD2 : CORRECTION I. connaître son environnement réseau a. Quelle est l adresse IPv4 de votre PC? l adresse IPv6? ipconfig : Adresse IPv4..............: 192.168.1.13 Masque de sous-réseau.... : 255.255.255.0

Plus en détail

Sniffing et analyse de paquets

Sniffing et analyse de paquets 1 Outils Sniffing et analyse de paquets Analyser : http://analyzer.polito.it/install/default.htm RASPPPoE : http://user.cs.tu-berlin.de/~normanb/ 2 Prérequis DSLAM (Digital Subscriber Line Multiplexer)

Plus en détail

M1 Informatique 2015/16. E. Godard. Couche Réseau IPv4

M1 Informatique 2015/16. E. Godard. Couche Réseau IPv4 Réseaux M1 Informatique 2015/16 E. Godard Aix-Marseille Université Couche Réseau IPv4 Introduction Vous êtes Ici - Partie 1 Vous êtes Ici - Partie 1 7 OSI Application TCP/IP Application 6 5 Presentation

Plus en détail

L3 informatique Réseaux : Configuration d une interface réseau

L3 informatique Réseaux : Configuration d une interface réseau L3 informatique Réseaux : Configuration d une interface réseau Sovanna Tan Septembre 2009 Révision septembre 2012 1/23 Sovanna Tan Configuration d une interface réseau Plan 1 Introduction aux réseaux 2

Plus en détail

Formation réseau en IUP2

Formation réseau en IUP2 Formation réseau en IUP2 Premier semestre : les réseaux locaux ½ Cours : 22 h avec A. Giacometti ½ TD : 4 x 2 h avec A. Giacometti ½ TP : 4 x 2 h avec A. Lefevre Installation et administration NT et Linux

Plus en détail

Cours Réseau Esial 2ème 2005-2006 1. Introduction. Plan. 1. Introduction. Notion de réseau. 1.1 Pourquoi des réseaux?

Cours Réseau Esial 2ème 2005-2006 1. Introduction. Plan. 1. Introduction. Notion de réseau. 1.1 Pourquoi des réseaux? Cours Esial 2ème 2005-2006 1. Introduction Isabelle CHRISMENT ichris@loria.fr Computer nertworking: a top-down approach featuring the Internet J.F. Kurose + K.W. Ross x Andrew Tannenbaum 1 2 Plan Introduction

Plus en détail

Introduction. Adresses

Introduction. Adresses Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom

Plus en détail

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes.

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes. 1 2 Deux groupes guident les évolutions de l Internet : un groupe de recherche, l IRTF (Internet Research Task Force) un groupe de développement, l IETF (Internet Engineering Task Force) ; travaille sur

Plus en détail

PC industriels et disques associés

PC industriels et disques associés Technical Service Bulletin PRODUIT DATE CREATION DATE MODIFICATION FICHIER PC INDUSTRIEL 23/03/2010 201005 REV A PC industriels et disques associés English version follows. SF01 (du 4 au 8 janvier 2010)

Plus en détail

L adressage IP & MAC

L adressage IP & MAC L adressage IP & MAC 1. Adresse MAC 1.1. Définition Dans un réseau informatique, l adresse MAC (Media Access Control) est l identifiant physique d une carte réseau d un périphérique. Stockée par le constructeur

Plus en détail

VTP. LAN Switching and Wireless Chapitre 4

VTP. LAN Switching and Wireless Chapitre 4 VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des

Plus en détail

Nicolas Delestre et Géraldine Del Mondo. Masque de réseau Sous réseaux CIDR

Nicolas Delestre et Géraldine Del Mondo. Masque de réseau Sous réseaux CIDR Plan 1 Historique Internet - Généralités Nicolas Delestre et Géraldine Del Mondo 2 Architecture TCP/IP 3 Adressage Généralité Masque de réseau Sous réseaux CIDR 4 Nommage Internet - généralités - V1.0.1

Plus en détail

2. DIFFÉRENTS TYPES DE RÉSEAUX

2. DIFFÉRENTS TYPES DE RÉSEAUX TABLE DES MATIÈRES 1. INTRODUCTION 1 2. GÉNÉRALITÉS 5 1. RÔLES DES RÉSEAUX 5 1.1. Objectifs techniques 5 1.2. Objectifs utilisateurs 6 2. DIFFÉRENTS TYPES DE RÉSEAUX 7 2.1. Les réseaux locaux 7 2.2. Les

Plus en détail

Le Multicast. A Guyancourt le 16-08-2012

Le Multicast. A Guyancourt le 16-08-2012 Le Multicast A Guyancourt le 16-08-2012 Le MULTICAST Définition: On entend par Multicast le fait de communiquer simultanément avec un groupe d ordinateurs identifiés par une adresse spécifique (adresse

Plus en détail

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet Chapitre I La couche réseau 1. Couche réseau 1 Historique de l Internet Né 1969 comme projet (D)ARPA (Defense) Advanced Research Projects Agency; US Commutation de paquets Interconnexion des universités

Plus en détail

BAC PRO Système Electronique Numérique. Nom : Le routage Date : LE ROUTAGE

BAC PRO Système Electronique Numérique. Nom : Le routage Date : LE ROUTAGE 1. Sommaire LE ROUTAGE 1. Sommaire... 1 2. Un routeur, pour quoi faire?... 1 3. Principe de fonctionnement du routage.... 2 4. Interfaces du routeur... 3 4.1. Côté LAN.... 3 4.2. Côté WAN.... 3 5. Table

Plus en détail

Convergence. Introduction (1/24) Introduction (2/24) Introduction (4/24) Introduction (3/24)

Convergence. Introduction (1/24) Introduction (2/24) Introduction (4/24) Introduction (3/24) Introduction (1/24) Internet = Interconnexion de réseaux et Services Informatiques (Années 60) Applications Informatiques: Transfert de fichier, Messagerie, News Internet = Interconnexion de réseaux et

Plus en détail

Introduction aux Technologies de l Internet

Introduction aux Technologies de l Internet Introduction aux Technologies de l Internet Antoine Vernois Université Blaise Pascal Cours 2006/2007 Introduction aux Technologies de l Internet 1 Au programme... Généralités & Histoire Derrière Internet

Plus en détail

Le protocole AFDX/ARINC 664

Le protocole AFDX/ARINC 664 Le protocole AFDX/ARINC 664 Pascal Berthou berthou@laas.fr Antécédents Depuis l entrée en service de l A320 en 1998 La commande «fly-by-wire» s impose dans les nouvelles construction aéronautique. De nombreux

Plus en détail

Cours réseaux Modèle OSI

Cours réseaux Modèle OSI Cours réseaux Modèle OSI IUT 1 Université de Lyon Introduction: le modèle OSI Un modèle théorique : le modèle OSI (Open System Interconnection) A quoi ça sert: Nécessité de découper/classifier l ensemble

Plus en détail

DIFF AVANCÉE. Samy. samy@via.ecp.fr

DIFF AVANCÉE. Samy. samy@via.ecp.fr DIFF AVANCÉE Samy samy@via.ecp.fr I. RETOUR SUR QUELQUES PROTOCOLES COUCHE FONCTIONS Protocoles 7 Application 6 Présentation 5 Session 4 Transport 3 Réseau 2 Liaison 1 Physique Interface entre l utilisateur

Plus en détail

Présentation du modèle OSI(Open Systems Interconnection)

Présentation du modèle OSI(Open Systems Interconnection) Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:

Plus en détail

Architectures de communication. «Architecture protocolaire réseau» «protocolaire»

Architectures de communication. «Architecture protocolaire réseau» «protocolaire» Architectures de communication C. Pham Université de Pau et des Pays de l Adour Département Informatique http://www.univ-pau.fr/~cpham Congduc.Pham@univ-pau.fr «Architecture protocolaire réseau» Architecture

Plus en détail

Réseaux Réseaux à diffusion

Réseaux Réseaux à diffusion Réseaux Réseaux à diffusion Exemple 1 (Réseau sans fil) Chaque station fait office d emetteur et de récepteur Chacune a une portée radio Si deux machines émettent en même temps, interférences E. Jeandel

Plus en détail

Stella MARC-ZWECKER. Téléinformatique 1. Objectifs du cours. Réseaux et Protocoles - L3 info

Stella MARC-ZWECKER. Téléinformatique 1. Objectifs du cours. Réseaux et Protocoles - L3 info Objectifs du cours Réseaux et Protocoles - L3 info Stella MARC-ZWECKER Maître de conférences Dpt. Informatique ULP stella@dpt-info.u-strasbg.fr Mécanismes de base de la transmission des données dans les

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v3 Date : 7 May 2014 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax: +49

Plus en détail

BASES DES RESEAUX UNITE DE FORMATION

BASES DES RESEAUX UNITE DE FORMATION MINISTERE DE LA COMMUNAUTE FRANCAISE ADMINISTRATION GENERALE DE L ENSEIGNEMENT ET DE LA RECHERCHE SCIENTIFIQUE ENSEIGNEMENT DE PROMOTION SOCIALE DE REGIME 1 DOSSIER PEDAGOGIQUE BASES DES RESEAUX UNITE

Plus en détail

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad Outils d'analyse de la sécurité des réseaux HADJALI Anis VESA Vlad Plan Introduction Scanneurs de port Les systèmes de détection d'intrusion (SDI) Les renifleurs (sniffer) Exemples d'utilisation Conclusions

Plus en détail

Introduction aux réseaux

Introduction aux réseaux Introduction aux réseaux Présentation de TCP/IP et de la programmation. Julien OLIVAIN julien.olivain@lsv.ens-cachan.fr> LSV - ENS de Cachan Plan Introduction générale. Protocoles de communication. Organisation

Plus en détail

Semaine 4 : le protocole IP

Semaine 4 : le protocole IP Semaine 4 : le protocole IP Séance 1 : l adressage... 1 Séance 2 : le protocole IP... 8 Séance 3 : l adresse IP... 16 Séance 1 : l adressage Introduction Au cours de cette séance, nous allons parler de

Plus en détail

Administration réseau Routage et passerelle

Administration réseau Routage et passerelle Administration réseau Routage et passerelle A. Guermouche A. Guermouche Cours 2 : Routage et passerelle 1 Plan 1. Introduction 2. Routage dans IP Principes de base Manipulation des tables de routage 3.

Plus en détail

Introduction à Ethernet, CSMA/CD, 802.3 16.12.13 1

Introduction à Ethernet, CSMA/CD, 802.3 16.12.13 1 Introduction à Ethernet, CSMA/CD, 802.3 16.12.13 1 Ethernet de Metcalfe Connexion de toutes les stations à un même câble 16.12.13 2 Ethernet et OSI Medium Access Control LLC Liaison MAC Couche 2 Physique

Plus en détail

TP1 : ETHERNET / WIRESHARK

TP1 : ETHERNET / WIRESHARK TP1 : ETHERNET / WIRESHARK Objectif : Se familiariser avec les technologies Ethernet : câblage, équipements actifs, mise en oeuvre, logiciel d'analyse réseau. I. Introduction à l'analyse réseau L'analyseur

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v2 Date : 23 July 2013 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax:

Plus en détail

NOTIONS DE RESEAUX INFORMATIQUES

NOTIONS DE RESEAUX INFORMATIQUES NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des

Plus en détail

PRINCIPES DU ROUTAGE IP PRINCIPES DU ROUTAGE IP IP ROUTING PRINCIPALS

PRINCIPES DU ROUTAGE IP PRINCIPES DU ROUTAGE IP IP ROUTING PRINCIPALS PRINCES DU ROUTAGE ROUTING PRINCALS securit@free.fr Slide n 1 TABLE DES MATIERES PLAN PROBLEMATIQUES PRINCES DU ROUTAGE PROTOCOLES DE ROUTAGE ROUTAGE STATIQUE ROUTAGE DYNAMIQUE DISTANT VECTOR vs LINK STATE

Plus en détail

IP - Plan. IP - Plan. Interconnexion. Interconnexion. 1. Interconnexion IP

IP - Plan. IP - Plan. Interconnexion. Interconnexion. 1. Interconnexion IP - Plan 1. Interconnexion 2. Relayage et routage 4. Adressage 5. Datagramme - Plan 1. Interconnexion concept d'interconnexion rôle de service de 2. Relayage et routage 4. Adressage 5. Datagramme Kim Thai

Plus en détail

Bases TCP/IP. Alain Patrick AINA. aalain@nsrc.org

Bases TCP/IP. Alain Patrick AINA. aalain@nsrc.org Bases TCP/IP Alain Patrick AINA aalain@nsrc.org Réseaux Architecture TCP/IP Agenda - Niveau interface réseau - Ethernet - Liaison Point à Point Niveau Internet IP - Adressage IP - Routage IP Niveau Transport

Plus en détail

ATM et réseaux informatiques

ATM et réseaux informatiques ATM et réseaux informatiques ATM comme réseau informatique 1) Connecter directement des postes informatiques => ATM natif («socket ATM») profite de la QoS ATM ré-écriture applications? Compatibilité avec

Plus en détail

LE RESEAU INFORMATIQUE

LE RESEAU INFORMATIQUE Sommaire LE RESEAU INFORMATIQUE Introduction Objectifs 1. Pourquoi mettre en place un réseau? 2. Définitions 3. Les modes de réseau 4. Les types de réseaux I- Configuration d un réseau LAN. 1. Outils et

Plus en détail

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage: Administration d un Intranet Rappel: Le routage dans Internet La décision dans IP du routage: - Table de routage: Adresse destination (partie réseau), netmask, adresse routeur voisin Déterminer un plan

Plus en détail

Services d infrastructure réseaux

Services d infrastructure réseaux Services d infrastructure réseaux Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Services d infrastructure réseaux 1 / 30 Plan 1 Adressage

Plus en détail

Un monde de TCP/IP. Série de rappels frati@nyx.unice.fr

Un monde de TCP/IP. Série de rappels frati@nyx.unice.fr Un monde de TCP/IP Série de rappels frati@nyx.unice.fr 1 Request for Comments Standards officiels de la communauté Internet Beaucoup de RFC sont uniquement publiées dans un but d information http://www.rfc.org

Plus en détail

Algorithmique et langages du Web

Algorithmique et langages du Web Cours de Algorithmique et langages du Web Jean-Yves Ramel Licence 1 Peip Biologie Groupe 7 & 8 Durée totale de l enseignement = 46h ramel@univ-tours.fr Bureau 206 DI PolytechTours Organisation de la partie

Plus en détail

TP N o 2 de Réseaux Etude des protocoles ARP et ICMP

TP N o 2 de Réseaux Etude des protocoles ARP et ICMP TP N o 2 de x Etude des protocoles ARP et ICMP Pascal Sicard 1 INTRODUCTION L objectif de ce TP est d observer et comprendre le protocole de résolution d adresse ARP, et un protocole annexe : ICMP. Nous

Plus en détail

Réseaux. Types de réseaux Caractéristiques Comment ça marche Protocoles Réseaux locaux Interconnection de réseaux. IP et routage

Réseaux. Types de réseaux Caractéristiques Comment ça marche Protocoles Réseaux locaux Interconnection de réseaux. IP et routage Réseaux Types de réseaux Caractéristiques Comment ça marche Protocoles Réseaux locaux Interconnection de réseaux IP et routage 1 Introduction aux réseaux informatiques Un réseau informatique (computer

Plus en détail

1. Normes et protocoles

1. Normes et protocoles 1. Normes et protocoles 1.1. Protocoles Modèles OSI et TCP/IP La réussite d une communication entre des hôtes sur un réseau requiert l interaction de nombreux protocoles (règles de communication) différents.

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD2 Exercices Exercice 1 : Dressez la liste des 5 périphériques finaux, 6 périphériques intermédiaires et 3 formes de support réseau. Périphériques finaux (hôtes): ordinateur de bureau, ordinateur

Plus en détail

INSTALLATION D UN SERVEUR D IMPRESSION MODELE D-LINK DP-301U

INSTALLATION D UN SERVEUR D IMPRESSION MODELE D-LINK DP-301U 1 INSTALLATION D UN SERVEUR D IMPRESSION MODELE D-LINK DP-301U 2 LIEU CONCERNE : Salles de formation 1 et 2 OBJECTIFGENERAL : partager une imprimante via le réseau local pour centraliser les travaux d

Plus en détail

INFO 3020 Introduction aux réseaux d ordinateurs

INFO 3020 Introduction aux réseaux d ordinateurs INFO 3020 Introduction aux réseaux d ordinateurs Philippe Fournier-Viger Département d informatique, U.de M. Bureau D216, philippe.fournier-viger@umoncton.ca Automne 2014 1 Introduction Au dernier cours

Plus en détail

Réseaux Couche Réseau Adresses

Réseaux Couche Réseau Adresses Réseaux Couche Réseau Adresses E. Jeandel Résumé des épisodes précédents Comment un ensemble de machines, reliées physiquement entre elles, peuvent communiquer Problématique Internet = Interconnexion de

Plus en détail

TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage

TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage Auteur: Congduc Pham, Université de Pau et des Pays de l Adour 1 Introduction Ce TP s attache aux aspects

Plus en détail

Les réseaux locaux. Il comporte à la fois des aspects physiques (matériels) et logiques (logiciels). Satellite

Les réseaux locaux. Il comporte à la fois des aspects physiques (matériels) et logiques (logiciels). Satellite 1/11 Les réseaux locaux Un réseau est constitué par des matériels émetteurs et récepteurs d'informations communicants entre eux par des lignes de communication à distance. Il comporte à la fois des aspects

Plus en détail

GESTION RESEAU. Rodolphe SEYROL rodolphe.seyrol@airbus.com. Sébastien SAUVAGE sebastien.sauvage@airbus.com

GESTION RESEAU. Rodolphe SEYROL rodolphe.seyrol@airbus.com. Sébastien SAUVAGE sebastien.sauvage@airbus.com Rodolphe SEYROL rodolphe.seyrol@airbus.com Sébastien SAUVAGE sebastien.sauvage@airbus.com October 2nd, 2002 Airbus France - Gestion Réseau Page 1 BESOINS SURVEILLER Faire remonter les informations vers

Plus en détail

Travaux Pratiques. Octobre 2015 CESI

Travaux Pratiques. Octobre 2015 CESI Travaux Pratiques Octobre 2015 CESI 1. Adressage dans Internet 1.1 Identification d une machine Une machine (appelée aussi hôte ou host) est identifiée dans l Internet par son adresse. L adresse Internet

Plus en détail

Administration des réseaux et systèmes

Administration des réseaux et systèmes dministration des réseaux et systèmes IUT Département Informatique nthony usson Plan du cours Cours Ethernet IP Spanning Tree VLN Routage (rappel) Firewall / CL NT / PT DHCP (rappel) SNMP 1 Spanning Tree

Plus en détail

Polycop 1 : Généralité sur les réseaux informatiques Présenté par : Mr RIAHLA Med Amine

Polycop 1 : Généralité sur les réseaux informatiques Présenté par : Mr RIAHLA Med Amine Université de BOUMERDES UMBB Département de physique/infotronique IT/S5/Réseaux informatiques Polycop 1 : Généralité sur les réseaux informatiques Présenté par : Mr RIAHLA Med Amine Réaliser par Mr RIAHLA

Plus en détail

1 Généralités sur les réseaux informatiques. 2 Organisation de l'internet. 3 Les services de l'internet. 4 Les protocoles TCP IP

1 Généralités sur les réseaux informatiques. 2 Organisation de l'internet. 3 Les services de l'internet. 4 Les protocoles TCP IP 1 sur les réseaux informatiques 2 Organisation de l'internet 3 Les services de l'internet 4 Les protocoles TCP IP 5 Moyens de connexion à l'internet 6 Sécurité sur l'internet 89 4 Les protocoles TCP IP

Plus en détail

Allocation des adresses multicast IPv6. Multicast IPv6 G6, 12/2003 1

Allocation des adresses multicast IPv6. Multicast IPv6 G6, 12/2003 1 Allocation des adresses multicast IPv6 Multicast IPv6 G6, 12/2003 1 Adressage multicast Format d une adresse de groupe multicast (RFC 2373) 8 bits 4 bits 4 bits 112 bits 1111 1111 flags scope group ID

Plus en détail

Introduction aux réseaux de Communications

Introduction aux réseaux de Communications RESEAUX et TELECOMMUNICATIONS Ahmed Mehaoua Professeur Université de Paris 5 Ahmed Mehaoua 2006 Partie 1 : Introduction aux réseaux de Communications Ahmed Mehaoua 2006 - page 2 PLAN Bibliographie Qu est

Plus en détail

1. LE CONCEPT DES RESEAUX PRIVES VIRTUELS (VLAN) :... 2

1. LE CONCEPT DES RESEAUX PRIVES VIRTUELS (VLAN) :... 2 Les réseaux locaux virtuels (Vlan) 1. LE CONCEPT DES RESEAUX PRIVES VIRTUELS (VLAN) :... 2 1.1 PRESENTATION :... 2 1.2 VLAN ET MODELE OSI :... 2 2. LES RESEAUX LOCAUX VIRTUELS DE NIVEAU 1 ET 2 :... 3 2.1

Plus en détail

7.3 : Ce qu IPv6 peut faire pour moi

7.3 : Ce qu IPv6 peut faire pour moi 7.3 : Ce qu IPv6 peut faire pour moi Qu y a-t-il dans mon PC? Qu y a-t-il dans ma CrétinBox? Qu y a-t-il dans un routeur ipv6 ready? 2014 Eric Levy-Abégnoli (Cisco) Stéphane Frati (Unice) On a tout vu

Plus en détail

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE Projet de semestre ITI soir 4ème année Résumé configuration OpenVpn sur pfsense 2.1 Etudiant :Tarek

Plus en détail