Ce qui fournit le protocole TCP. Le protocole de transport TCP fournit

Sur les protocoles de niveau de canal et de réseau Paquet TCP / IPliés au mécanisme principal de transfert de blocs de données entre pays et entre les réseaux, sont les fondations TCP / IP.. Ils utilisent la pile de protocoles, mais elles ne sont pas utilisées directement dans des applications qui fonctionnent sur le protocole TCP / IP.. Dans cet article, nous examinerons deux protocoles utilisés par les applications: Protocole de datagramme d'utilisateur (UDP) et Transmission Contocol (TCP).

Protocole de datagram de l'utilisateur
L'utilisateur Datagram Protocol est un protocole très simple. Comme je. IP.Ceci est un protocole fiable sans composés. Vous n'avez pas besoin d'établir une connexion avec un hôte pour échanger des données avec elle, en utilisant Udp., Et il n'y a pas de mécanisme pour fournir des données transmises.
Bloc de données transmis en utilisant Udp. appelé datagramme. Udp. Ajoute quatre champs d'en-tête 16 bits (8 octets) aux données transmises. Ces champs: longueur de champ, champ de contrôle, ainsi que le numéro de source et de port de destination. "Port", dans ce contexte, est un logiciel de port, pas un port matériel.
Le concept de numéro de port est commun aux deux UDP et TCP.. Les numéros de port déterminent quel module protocole envoie (ou obtient) des données. La plupart des protocoles sont ports standardqui sont couramment utilisés pour cela. Par exemple, le protocole Telnet utilise généralement le port 23. Le protocole de transfert de courrier simple (SMTP) utilise le port 25. L'utilisation de numéros de port standard permet aux clients d'interagir avec le serveur sans set avant l'utilisation du port.
Numéro de port et protocole dans le champ d'en-tête IP. Des doublons mutuellement dans une certaine mesure, bien que les champs de protocole ne soient pas disponibles pour les protocoles plus haut niveau. IP. utilise le champ de protocole pour déterminer où les données doivent être transmises à Udp. ou alors TCP. Modules. Udp. ou alors TCP. Utilisez le numéro de port pour déterminer quel protocole de niveau d'application doit recevoir des données.
Malgré, Udp. Ce n'est pas fiable, il s'agit toujours d'un choix approprié pour de nombreuses applications. Il est utilisé par des applications en temps réel, telles que la diffusion audio et vidéo en streaming, où, si les données sont perdues, il vaut mieux s'en passer, que de l'envoyer à nouveau dans l'ordre. Il est également utilisé par des protocoles tels que le protocole de gestion de réseau simple (SNMP).
Diffuser
Udp. Convient à la diffusion d'informations, car elle ne nécessite pas de connexion ouverte. Le message actuel du message de diffusion est défini par l'expéditeur, à l'adresse IP de destination spécifiée dans l'adresse IP. Udp. Datagrammes avec l'adresse IP de IP Tous les binaires 255.255.255.255) et chaque hôte sera reçu dans réseau local. Faites attention au mot local: les datagrammes avec cette adresse ne seront pas acceptés par le routeur sur Internet.
Les transmissions peuvent être dirigées vers des réseaux spécifiques. Datagramme UDP À partir de l'hôte et du sous-réseau de la partie de l'adresse IP, définissez comme une diffusion binaire à tous les nœuds de tous les sous-réseaux de réseau, ce qui correspond à une partie propre de l'adresse IP. Si seule la partie destinataire (en d'autres termes, tous les bits égaux à zéro dans le masque de sous-réseau) sont définis sur Binary, la diffusion est limitée à tous les hôtes du sous-réseau correspondant au reste de l'adresse.
La multidiffusion est utilisée pour transférer des données dans le groupe d'accueil qui ont exprimé leur désir de recevoir. Multidiffusion Udp. Datagramme a une adresse de rendez-vous dans laquelle les quatre premiers bits 1110 sont fournis avec des adresses de la plage de 224.xxx en 239.xxx. Les bits restants de l'adresse sont utilisés pour désigner le groupe de multidiffusion. C'est plutôt comme une radio ou une chaîne de télévision. Par exemple, 224.0.1.1 est utilisé pour le protocole NTP. Si un TCP / IP. Les applications veulent obtenir un message de multidiffusion, ils doivent rejoindre le groupe de multidiffusion correspondant, ce qu'il fait, en passant l'adresse du groupe à la pile de protocoles.
Large émission, en fait, transmission filtrée. MultiCaster ne considère pas les messages individuels pour chaque hôte, qui rejoint le groupe. Au lieu de cela, les messages sur l'air et les pilotes de chaque hôte décident de les ignorer ou de transférer le contenu de la pile de protocoles.
Cela signifie que les messages de multidiffusion doivent être diffusés sur Internet, car les multidits ne savent pas quels hôtes veulent recevoir des messages. Heureusement, ce n'est pas nécessaire. IP utilise un protocole appelé Protocole de gestion de groupe Internet (IGMP) pour signaler aux routeurs, qui héberge que vous souhaitez recevoir des messages du groupe de multidiffusion. Les messages sont donc envoyés uniquement à l'endroit où ils sont nécessaires.
Protocole de gestion de transfert
Le protocole de contrôle de la transmission est un protocole de niveau de transport et est utilisé par la plupart des applications Internet, telles que Telnet, FTP et HTTP. Ceci est un protocole avec l'établissement d'une connexion. Cela signifie que deux ordinateurs sont un client, un autre serveur et entre eux, il est nécessaire d'établir la connexion avant que les données puissent être transmises entre elles.
TCP. Fournit une fiabilité. Application qui utilise TCP. Il sait qu'il envoie des données obtenues à l'autre extrémité et qu'il leur a obtenu correctement. TCP. Utilise des checksums, des titres et des données. Dès réception des données TCP. Envoie la confirmation à l'expéditeur. Si l'expéditeur ne reçoit pas de confirmation dans une certaine période, les données sont renvoyées.
TCP. Comprend les mécanismes de transmission de données qui se présentent dans l'ordre inverse, comme on leur a été envoyé. Il met également en œuvre la commande de flux, de sorte que l'expéditeur ne peut pas supprimer le récepteur de données.
TCP. Envoie des données à l'aide de la propriété intellectuelle, en blocs appelés segments. La longueur du segment est déterminée par le protocole. En plus de l'en-tête IP, chaque segment est composé de 20 octets du titre. Titre TCP. Démarre avec une source de 16 bits et la destination du numéro de port. Comme je. Udp.Ces champs définissent le niveau d'application dirigé et de recevoir des données. L'adresse IP et le numéro de port, combinés sans ambiguïté les services travaillant sur le propriétaire et le couple connu sous le nom de nid.
Ensuite, le titre va un numéro de séquence 32 bits. Ce numéro détermine la position dans le flux de données, qui devrait occuper le premier octet des données dans le segment. Numéro de série TCP. Vous permet de maintenir le flux de données dans le bon ordre, bien que des segments puissent être obtenus à partir de la séquence.
Le champ suivant est un champ 32 bits utilisé pour transmettre à l'expéditeur que les données ont été obtenues correctement. Si le drapeau ACK qu'il arrive généralement, ce champ contient la position de l'octet de données suivant que le segment de segment attend de recevoir.
DANS TCP. Chaque segment de données n'est pas nécessaire. La valeur dans le champ de confirmation est interprétée comme "toutes les données sont toujours obtenues env." Il enregistre la bande passante lorsque toutes les données sont envoyées d'un côté, réduisant ainsi la nécessité de reconnaître les segments. Si les données sont envoyées simultanément dans les deux directions, toutes deux en pleine communication en duplex, les marques ne sont pas liées aux coûts, car le segment de transmission de données dans une direction peut contenir une confirmation pour les données transmises différemment.
Ensuite, un champ 16 bits contenant la longueur de l'en-tête et des drapeaux est représenté dans le titre. TCP. Les en-têtes peuvent contenir champs supplémentairesLa longueur peut donc varier de 20 à 60 octets. Drapeaux: Urg, ACK (que nous avons déjà mentionné), PSH, RST, SYN et FIN. Plus tard, nous examinerons d'autres drapeaux.
L'en-tête contient un champ appelé taille de la fenêtre, ce qui donne le nombre d'octets que le récepteur peut accepter. Il existe également une somme de contrôle de 16 bits couvrant à la fois le titre et les données. Enfin (à des données supplémentaires), il existe un champ appelé «index d'urgence». Lorsque le drapeau URG est défini, cette valeur est interprétée comme un déplacement du numéro de séquence. Il définit le début des données dans le flux qui doit être traité de toute urgence. Ces données sont souvent appelées données "en dehors du groupe". Un exemple de son utilisation lorsque l'utilisateur appuie sur la touche de pause pour interrompre la sortie du programme pendant la session Telnet.

Protocoles de traduction TCP et UDP protocoles TCP / IP Stacks fournissent une transmission de données entre une paire processus d'applicationLes réseaux fonctionnent et fournissent une interface pour le protocole IP en démultiplexant plusieurs processus à l'aide de ports comme ports. Pour chaque processus d'application (pp) (applications) effectué dans l'ordinateur, peut être formé entrée de plusieurs pointsparler comme adresses de transport, appelé ports (Fig. 4.60).

Il existe deux façons d'attribuer le port à l'application:

· centralisé(Des nombres assignés ou désignés de 0 à 1023) à l'aide de numéros standard attribués aux services publics (applications), par exemple: FTP - 21, Telnet - 23, SMTP - 25, DNS - 53, HTTP - 80.

· local(Numéros dynamiques de 1024 à 65535), fournissant un nombre arbitraire de la liste des numéros libres lorsque la demande de l'application utilisateur est reçue.

Les numéros dynamiques des ports de port sont uniques dans chaque ordinateur, mais peuvent coïncider avec des numéros de port dans d'autres ordinateurs. La différence entre eux n'est déterminée que par la différence entre les interfaces de chacun des ordinateurs définies par des adresses IP.

Ainsi, un couple " Adresse IP; Numéro de port", Appelé prise (Socket), détermine de manière unique le processus d'application sur le réseau.

Les numéros de port UDP et TCP dans le même ordinateur peuvent correspondre, bien qu'ils identifient différentes applications. Par conséquent, lors de l'enregistrement du numéro de port, le type de protocole de la couche de transport, tel que 2345 / TCP et 2345 / UDP, est spécifié. Dans certains cas, lorsqu'une application peut contacter le protocole UDP ou TCP, on peut attribuer les mêmes numéros de port UDP et TCP, tels que l'application DNS attribuée numéro 53 - 53 / UDP et 53 / TCP.

Protocole de transport UDP

UDP - Protocole de transport fournissant une transmission de données sous la forme datagrammeentre une paire processus d'applicationCourir sur le réseau sans établir un composé. Les segments sont constitués d'un en-tête de 8 octets, suivi du champ de données. L'en-tête de segment UDP est montré à la Fig. 4.61.

L'UDP le plus large est utilisé lors de la performance applications client-serveur (Tapez la requête-réponse).

Dans le même temps, UDP n'effectue pas:

· Contrôle de flux,

· contrôle des erreurs,

· Re-transmission après avoir reçu un segment endommagé.

Exemplesles applications utilisant le protocole de transmission de données UDP sont DHCP, DNS, SNMP.

Dans certains cas, plusieurs copies de la même application peuvent être effectuées sur un nœud d'extrémité. La question se pose: Comment ces applications diffèrent-elles?

Pour ce faire, envisagez d'examiner sur un exemple simple du processus de formation d'une requête et de la procédure de circuit client DNS sur le serveur DNS lorsque deux serveurs DNS sont exécutés sur un ordinateur et sont utilisés pour transmettre votre protocole de transport de données UDP (Fig. 4.62). Afin de distinguer les serveurs DNS, ils sont attribués différentes adresses IP - IP1 et IP2, qui, avec le numéro de port, forment deux sockets différents: "Port UDP 53, IP1" et "Port UDP 53, IP2".

La figure 4.62, a) illustre le processus de formation d'une demande de client DNS au serveur DNS.

La pile de protocole TCP / IP Demande DNS est transmise au protocole UDP, qui investit cette requête dans le Datagramme UDP et indique l'en-tête du port de destination 53 / UDP. Le fichier UDP-Datagramme est ensuite transmis au pare-feu, où il est investi dans le paquet IP, dont le titre contient "Adresse IP: IP2". Le paquet IP, à son tour, est transmis au niveau "pare-feu", où il est placé dans le cadre de cadre de canal avec le niveau de niveau de canal correspondant (ZKU). Ce cadre est transmis sur le réseau à un ordinateur contenant deux serveurs DNS (figure 4.62, B).

Dans cet ordinateur, le protocole de niveau de canal (PKU) supprime l'en-tête ZKU et transmet le contenu du cadre au protocole IP à base d'incendie, qui, à son tour, récupère le contenu (UDP-Datagramm) à partir du package IP. D'autres manipulations avec les données transmises diffèrent des principes énoncés dans un modèle à plusieurs niveaux de la hiérarchie des protocoles. Au lieu de simplement transférer un UDP-Datagramm dans le champ de données de paquets IP, un niveau de véhicule, Le protocole IP rejoint UDP-DATAGRAMsoi-disant pseudozagolcontenant entre autres choses, l'adresse IP de l'expéditeur et le destinataire. Ainsi, le protocole UDP, ayant une adresse IP et un port de destination, détermine de manière unique que le contenu du champ de données (c'est-à-dire la demande DNS) doit être transmis par l'application "DNS Server 2".

Transport protocole TCP

Le protocole TCP assure une transmission de données fiable entre les processus d'application en établissant des connexions logiques entre les processus d'interaction.

Connexion logiqueentre les deux processus d'application est identifié par une paire de sockets (adresse IP, numéro de port), chacun décrit l'un des processus d'interaction.

Les informations relevant du protocole TCP dans la connexion logique à partir d'un protocole de niveau supérieur sont considérés par le protocole TCP comme stream d'octet non structuréet entré dans le tampon. Pour la transmission à un niveau de réseau de la mémoire tampon découpée segmentpas supérieur à 64 kb ( taille maximum Package IP). En pratique, la longueur du segment est généralement limitée à la valeur de 1460 octets, ce qui vous permet de le placer dans la trame Ethernet avec des en-têtes TCP et IP.

La connexion TCP est axée sur Équipement duplex complet.

Le contrôle des flux de données dans le protocole TCP est effectué à l'aide du mécanisme fenêtre coulissante Taille alternée. Lors de l'envoi d'un segment, le nœud de l'expéditeur comprend une minuterie et prévoit une confirmation. Les recettes négatives ne sont pas envoyées, mais utilisées mécanisme de délai d'expiration. Le nœud de destination qui a reçu un segment génère et envoie un segment inverse (avec des données, s'il y a ou sans données) avec un numéro de confirmation égal à la séquence suivante nombre d'octets attendus. Contrairement à de nombreux autres protocoles, TCP confirme le reçu pas de paquets, mais des octetsinonder. Si le temps d'attente de confirmation expire, l'expéditeur envoie un segment à nouveau.

Malgré la simplicité semblable au protocole, il a un certain nombre de nuances pouvant entraîner des problèmes.

Premièrement, puisque les segments au cours de la transmission du réseau peuvent être fragmentés, une situation est possible, dans laquelle une partie du segment transmis sera acceptée et le reste sera perdu.

Deuxièmement, les segments peuvent arriver au nœud de destination dans un ordre arbitraire, qui peut conduire à une situation dans laquelle des octets de 2345 à 3456 sont déjà arrivés, mais la confirmation pour eux ne peut pas être expulsée, car les octets de 1234 à 2344 ne sont pas encore reçus. .

Troisièmement, les segments peuvent rester sur le réseau depuis si longtemps que l'expéditeur expirera l'intervalle d'attente et les donnera à nouveau. Le nouveau segment transmis peut passer par un autre itinéraire et peut être fragmenté autrement, ou un segment peut accidentellement entrer dans le réseau surchargé sur le chemin. En conséquence, il nécessitera un traitement assez complexe pour restaurer le segment d'origine. La Fig. 4.63 est un format de l'en-tête du segment TCP. Le premier en-tête de 20 octets a un format strictement fixe que des champs supplémentaires peuvent être. Après plus de champs d'en-tête, un champ de données ne contenant pas plus de 65 495 octets, qui, avec des en-têtes TCP et IP, 20 octets, donneront la taille maximale autorisée d'un package IP à 65 535 octets.

Sans entrer dans les détails, envisagez de nommer brièvement des champs de rubrique de segment de TCP fixe.

Champs "port de l'expéditeur" (2 octets) et "port destinataire" (2 octets) identifient procédésBasé sur la connexion logique.

Le champ "numéro de séquence" (4 octets) contient premier numéro d'octetdonnées dans le segment qui détermine le décalage du segment par rapport au flux de données transmis

Le champ "numéro de confirmation" (4 octets) contient nombre de l'octet suivant attenduqui est utilisé comme reçu confirmant la réception correcte de tous les octets précédents.

Le champ "TCP En-tête" (4 bits) définit la longueur de l'en-tête de segment TCP, mesuré en mots de 32 bits.

Les bits de «réserve» 6 bits sont réservés à l'avenir.

Singleobite drapeauxils portent des informations de service sur le type de segment et interprétées comme suit:

· Urg \u003d 1 indique données urgentes, qui signifie utiliser l'index de champ "Index sur les données urgentes » ;

· ACK \u003d 1 signifie que le segment est reçule segment adopté et le champ "numéro de confirmation" contient des données significatives. Sinon, ce segment ne contient pas de confirmation et le champ "numéro de confirmation" est simplement ignoré.

· PSH \u003d 1 (push drapeau) signifie demande d'envoi de donnéessans attendre le remplissage du tampon;

· RST \u003d 1 est utilisé pour réinitialiser l'état de la connexionlorsque des problèmes sont détectés, ainsi que pour la défaillance du mauvais segment ou d'essayer de créer un composé;

· Syn \u003d 1 est utilisé pour paramètres de connexion, avec cela si demande \u003d 0, cela signifie que le champ de confirmation n'est pas utilisé;

· Fin \u003d 1 utilisé pour pause combinée.

Le champ "Taille de la fenêtre" (2 octets) détermine la manière dont l'octet peut être envoyé après l'octet qui a reçu une confirmation.

Le champ "Sommet de contrôle" (2 octets) contient une somme de contrôle qui couvre le titre, les données et pseudo-plate-tête.

Algorithme de calcul de la somme de contrôlecomme suit.

Avant de commencer à calculer la somme de contrôle, la valeur de ce champ est définie sur zéro. Si le champ de données contient un nombre impair d'octets, il est complété par un octet zéro, utilisé lors du comptage de la somme de contrôle, mais n'est pas inséré dans le segment pour la transmission sur le réseau. La nécessité pour cet ajout est due au fait que le segment TCR, y compris le titre, les données et le pseudo-en-tête, est considéré comme un ensemble de nombres binaires 16 bits, pliés dans le code supplémentaire, puis l'addition est calculé pour le montant obtenu, qui est entré dans le champ "Somme de contrôle".

Le destinataire du segment compte de la même manière la somme de contrôle pour l'ensemble du segment, y compris le champ CheckSum. Évidemment, le résultat résultant doit être égal à 0. Notez que le champ zéro d'octet supplémentaire "Pointeur de données urgentes" (2 octets) contient un déplacement d'octets du nombre de séquences en cours d'octets à l'emplacement des données à terme à l'emplacement des données à l'autre que nécessaire Soyez pris de toute urgence, malgré le débordement de la mémoire tampon. Ainsi, les messages d'interruption sont mis en œuvre dans le protocole TCP. Le contenu des données urgentes est appliqué. Le protocole TCP ne fournit que sa livraison et ne s'intéresse pas à la cause de l'interruption.

Le champ "Paramètres" a une longueur variable et peut être absent.

Exemplesles applications utilisant le protocole de transfert de données TCP sont FTP, TFTP, DNS, POP3, IMAP, Telnet.

Niveau de transport

La tâche du niveau de transport est de transmettre des données entre différentes applications effectuées sur tous les nœuds du réseau. Une fois que le paquet est livré à l'aide du protocole IP sur l'ordinateur de réception, les données doivent être envoyées au processus de destinataire spécial. Chaque ordinateur peut effectuer plusieurs processus, en outre, l'application peut avoir plusieurs points d'entrée, agissant comme une adresse de destination pour les paquets de données.

Forfaits venant sur le niveau de transport système opérateur Organisé dans une variété de files d'attente aux points d'entrée de diverses applications. Dans la terminologie TCP / IP, ces points d'entrée sont appelés ports.

Protocole de contrôle de la transmission.

Protocole de contrôle de la transmission.(TCP) (protocole de gestion de transfert) - est une norme TCP / IP obligatoire définie dans la norme RFC 793, "Protocole de commande de transmission (TCP)".

TCP. - Il s'agit d'un protocole de niveau de transport fournissant le transport (transmission) du flux de données, avec la nécessité de prétablir une connexion, en s'assurant que l'intégrité des données obtenues, effectue également une demande de données répétée en cas de perte ou de distorsion de données. De plus, le protocole TCP suit la duplication des paquets et en cas de détection - détruit les paquets en double.

En revanche, le protocole UDP garantit l'intégrité des données transmises et confirme l'expéditeur sur les résultats du transfert. Utilisé lors du transfert de fichiers lorsque la perte d'un package peut entraîner la déformation de l'ensemble du fichier.

TCP fournit sa fiabilité grâce aux éléments suivants:

  • Les données de l'application sont divisées en blocs d'une certaine taille à envoyer.
  • Lorsque TCP envoie un segment, il définit la minuterie, en attente de confirmation de l'extrémité distante à ce segment. Si la confirmation n'est pas reçue après l'expiration du temps, le segment est à nouveau transmis.
  • Lorsque TCP accepte les données du côté distant de la connexion, il envoie une confirmation. Cette confirmation n'est pas envoyée immédiatement, mais généralement retardée pour une fraction de seconde
  • TCP calcule la somme de contrôle pour son titre et ses données. Cette somme de contrôle, calculée aux extrémités de la connexion, qui est d'identifier toute modification des données dans le processus de transmission. Si le segment est livré avec une checksum incorrecte, le TCP les rejetera et la confirmation n'est pas générée. (On s'attend à ce que l'expéditeur entraîne un délai d'attente et une transmission.)
  • Étant donné que les segments TCP sont transmis sous forme de datagramme IP et que les datagrammes IP peuvent arriver au hasard et les segments TCP peuvent arriver au hasard. Après avoir reçu des données TCP, si nécessaire, changez de séquence, par conséquent, l'application reçoit des données dans le bon ordre.
  • Étant donné que le datagramme IP peut être dupliqué, la réception TCP doit supprimer les données dupliquées.
  • TCP surveille le flux de données. Chaque côté de la connexion TCP a un espace tampon spécifique. TCP sur le côté de réception permet au côté distant d'envoyer des données uniquement si le destinataire peut les mettre dans le tampon. Cela empêche les hôtes rapides de déborder des spuchers d'hôtes lents.

  • Le numéro de séquence effectue deux tâches:
    • Si l'indicateur SYN est défini, ceci est la valeur initiale du numéro de séquence - ISN (numéro de séquence initiale), et le premier octet des données à transmettre dans le package suivant aura un numéro de séquence égal à ISN + 1.
    • Sinon, si SYN n'est pas installé, le premier octet des données transmis dans ce package a ce numéro de séquence.
  • Numéro de confirmation - Si le drapeau ACK est défini, ce champ contient un numéro de séquence attendu par le destinataire la prochaine fois. Marque ce segment comme confirmation de réception.
  • La longueur d'en-tête est définie par des mots selon 32 bits.
  • Taille de la fenêtre - Nombre d'octets prêts à accepter le destinataire sans confirmation.
  • SUM DE CONTRÔLE - Comprend un pseudo-en-tête, un titre et des données.
  • L'indice urgent indique le dernier octet des données urgentes auxquelles vous devez réagir immédiatement.
  • URG - le drapeau d'urgence, active le champ "Pointeur urgent", si \u003d 0, le champ est ignoré.
  • ACK - Le drapeau de confirmation inclut le "numéro de confirmation si \u003d 0 puis le champ est ignoré.
  • PSH - Le drapeau nécessite l'exécution de l'opération de poussée, le module TCP devrait transférer de toute urgence le package de programme.
  • L'indicateur d'interruption de connexion RST est utilisé pour l'échec
  • Synchronisation des indicateurs de synchronisation des numéros de séquence, utilisés lors de l'établissement d'une connexion.
  • Fin - Fin du drapeau du transfert du côté de l'expéditeur

Considérons la structure d'en-tête TCP.utilisation de l'analyseur de réseau Wireshark:


Ports TCP

Étant donné que plusieurs programmes peuvent être lancés sur le même ordinateur, puis pour fournir un package TCP à un programme spécifique, un identifiant unique de chaque programme ou numéro de port est utilisé.

Numéro de port - Il s'agit d'un nombre conditionnel de 16 bits de 1 à 65535, indiquant lequel programme le paquet est destiné.

Les ports TCP utilisent un port spécifique du programme pour fournir des données transmises à l'aide du protocole de gestion de transfert (TCP). Les ports TCP sont plus complexes et fonctionnent autrement que les ports UDP. Bien que le port UDP fonctionne comme une file d'attente de messages unique et comme point d'entrée de la connexion UDP, le point d'entrée final de toutes les connexions TCP est une connexion unique. Chaque connexion TCP est définitivement identifiée par deux points d'entrée.

Chaque port Server TCP Server peut offrir accès général Pour plusieurs connexions, toutes les connexions TCP sont identifiées par deux valeurs: adresse IP et port TCP (socket).

Tous les numéros de port TCP inférieurs à 1024 sont réservés et enregistrés sur une autorité de numéros attribuée à Internet (IANA).

Les numéros de port UDP et TCP ne se croisent pas.

Les programmes TCP utilisent des numéros de port réservés ou bien connus, comme indiqué sur la figure suivante.

Définition de la connexion TCP

Voyons maintenant comment les connexions TCP sont installées. Supposons que le processus exécutant sur un hôte souhaite établir une connexion avec un autre processus sur un autre hôte. Rappelez-vous que l'hôte, qui initie la connexion s'appelle le «client», tandis qu'un autre nœud s'appelle le «serveur».

Avant de démarrer des données, conformément au protocole TCP, les parties doivent établir une connexion. La connexion est établie en trois étapes (processus de "TIX-Poignée de main" TCP).

  • La partie requérante (qui, en règle générale, s'appelle le client) envoie un segment SYN, spécifiant le numéro de port du serveur auquel le client souhaite se connecter et le numéro de source de la séquence client (ISN).
  • Le serveur répond avec son segment SYN contenant le numéro de source de la séquence de serveur. Le serveur confirme également l'arrivée du client SYN à l'aide de ACK (ISN + 1). SYN utilise un numéro de séquence.
  • Le client doit confirmer l'arrivée de Syn du serveur de ses segments Syn contenant le numéro de source de la séquence client (ISN + 1) et à l'aide de ACK (ISN + 1). Le bit SYN est défini sur 0, car la connexion est établie.

Après avoir établi connexions TCPCes deux hôtes peuvent transmettre des données les uns aux autres, car la connexion TCP est pleine-duplex, elles peuvent transmettre des données simultanément.

Base de protocole TCP / IP réseau mondial L'Internet. Pour être plus précis, TCP / IP est une liste ou une pile de protocoles, et en fait, l'ensemble des règles pour lesquelles des informations est échangée (le modèle de commutation de paquets est mis en œuvre).

Dans cet article, nous analyserons les principes de la pile de protocoles TCP / IP et d'essayer de comprendre les principes de leur travail.

Remarque: Souvent, le tampon TCP / IP est appelé tout le réseau fonctionnant sur la base de ces deux protocoles, TCP et IP.

Dans le modèle d'un tel réseau autre que les principaux protocoles TCP (niveau de transport) et IP (protocole de couche réseau) Entrez les protocoles de la couche appliquée et de réseau (voir photo). Mais retour directement aux protocoles TCP et IP.

Quels sont les protocoles TCP / IP

TCP - Protocole de contrôle de transfert. Protocole de gestion de transfert. Il sert à assurer et à établir une connexion fiable entre deux périphériques et une transmission de données fiable. Dans ce cas, le protocole TCP contrôle la taille optimale du paquet de données transmis, effectuant un nouveau package lorsque la transmission échoue.

IP - Protocole Internet. Le protocole Internet ou le protocole d'adresse est la base de l'ensemble de l'architecture de transfert de données. Le protocole IP sert à livrer le paquet de données réseau à l'adresse souhaitée. Dans le même temps, les informations sont divisées en paquets qui se déplacent indépendamment sur le réseau vers le destinataire souhaité.

Formats de protocole TCP / IP

Format de protocole IP

Il existe deux formats pour les adresses IP Protocole IP.

Format IPv4. C'est 32 bits nombre binaire. Une forme commode d'adresse IP (IPv4) est un enregistrement sous la forme de quatre groupes de nombres décimaux (de 0 à 255) séparés par des points. Par exemple: 193.178.0.1.

Format IPv6. Ceci est un nombre binaire de 128 bits. En règle générale, les adresses de format IPv6 sont écrites sous la forme de huit groupes. Dans chaque groupe, quatre chiffres hexadécimaux séparés par le côlon. Exemple d'adresse IPv6 IPv6 2001: 0DB8: 85A3: 08D3: 1319: 8A2E: 0370: 7889.

Comment fonctionnent les protocoles TCP / IP

Si vous soumettez de manière commodément au transfert de paquets de données sur le réseau comme envoi d'une lettre par courrier.

Si mal à l'aise, soumettez deux ordinateurs connectés par le réseau. De plus, le réseau de connexion peut être tous à la fois local et global. Il n'y a pas de différence dans le principe de transmission de données. L'ordinateur du réseau peut également être considéré comme un hôte ou un nœud.

Protocole IP

Chaque ordinateur du réseau a sa propre adresse unique. Dans l'Internet global, l'ordinateur a cette adresse appelée adresse IP (adresse de protocole Internet).

Par analogie avec courrier, adresse IP C'est le numéro de la maison. Mais les chambres de la maison ne suffisent pas pour le reçu.

Les informations transmises sur le réseau sont transmises à la netteter à un ordinateur, en tant que telles et les applications installées. De telles applications sont le serveur de messagerie, le serveur Web, le FTP, etc. Pour identifier le package d'informations transmis, chaque application est jointe à un port spécifique. Par exemple: Web Server répertorie le port 80, FTP Listenens Port 21, mail SMTP. Server réchauffe le port 25, le serveur POP3 lit le courrier boîtes aux lettres Au port 110.

Ainsi, dans le package d'adressage du protocole TCP / IP, une autre ligne apparaît dans les adresses: le port. L'analogue avec le courrier postal est le numéro d'appartement de l'expéditeur et du destinataire.

Exemple:

Adresse source:

IP: 82.146.47.66

Adresse de destination (Addrapher):

IP: 195.34.31.236

Il convient de rappeler: adresse IP + numéro de port - appelé "prise". Dans l'exemple ci-dessus: du paquet de socket 82.146.47.66:2049 est envoyé à Socket 195.34.31.236: 53.

Protocole TCP

Le protocole TCP est le protocole suivant le protocole IP de niveau IP. Ce protocole est destiné à contrôler le transfert d'informations et son intégrité.

Par exemple, les informations transmises sont divisées en paquets distincts. Les forfaits livreront le destinataire de manière indépendante. Dans le processus de transfert, l'un des packages n'a pas passé. Le protocole TCP fournit des programmes répétés avant la réception de ce paquet par le destinataire.

Protocole de transport TCP se cache des protocoles de niveau supérieur (physique, canal, réseau IP Tous les problèmes et détails de données).

TCP est un mécanisme de transmission de la circulation, avec pré-installation Les connexions, en raison de cette confidence dans la fiabilité des données obtenues, effectue une demande de données répétée si la perte de données et élimine la duplication à la réception de deux copies d'un package. Contrairement à UDP, vous garantit que l'application recevra les données exactement dans la même séquence, qu'ils ont été envoyées et sans perte.

Le protocole TCP est utilisé dans des cas où une délivrance de message fiable est requise. Il libère les processus appliqués de la nécessité d'utiliser les délais d'attente et la transmission pour assurer la fiabilité. Les processus d'application les plus typiques utilisant TCP sont FTP (Protocole de transfert de fichiers - Protocole de transfert de fichiers) et Telnet. De plus, TCP Utilisez X-Fenêtre X, RCP (Copie à distance - Copie à distance) et d'autres "commandes R". Les grandes fonctionnalités de TCP ne sont pas gratuites. La mise en œuvre de TCP nécessite des performances élevées du processeur et une large bande passante réseau. La structure interne du module TCP est beaucoup plus compliquée par la structure du module UDP.

La mise en œuvre du TCP est généralement intégrée au noyau du système, bien qu'il existe également des implémentations TCP dans le contexte de l'application.

Lorsque l'ordinateur est transmis à un ordinateur via Internet, TCP fonctionne au niveau supérieur entre deux systèmes finaux, tels que le navigateur Internet et le serveur Internet. Le TCP effectue également une transmission fiable du flux d'octets d'un programme sur certains ordinateurs à un autre programme sur un autre ordinateur. Programmes pour e-mail Et le partage de fichiers est utilisé par TCP. TCP contrôle la longueur du message, la vitesse de la messagerie, le trafic réseau.

Lorsque le processus d'application commence à utiliser TCP, le module TCP sur la machine client et le module TCP sur la machine serveur commencent à communiquer. Ces deux modules de terminaux TCP prennent en charge les informations d'état de la connexion appelées par un canal virtuel. Ce canal virtuel consomme les ressources des deux modules de terminaux TCP. Le canal est duplex; Les données peuvent être transmises simultanément dans les deux sens. Un processus d'application écrit des données sur le port TCP, ils passent sur le réseau et un autre processus d'application les lit depuis son port TCP.

Le protocole TCP enfreint le flux de batterie aux emballages; Il ne sauvegarde pas les frontières entre les enregistrements. Par exemple, si un processus d'application effectue 5 entrées sur le port TCP, le processus d'application à l'autre extrémité de la chaîne virtuelle peut effectuer 10 lectures afin d'obtenir toutes les données. Mais le même processus peut obtenir toutes les données immédiatement en effectuant une seule opération de lecture. Il n'y a pas de relation entre le nombre et la taille des messages enregistrés d'un côté et le nombre et la taille des messages de lecture de l'autre côté.

Le protocole TCP nécessite que toutes les données envoyées soient confirmées par la partie adoptée. Il utilise des délais d'attente et des transmissions répétées pour assurer une livraison fiable. L'expéditeur est autorisé à transmettre une certaine quantité de données sans attendre la confirmation de la réception des données précédemment envoyées. Ainsi, il y a une fenêtre déjà envoyée, mais toujours non confirmée entre les données envoyées et confirmées. Le nombre d'octets pouvant être transmis sans confirmation est appelé la taille de la fenêtre. En règle générale, la taille de la fenêtre est définie dans les fichiers de départ du réseau. logiciel. Étant donné que le canal TCP est duplex, la confirmation de données dans une seule direction peut être transmise avec les données situées dans la direction opposée. Les récepteurs des deux côtés du canal virtuel sont contrôlés par le flux de données transmis afin de prévenir les tampons de débordement.

Schéma de travail application utilisateur Avec TCP en termes généraux est la suivante. Pour transférer des données sur le processus utilisateur, vous devez appeler la fonction TCP appropriée, avec une indication du tampon de données transmis. TCP emballe ces données dans des segments de sa pile et provoque la fonction de transmission du protocole de niveau inférieur, par exemple IP.

À l'autre extrémité, le destinataire du TCP augmente les données du protocole de niveau inférieur aux segments de réception de sa mémoire tampon, vérifie l'intégrité des données, transmet des données au processus d'utilisation et notifie l'expéditeur de leur reçu.

L'interface utilisateur TCP peut exécuter de telles commandes comment ouvrir (ouvrir) ou fermer la connexion (fermeture), envoyer (envoyer) ou accepter (recevoir) les données, ainsi que pour obtenir un statut de connexion (statut).

Dans le modèle de pare-feu, les protocoles d'interaction TCP et de niveau inférieur ne sont généralement pas spécifiés, sauf que le mécanisme devrait exister qui fournirait une transmission asynchrone d'informations d'un niveau à l'autre. Le résultat de ce mécanisme est l'encapsulation d'un protocole de niveau supérieur dans le corps de niveau inférieur. Ce mécanisme est mis en œuvre via l'interface d'appel entre TCP et IP.

À la suite de ce mécanisme, chaque package TCP est inséré dans "l'enveloppe" du protocole de niveau inférieur, par exemple IP. Le datagramme résultant contient un package TCP ainsi que le package TCP contient des données utilisateur.

Brève description des protocoles de la famille TCP / IP avec décodage d'abréviation

  • ARP (protocole de résolution d'adresse, protocole de définition d'adresse): Convertit les adresses IP 32 bits dans les adresses physiques réseau informatique, par exemple, dans les adresses Ethernet 48 bits.
  • FTP (protocole de transfert de fichier, protocole de transfert de fichier): Vous permet de transmettre des fichiers d'un ordinateur à un autre à l'aide de connexions TCP. Dans un protocole de transfert de fichier de fichiers relatif, mais moins courant - Protocole de transfert de fichiers trivial (TFTP) - UDP est utilisé pour envoyer des fichiers et non TCP.
  • ICMP (protocole de messages de contrôle Internet, protocole de messages de contrôle Internet): Permet aux routeurs IP Envoyez des messages d'erreur et gérer des informations à d'autres routeurs IP et ordinateurs de réseau principal. Messages ICMP "Voyage" sous la forme de champs de données IP-Datagramme et doit être implémenté dans toutes les variantes IP.
  • IGMP (protocole de gestion de groupe Internet, protocole de gestion de groupe Internet): Permet aux datagrammes IP de distribuer en mode circulaire (multidiffusion) parmi les ordinateurs appartenant aux groupes appropriés.
  • IP (protocole Internet, protocole Internet): Protocole de bas niveau qui envoie des paquets de données pour des réseaux individuels associés aux routeurs pour former une internet ou un intranet. Data "Voyage" sous forme de paquets, appelés IP-Datagramm.
  • RARP (protocole de résolution d'adresse inverse, protocole de traduction de l'adresse): Convertit physique adresses réseau en adresses IP.
  • SMTP (protocole de transfert de courrier simple, protocole d'échange de courrier électronique simple): Détermine le format de message que le client SMTP exécuté sur un ordinateur peut utiliser pour transférer un courrier électronique à un serveur SMTP exécuté sur un autre ordinateur.
  • TCP (protocole de contrôle de la transmission, protocole de gestion de transfert): Le protocole est axé sur le travail avec les connexions et transmet des données sous forme de flux d'octets. Les données sont envoyées par des packages - segments TCP - qui composent des en-têtes TCP et de données. TCP est un protocole "fiable", car il utilise des checksums pour vérifier l'intégrité des données et envoyer des confirmations afin de garantir que les données transmises sont acceptées sans distorsion.
  • UDP (protocole de datagramme utilisateur, protocole de datagramme personnalisé): Un protocole qui ne dépend pas des connexions qui transmet ces packages appelés UDP-Datagramram. UDP - Protocole "peu fiable", puisque l'expéditeur ne reçoit pas d'informations indiquant si le datagramme était en réalité adopté.

Composition et but des champs d'en-tête

Les segments TCP sont envoyés en tant que datagramme IP. L'en-tête TCP suivant l'en-tête IP contient les informations de protocole TCP.

Port de source. (16 bits). Port de l'expéditeur.

Le port de destination. (16 bits). Port du destinataire.

Numéro de séquence (32 bits). Numéro de cadre. Le numéro de cadre du premier octet des données dans ce segment (à l'exception du package où le drapeau SYN est présent). Si le drapeau SYN est présent dans l'emballage, le nombre ce paquet Il devient le nombre de séquence (ISN) et le numéro du premier octet des données devient le numéro ISN + 1.

Numéro de reconnaissance (32 bits). Le champ du numéro de trame est confirmé. Si l'emballage contient le vélo de contrôle ASC établi, ce champ contient le numéro du prochain paquet de données de l'expéditeur que le destinataire attend. Pour connexions établies Le package de confirmation est toujours envoyé.

Décalage de données. (4 bits). Le champ de champ de déplacement de données. Il contient le nombre de mots de 32 bits TITTER TCP Packet. Ce numéro détermine le décalage des données dans l'emballage.

Réservé (6 bits). Champ de sauvegarde. Le champ est réservé.

Drapeaux de contrôle (de gauche à droite):

  • URG: drapeau de l'urgence
  • Demander: Drapeau de l'emballage contenant la confirmation de la réception
  • PSH: drapeau envoyé forcé
  • RST: réinstaller les connexions
  • SYN: synchronisation des numéros de séquence
  • Fin: drapeau de l'octroi de l'expéditeur

La fenêtre. (16 bits). La fenêtre. Ce champ contient la quantité d'octets de données que le segment de ce segment peut prendre un compte à rebours à partir du numéro d'octet spécifié dans le champ Numéro d'accusé de réception.

CheckSum. (16 bits). Champ de contrôle. Ce champ contient 16 bits de la quantité d'add-ons bibliques de mots de 16 bits de l'en-tête et des données. Si le segment comprend un nombre impair d'octets de l'en-tête et des données, le dernier octet est complété à droite avec des zéros. Lors du calcul de la somme de contrôle, le champ CheckSum est supposé être zéro.

Pointeur urgent. (16 bits). Champ expressif du pointeur de données. Ce champ contient la valeur du compteur de paquets, en commençant par lequel il existe des packs d'urgence élevés. Ce champ est pris en compte uniquement dans des segments avec l'ensemble de drapeaux d'URG.

Options. Domaine paramètres supplémentaires: Peut-être une longueur variable.

Rembourrage. Remplissage: longueur variable. L'en-tête TCP de remplissage (Zeros) est utilisé pour l'aligner par mot 32 bits.

Ce lien vers Visual Video. Malheureusement, c'est sur langue Anglaisemais aussi compréhensible.
Avez-vous aimé l'article? Partager avec des amis: