TCP/IP

Transmission Control Protocol et Internet Protocol (TCP/IP) sont les protocoles standards développés à la fin des années 1970 par la Defense Advanced Research Projects Agency (DARPA) pour servir de moyen de communication entre les différents types d'ordinateurs et de réseaux. TCP/IP est le moteur de l'Internet, et est donc l'ensemble de protocoles le plus populaire au monde.

Introduction à TCP/IP

TCP/IP sont en fait deux protocoles couvrant des aspects différents de la mise en réseau. Internet Protocol - IP s'occupe simplement de router les paquets en utilisant le datagramme IP comme unité de base d'information réseau. Le datagramme IP consiste en un en-tête suivi d'un message. Transmission Control Protocol - TCP permet aux hôtes d'établir des connexions pour échanger des flux de données. TCP garantit que les données sont bien délivrées d'un hôte vers un autre, dans l'ordre dans lequel elles sont parties.

Configuration TCP/IP

La configuration du protocole TCP/IP consiste en plusieurs éléments qui doivent être paramétrés en éditant les fichiers de configuration adaptés, ou en déployant des solutions telles qu'un serveur Dynamic Host Configuration Protocol (DHCP). Ce dernier pourra fournir automatiquement la bonne configuration IP aux clients. Ces données de configuration doivent être définies correctement pour assurer un bon fonctionnement du réseau avec Ubuntu.

Les paramètres courants de configuration TCP/IP et leurs objectifs sont les suivants:

  • adresse IP L'adresse IP est un identifiant unique composé de 4 nombres entre 0 et 255 séparés par des point. Chaque nombre représente 8 bits d'une adresse qui fait au total 32 bits. Ce format est appelé notation décimale pointée.

  • Masque de sous-réseau Le masque de sous-réseau est un masque de bits, ou ensemble de marqueurs, qui séparent les parties de l'adresse IP correspondantes au réseau, et celles qui correspondent au sous-réseau. Par exemple dans un réseau de classe C, le masque standard qui est 255.255.255.0 cache les 3 premiers octets de l'adresse et permet d'utiliser le dernier octet pour adresser les hôtes du sous-réseau.

  • Adresse Réseau L'Adresse Réseau représente les octets constituant la partie réseau d'une adresse IP. Par exemple, l'hôte 12.128.1.2 dans un réseau de classe A utilisera l'adresse réseau 12.0.0.0, dans laquelle douze (12) représente le premier octet de l'adresse IP, (la partie réseau) et les zéros (0) des autres octets suivants représentent les valeurs d'hôtes potentiels. Un hôte réseau utilisant l'adresse privée 192.168.1.100 utilisera lui une Adresse Réseau de 192.168.1.0 qui indique les trois premiers octets du réseau de classe C 192.168.1 et un zéro (0) pour tous les hôtes possibles sur le réseau.

  • Broadcast Address L'adresse de diffusion est une adresse IP utilisée pour envoyer un message à tous les hôtes d'un réseau local, plutôt qu'à un hôte en particulier. L'adresse de diffusion générale standard des réseaux IP est 255.255.255.255, mais cette adresse de diffusion ne peut toutefois pas être utilisée pour envoyer un message à tous les ordinateurs sur l'Internet car elle est bloquée par les routeurs. Une adresse de diffusion plus appropriée est déterminée pour correspondre à un sous-réseau particulier. Par exemple, sur le réseau IP privé de classe C, 192.168.1.0, l'adresse de diffusion est 192.168.1.255. De tels messages de diffusion sont généralement produits par des protocoles réseaux tels que ARP (Address Resolution Protocol) et RIP (Routing Information Protocol).

  • Adresse de la passerelle Une adresse de passerelle est l'adresse IP à travers laquelle un réseau ou un hôte d'un autre réseau peuvent être atteints. Si un hôte veut communiquer avec un hôte d'un autre réseau, alors il doit utiliser la passerelle. En général cette passerelle sera le routeur du réseau, qui transmettra les données aux réseaux ou hôtes extérieurs n'appartenant au réseau privé, sur Internet par exemple. L'adresse de la passerelle doit être définie, sans quoi votre système sera incapable de communiquer avec des hôtes extérieurs à votre réseau.

  • Nameserver Address (adresse de serveur de noms) représente les adresses IP d'un DNS (serveur de noms de domaine), qui résout les noms de domaines en adresses IP. Il y a trois niveaux d'adresses de serveur de noms qui peuvent être par ordre de priorité : serveur de noms primaire, serveur de noms secondaire et serveur de noms tertiaire. Pour que votre système puisse résoudre les noms d'hôtes, vous devez spécifier une adresse de serveur de noms correcte que vous êtes autorisés à utiliser sur votre réseau. Dans bien des cas, ces adresses seront fournies par votre fournisseur de service réseau mais vous pouvez aussi utiliser des serveurs de noms publics tel que les serveurs Verizon (IP 4.2.2.1 à 4.2.2.6).

    L'adresse IP, le masque de réseau, l'adresse réseau, l'adresse de diffusion, l'adresse de la passerelle et les adresses de serveurs de noms sont généralement spécifiées par les directives appropriées dans le fichier /etc/network/interfaces. Pour plus d'informations, voir la page de manuel système concernant les interfaces, avec la commande suivante tapée dans un terminal :

    Accédez au manuel du fichier interfaces avec la commande suivante :

    man interfaces
    

Routage IP

Le routage IP est une technique pour spécifier et découvrir des chemins dans un réseau TCP/IP dans lequel les données sont amenées à transiter. Le routage utilise un ensemble de tables appelées tables de routage pour acheminer les paquets de données de leur source vers leur destination, souvent via plusieurs nœuds intermédiaires du réseau dénommés routeurs. Il existe deux principales formes de routage IP : le routage statique et le routage dynamique.

Le routage statique implique l'ajout manuel de règle de routage IP à la table de routage du système et généralement cela se fait en manipulant la table de routage avec la commande route. Le routage statique bénéficie de plusieurs avantages par rapport au routage dynamique, comme la simplicité de son implantation dans des petits réseaux, la prévisibilité (la table de routage est toujours calculée à l'avance et donc, la route est toujours la même à chaque fois qu'elle est utilisée), et la faible charge sur les autres routeurs et les liaisons réseaux du fait de l'absence de routage dynamique. Cependant, le routage statique présente également quelques désavantages. Par exemple, le routage statique est limité aux petits réseaux et n'est pas très extensible. Le routage statique n'arrive absolument pas à s'adapter aux pannes et aux erreurs du réseau rencontrés le long de la route, du fait même de sa nature fixe.

Le routage dynamique concerne les grands réseaux qui offrent de multiples routes IP possibles entre une source et une destination et qui utilisent des protocoles de routage spéciaux comme RIP (Router Information Protocol) lesquels gèrent automatiquement les tables de routage qui rendent le routage dynamique possible. Le routage dynamique possède de nombreux avantages sur le routage statique, comme une expansibilité supérieure, et la capacité à surmonter les erreurs et les pannes rencontrées au cours de l'acheminement des données. De plus, il nécessite moins de configuration manuelle dans les tables de routage car les routeurs apprennent entre eux leurs existences et les routes disponibles. Cette caractéristique permet également d'éliminer les possibilités d'introduction d'erreurs humaines dans les tables de routage. Mais le routage dynamique n'est pas parfait et présente des désavantages comme une complexité accrue et un temps de latence supplémentaire dû aux communications entre les routeurs qui ne profite pas directement à l'utilisateur mais consomme néanmoins de la bande passante.

TCP et UDP

TCP est un protocole dit "connecté", qui permet la correction d'erreurs, et garantit que les données arriveront à destination grâce à un contrôle de transmission. Le contrôle de transmission détermine quand le flux de données doit être stoppé, et les paquets précédents devraient être retransmis à cause de problèmes comme des collisions par exemple, pour assurer un transport fiable des données. TCP est généralement utilisé dans l'échange de données importantes comme les transactions de bases de données par exemple.

User Datagram Protocol (UDP), à l'inverse, est un protocole dit "non-connecté" qui est peu utilisé pour l'échange de données importantes puisqu'il ne gère pas le contrôle de transmission ou d'autres méthodes pour fiabiliser le transport des données. UDP est souvent utilisé dans des applications de diffusion audio ou vidéo car il est plus rapide que TCP grâce à l'absence de correction d'erreur et de contrôle de transmission, mais aussi car la perte de quelques paquets n'est généralement pas importante pour ces applications.

ICMP

Internet Control Messaging Protocol (ICMP) est une extension de Internet Protocol (IP) défini dans la Request For Comments (RFC) #792 et qui supporte les paquets réseau contenant des messages de contrôle, d'erreur, et d'informations. ICMP est utilisé par des application comme ping, qui peut déterminer si un hôte ou un périphérique est en ligne ou non. Destination Unreachable et Time Exceeded sont des exemples de messages retournés par ICMP et qui sont utiles pour des hôtes comme pour des routeurs par exemple.

Démons

Les démons sont des applications particulières qui s'exécutent généralement en permanence en tâche de fond, et qui attendent des requêtes venant d'autres applications pour les fonctions qu'ils exercent. De nombreux démons sont liés au réseau, et donc beaucoup de démons dans un système Ubuntu offrent des fonctionnalités pour les réseaux. Les services possibles sont par exemple Hyper Text Transport Protocol Daemon (httpd), qui propose des fonctions de serveur Web, Secure SHell Daemon (sshd), qui permet un accès distant sécurisé au système et le transfert de fichiers sécurisé, ou Internet Message Access Protocol Daemon (imapd), qui offre des services de messagerie électronique.

Ressources