Qu'est-ce que TCP / UDP ajoute à «l'IP brute»?

18

Je sais que TCP et UDP sont construits sur IP, et je connais les différences entre TCP et UDP, mais je suis confus quant à ce qu'est exactement une "IP brute". Serait-il juste de dire que TCP et UDP implémentent tous deux IP, mais que IP en soi n'est pas capable de transférer des données? Ou IP est-il une forme de communication de très bas niveau, qui est encore plus abstraite par TCP et UDP?

John Dorian
la source
2
Pour approfondir certains des commentaires ci-dessous (pas assez pour une réponse complète, juste pour des raisons de clarté): IP est un protocole qui transporte des données. TCP ou UDP sont également des protocoles qui transportent des données. TCP et UDP reposent souvent sur IP, donc pour IP, sa charge utile de données peut être TCP ou UDP. Ethernet est souvent utilisé pour transporter l'IP. Ainsi, par exemple, une trame Ethernet peut transporter et un paquet IP comme sa charge utile de données et ce paquet IP peut-être transportant un segment TCP comme sa charge utile, etc. Vous vous retrouvez avec une pile de protocoles comme celui-ci goo.gl/1uEYtC
jwbensley
3
IP transfère certainement des données - il transporte ces paquets TCP / UDP, par exemple. Ce n'est généralement pas utilisable par l'application, cependant. UDP est un protocole très brut sur IP, mais il ajoute déjà des numéros de port , permettant à plusieurs services de gérer le trafic UDP simultanément sur un système. Sinon, vous n'auriez autant de services que vous avez d'adresses IP.
Luaan

Réponses:

23

IP est un protocole de couche 3 . TCP / UDP sont des protocoles de couche 4 . Ils servent chacun à des fins différentes.

La couche 3 est en charge de la livraison de bout en bout . Sa seule fonction est d'ajouter tout ce qui est nécessaire à un paquet pour obtenir un paquet d'un hôte à un autre.

La couche 4 est chargée de la livraison de service à service . Sa seule fonction est de séparer les flux de données. Votre ordinateur peut avoir plusieurs programmes en cours d'exécution, chacun qui envoie / reçoit des bits sur le fil. IE: Vous pouvez avoir plusieurs onglets de navigateur en cours d'exécution, diffuser la radio Internet, exécuter un téléchargement, exécuter des torrents légaux , utiliser une application de chat, etc. application unique qui en a besoin. En voici une illustration:

L4 ségrégation des flux de données

IP n'est pas en mesure de livrer un paquet au service / à l'application correcte. Et TCP / UDP n'est pas en mesure de livrer un paquet d'un bout à l'autre de l'Internet.

TCP et IP fonctionnent ensemble pour leur permettre d'atteindre le «but final» de la communication Internet.

Les données qui doivent passer d'un hôte à un autre sont générées par les couches supérieures du modèle OSI.

Ces données sont transmises à L4 qui ajoutera les informations nécessaires pour fournir les données de service à service, comme un en-tête TCP avec un port source et de destination. Les données et l'en-tête L4 sont désormais appelés segment.

Ensuite, le segment sera transmis à L3 qui ajoutera les informations nécessaires pour livrer le segment de bout en bout, comme un en-tête IP avec une adresse IP source et destination. L'en-tête L3 et le segment peuvent maintenant être appelés un paquet.

Ce processus est connu sous le nom d' encapsulation et de désencapsulation (ou parfois décapsulation). Voici une animation de son fonctionnement:

Encapsulation et désencapsulation, utilisées avec la permission de Practical Networking.net

Si cela n'a pas de sens, je suggère de lire davantage sur le modèle OSI et sur la façon dont chaque couche a des responsabilités différentes qui fonctionnent toutes ensemble pour accomplir le déplacement d'un paquet sur Internet .

Eddie
la source
7
Notez qu'Internet ne suit que vaguement le modèle OSI.
user253751
2
inside an IP header is usually a TCP or UDP headern'est pas correct, l'en-tête TCP / UDP n'est pas à l'intérieur de l'en-tête IP, il est à l'intérieur de la partie données du paquet IP.
Eborbob
"Sa seule fonction est de séparer les flux de données", alors que cela est surtout vrai pour UDP (il y a aussi une somme de contrôle mais meh) ce n'est certainement pas vrai pour TCP.
Peter Green
1
@immibis C'est vrai, mais je n'ai pas encore vu où le fait de suivre le modèle OSI a conduit à une mise en œuvre béante ou à une parodie. Pour la plupart, et en particulier pour quelqu'un qui approche récemment des technologies Internet, il est plus utile de continuer à réfléchir aux contraintes du modèle OSI.
Eddie
@Eborbob Je peux voir à quel point ça ne va pas selon la façon dont on regarde la phrase. Honnêtement, ce paragraphe entier pourrait utiliser une reformulation, je vais essayer d'y arriver plus tard ce soir. Merci de l'avoir signalé.
Eddie
6

IP peut transmettre des données très bien, le problème est ce qui se passe lorsque ces données arrivent à l'autre bout. Les seules informations d'identification sont les adresses IP des hôtes et un numéro de protocole. Aucun d'entre eux ne permet de distinguer à quel socket les données sont destinées.

Il est possible que les programmes utilisent IP directement via ce que l'on appelle des "sockets bruts", mais l'absence d'un mécanisme approprié pour décider quel socket envoyer les données soulève des problèmes de sécurité et de performances (le noyau doit envoyer les données à tous les sockets bruts). pour un numéro de protocole donné). Pour cette raison, la possibilité d'ouvrir des "sockets bruts" est généralement limitée à root (ou l'équivalent de votre plate-forme).

UDP est une couche assez minimale sur IP. Il ajoute des numéros de port pour identifier à quel socket les données sont destinées et une somme de contrôle (pour rejeter les paquets corrompus). L'application reste responsable du traitement des paquets perdus, du contrôle de la congestion et de la division des données en paquets de taille appropriée.

TCP est un protocole plus complexe qui, en plus de fournir des numéros de port et des sommes de contrôle, divise les flux d'octets en paquets, les réassemble ensuite à leur destination et fournit des fonctionnalités de contrôle de congestion et de récupération.

Peter Green
la source
4

IP est un protocole OSI de couche 3, tandis que TCP et UDP sont des protocoles OSI de couche 4. En tant que protocole de couche 3, IP peut transporter de nombreux protocoles de couche 4 différents. TCP et UDP sont probablement les plus courants, mais ils ne sont pas les seuls. Les protocoles de couche 4 sont ce que les applications utilisent comme connexions de bout en bout. IP transporte les protocoles de couche 4 d'un réseau à l'autre (d'hôte à hôte). Les protocoles de couche 2, comme Ethernet, transportent les protocoles de couche 3 sur un réseau local.

Vous devriez rechercher le modèle OSI, mais réalisez qu'il s'agit d'un modèle conceptuel et que le monde réel ne correspond souvent pas exactement.

Ron Maupin
la source