Москва
+7-929-527-81-33
Вологда
+7-921-234-45-78
Вопрос юристу онлайн Юридическая компания ЛЕГАС Вконтакте

Транспортный протокол TCP.

Обновлено 12.10.2025 06:58

 

 

Транспортный протокол TCP.

 

Транспортный протокол на сегодняшний день является наиболее распространенным средством транспортировки трафика. Прежде всего рассмотрим механизм действия протокола.

В отличие от протокола UDP, который может сразу же начать передачу пакетов, о котором мы поговорим чуть позже, TCP устанавливает соединения, которые должны быть созданы перед передачей данных. TCP-соединение можно разделить на три стадии:

установка соединения;

передача данных;

завершение соединения.

Сеанс протокола TCP может иметь одно из следующих состояний:

CLOSED - начальное состояние узла. Фактически фиктивное;

LISTEN - сервер ожидает запросов установления соединения от клиента;

SYN-SENT - клиент отправил запрос серверу на установление соединения и ожидает ответа;

SYN-RECEIVED - сервер получил запрос на соединение, отправил ответный запрос и ожидает подтверждения;

ESTABLISHED - соединение установлено, идет передача данных;

FIN-WAIT-1 - одна из сторон (назовем ее узел-1) завершает соединение, отправив сегмент с флагом FIN;

CLOSE-WAIT - другая сторона (узел-2) переходит в это состояние, отправив, в свою очередь, сегмент ACK, и продолжает одностороннюю передачу;

FIN-WAIT-2 - узел-1 получает ACK, продолжает чтение и ждет получения сегмента с флагом FIN;

LAST-ACK - узел-2 заканчивает передачу и отправляет сегмент с флагом FIN;

TIME-WAIT - узел-1 получил сегмент с флагом FIN, отправил сегмент с флагом ACK и ждет 2*MSL секунд перед окончательным закрытием соединения;

CLOSING - обе стороны инициировали закрытие соединения одновременно: после отправки сегмента с флагом FIN узел-1 также получает сегмент FIN, отправляет ACK и находится в ожидании сегмента ACK (подтверждения на свой запрос о разъединении).

Установка соединения.

Начало сеанса TCP принято называть «тройным рукопожатием» (three-way handshake). Оно состоит из трех шагов.

1-й шаг. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN.

Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента.

В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK и переходит в состояние SYN-RECEIVED.

В случае неудачи сервер посылает клиенту сегмент с флагом RST.

2-й шаг. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK.

Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED.

Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться.

Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.

3-й шаг. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED.

В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED.

Процесс называется «тройным рукопожатием», так как, несмотря на то что возможен процесс установления соединения с использованием 4 сегментов (SYN в сторону сервера, ACK в сторону клиента, SYN в сторону клиента, ACK в сторону сервера), на практике для экономии времени используется три сегмента.

Приемник при обмене данными использует номер последовательности, содержащийся в получаемых сегментах, для восстановления их исходного порядка. Затем приемник уведомляет передающую сторону о номере последовательности, до которой он успешно получил данные, включая его в поле «номер подтверждения». Все получаемые данные, относящиеся к промежутку подтвержденных последовательностей, игнорируются. Если полученный сегмент содержит номер последовательности больший, чем ожидаемый, то данные из сегмента буферизируются, но номер подтвержденной последовательности не изменяется. Если впоследствии будет принят сегмент, относящийся к ожидаемому номеру последовательности, то порядок данных будет автоматически восстановлен, исходя из номеров последовательностей в сегментах.

Во избежание ситуации, когда передающая сторона отправляет данные интенсивнее, чем их может обработать приемник, TCP содержит средства управления потоком. Для этого используется поле «окно». В сегментах, направляемых от приемника передающей стороне, в поле «окно» указывается текущий размер приемного буфера. Передающая сторона сохраняет размер окна и отправляет данных не более, чем указал приемник. Если приемник

указал нулевой размер окна, то передача данных в направлении этого узла не происходит до тех пор, пока приемник не сообщит о большем размере окна.

Также возможны ситуации, когда передающее приложение может явно затребовать протолкнуть данные до некоторой последовательности принимающему приложению, не буферизируя их. Для этого используется флаг PSH. Если в полученном сегменте обнаруживается флаг PSH, то реализация TCP отдает все буферизированные на текущий момент данные принимающему приложению. «Проталкивание» может использоваться, например, в интерактивных приложениях. В сетевых терминалах нет смысла ожидать ввода пользователя, после того как он закончил набирать команду. Поэтому последний сегмент, содержащий команду, обязан содержать флаг PSH, чтобы приложение на принимающей стороне смогло начать ее выполнение.

Завершение соединения.

Завершение соединения можно рассмотреть в три этапа:

1) посылка серверу от клиента флагов FIN и ACK на завершение соединения;

2) сервер посылает клиенту флаги ответа ACK, FIN, что соединение закрыто;

3) после получения этих флагов клиент закрывает соединение и в подтверждение отправляет серверу ACK, что соединение закрыто.

Петухов Олег, юрист в области международного права и защиты персональных данных, специалист в области информационной безопасности, защиты информации и персональных данных.

Телеграм-канал: https://t.me/zashchitainformacii

Группа в Телеграм: https://t.me/zashchitainformacii1

Сайт: https://legascom.ru

Электронная почта: online@legascom.ru

#защитаинформации #информационнаябезопасность

 

The TCP transport protocol.

 

The transport protocol is by far the most common means of transporting traffic. First of all, let's consider the mechanism of the protocol.

Unlike the UDP protocol, which can immediately start transmitting packets, which we'll talk about later, TCP establishes connections that must be created before transmitting data. A TCP connection can be divided into three stages:

establishing a connection;

data transmission;

connection termination.

A TCP session can have one of the following states:

CLOSED - the initial state of the node. Actually fictitious;

The LISTEN server is waiting for connection requests from the client.;

The SYN-SENT client has sent a connection request to the server and is awaiting a response.;

SYN-RECEIVED - The server has received a connection request, sent a response request, and is awaiting confirmation.;

ESTABLISHED - a connection has been established and data is being transferred.;

FIN-WAIT-1 - one of the parties (let's call it node-1) completes the connection by sending a segment with the FIN flag;

CLOSE-WAIT - the other side (node-2) enters this state, sending, in turn, an ACK segment, and continues the one-way transmission.;

FIN-WAIT-2 - node-1 receives an ACK, continues reading, and waits for a segment with the FIN flag.;

LAST-ACK - node-2 finishes transmitting and sends a segment with the FIN flag;

TIME-WAIT - node-1 received a segment with the FIN flag, sent a segment with the ACK flag, and waits 2*MSL seconds before finally closing the connection.;

CLOSING - both sides initiated connection closure at the same time: after sending a segment with the FIN flag, node-1 also receives the FIN segment, sends an ACK, and waits for the ACK segment (confirmation of its disconnect request).

Connection setup.

The beginning of a TCP session is commonly referred to as a "three-way handshake." It consists of three steps.

The 1st step. The client intending to establish a connection sends the server a segment with the sequence number and the SYN flag.

The server receives a segment, remembers the sequence number, and tries to create a socket (buffers and memory control structures) to serve the new client.

If successful, the server sends the client a segment with the sequence number and the SYN and ACK flags and switches to the SYN-RECEIVED state.

In case of failure, the server sends the client a segment with the RST flag.

The 2nd step. If the client receives a segment with the SYN flag, it remembers the sequence number and sends the segment with the ACK flag.

If it receives the ACK flag at the same time (which usually happens), it switches to the ESTABLISHED state.

If the client receives a segment with the RST flag, it stops trying to connect.

If the client does not receive a response within 10 seconds, it repeats the connection process again.

The 3rd step. If the server in the SYN-RECEIVED state receives a segment with the ACK flag, it switches to the ESTABLISHED state.

Otherwise, after a timeout, it closes the socket and switches to the CLOSED state.

The process is called a "triple handshake" because, despite the fact that it is possible to establish a connection using 4 segments (SYN to the server, ACK to the client, SYN to the client, ACK to the server), in practice, three segments are used to save time.

When exchanging data, the receiver uses the sequence number contained in the received segments to restore their original order. The receiver then notifies the transmitting party of the sequence number to which it has successfully received the data, including it in the "confirmation number" field. All received data related to the interval of confirmed sequences is ignored. If the received segment contains a sequence number greater than the expected one, then the data from the segment is buffered, but the number of the confirmed sequence does not change. If a segment related to the expected sequence number is subsequently received, the data order will be automatically restored based on the sequence numbers in the segments.

In order to avoid a situation where the transmitting side sends data more intensively than the receiver can process it, TCP contains flow control tools. The "window" field is used for this. In the segments sent from the receiver to the transmitting side, the current size of the receiving buffer is indicated in the window field. The transmitting side keeps the window size and sends no more data than specified by the receiver. If the receiver

has specified a window size of zero, then data transmission in the direction of this node does not occur until the receiver reports a larger window size.

There may also be situations where the transmitting application may explicitly request that data be pushed through to a certain sequence to the receiving application without buffering it. The PSH flag is used for this. If the PSH flag is detected in the received segment, the TCP implementation returns all currently buffered data to the receiving application. "Pushing" can be used, for example, in interactive applications. In network terminals, it makes no sense to wait for user input after they have finished typing a command. Therefore, the last segment containing the command must contain the PSH flag so that the application on the receiving side can start executing it.

Connection termination.

The completion of the connection can be considered in three stages:

1) sending the FIN and ACK flags to the server from the client to terminate the connection;

2) the server sends the client response flags ACK, FIN, that the connection is closed;

3) after receiving these flags, the client closes the connection and sends an ACK to the server confirming that the connection is closed.

Oleg Petukhov, lawyer in the field of international law and personal data protection, information security specialist security, protection of information and personal data.

Telegram channel: https://t.me/protectioninformation

Telegram Group: https://t.me/informationprotection1

Website: https://legascom.ru

Email: online@legascom.ru

#informationprotection #informationsecurity

 

TCP-Transportprotokoll.

 

Das Transportprotokoll ist bei weitem das gebräuchlichste Transportmittel für den Verkehr. Betrachten wir zunächst den Wirkungsmechanismus des Protokolls.

Im Gegensatz zum UDP-Protokoll, das sofort mit der Übertragung von Paketen beginnen kann, über das wir später sprechen werden, stellt TCP Verbindungen her, die vor der Datenübertragung erstellt werden müssen. Die TCP-Verbindung kann in drei Phasen unterteilt werden:

verbindung herstellen;

Datenübertragung;

die Verbindung wird beendet.

Eine TCP-Sitzung kann einen der folgenden Zustände aufweisen:

CLOSED - Der anfängliche Zustand des Knotens. Eigentlich fiktives;

LISTEN - Der Server wartet auf Verbindungsanforderungen vom Client;

Der SYN-SENT-Client hat eine Verbindungsanforderung an den Server gesendet und wartet auf eine Antwort;

SYN-RECEIVED - Der Server hat eine Verbindungsanforderung erhalten, eine Antwortanforderung gesendet und wartet auf die Bestätigung;

ESTABLISHED - Die Verbindung wurde hergestellt, die Datenübertragung läuft;

FIN-WAIT-1 - Eine Seite (nennen wir sie Knoten-1) beendet die Verbindung, indem ein Segment mit dem FIN-Flag gesendet wird;

CLOSE-WAIT - Die andere Seite (Knoten-2) geht in diesen Zustand über, sendet wiederum das ACK-Segment und setzt die einseitige Übertragung fort;

FIN-WAIT-2 - Knoten-1 empfängt ein ACK, setzt das Lesen fort und wartet darauf, dass das Segment mit dem FIN-Flag empfangen wird;

LAST-ACK - Knoten-2 beendet die Übertragung und sendet das Segment mit dem FIN-Flag;

TIME-WAIT - Knoten-1 hat ein Segment mit dem FIN-Flag empfangen, ein Segment mit dem ACK-Flag gesendet und wartet 2*MSL Sekunden, bevor die Verbindung endgültig geschlossen wird;

CLOSING - Beide Seiten haben die Verbindung gleichzeitig geschlossen: Nachdem sie ein Segment mit dem FIN-Flag gesendet haben, empfängt Knoten-1 auch das FIN-Segment, sendet ein ACK und wartet auf das ACK-Segment (eine Bestätigung für ihre Trennungsanforderung).

Verbindung herstellen.

Das Starten einer TCP-Sitzung wird allgemein als «dreifacher Handshake» bezeichnet. Es besteht aus drei Schritten.

Schritt 1. Der Client, der eine Verbindung herstellen möchte, sendet ein Segment mit der Sequenznummer und dem SYN-Flag an den Server.

Der Server empfängt das Segment, merkt sich die Sequenznummer und versucht, einen Socket (Puffer und Speicherverwaltungsstrukturen) zu erstellen, um einen neuen Client zu bedienen.

Wenn dies erfolgreich ist, sendet der Server ein Segment mit der Sequenznummer und den SYN- und ACK-Flags an den Client und wechselt in den Status SYN-RECEIVED.

Im Falle eines Fehlers sendet der Server ein Segment mit dem RST-Flag an den Client.

Schritt 2. Wenn der Client ein Segment mit dem SYN-Flag empfängt, merkt er sich die Sequenznummer und sendet das Segment mit dem ACK-Flag.

Wenn es gleichzeitig ein ACK-Flag erhält (was normalerweise der Fall ist), wird es in den Status ESTABLISHED versetzt.

Wenn der Client ein Segment mit dem RST-Flag empfängt, stoppt er die Verbindungsversuche.

Wenn der Client innerhalb von 10 Sekunden keine Antwort erhält, wiederholt er den Verbindungsvorgang erneut.

Schritt 3. Wenn der Server im Status SYN-RECEIVED ein Segment mit dem Flag ACK empfängt, wechselt er in den Status ESTABLISHED.

Andernfalls schließt es den Socket nach dem Timeout und wechselt in den Zustand CLOSED.

Der Vorgang wird als «dreifacher Handshake» bezeichnet, da es zwar möglich ist, eine Verbindung mit 4 Segmenten herzustellen (SYN auf Serverseite, ACK auf Clientseite, SYN auf Clientseite, ACK auf Serverseite), in der Praxis jedoch drei Segmente verwendet werden, um Zeit zu sparen.

Der Empfänger verwendet beim Datenaustausch die in den empfangenen Segmenten enthaltene Sequenznummer, um ihre ursprüngliche Reihenfolge wiederherzustellen. Der Empfänger benachrichtigt dann die Senderseite über die Nummer der Sequenz, vor der er die Daten erfolgreich empfangen hat, einschließlich der Nummer im Feld «Bestätigungsnummer». Alle empfangenen Daten, die sich auf den Zeitraum der bestätigten Sequenzen beziehen, werden ignoriert. Wenn das resultierende Segment eine Sequenz enthält, die größer ist als erwartet, werden die Daten aus dem Segment gepuffert, die Nummer der bestätigten Sequenz wird jedoch nicht geändert. Wenn Sie später ein Segment akzeptieren, das sich auf die erwartete Sequenznummer bezieht, wird die Datenreihenfolge automatisch basierend auf den Sequenznummern in den Segmenten wiederhergestellt.

Um eine Situation zu vermeiden, in der die Sendeseite Daten intensiver sendet, als der Empfänger sie verarbeiten kann, enthält TCP Flusssteuerungsfunktionen. Dazu wird das Feld "Fenster" verwendet. Die Segmente, die vom Empfänger an die Senderseite gesendet werden, geben im Feld «Fenster» die aktuelle Größe des Empfangspuffers an. Die Sendeseite behält die Größe des Fensters bei und sendet die Daten nicht mehr als vom Empfänger angegeben. Wenn der Empfänger

wenn die Fenstergröße Null ist, erfolgt keine Datenübertragung in Richtung dieses Knotens, bis der Empfänger eine größere Fenstergröße meldet.

Es gibt auch Situationen, in denen die sendende Anwendung explizit verlangen kann, dass die Daten an die empfangende Anwendung in eine bestimmte Reihenfolge gedrängt werden, ohne sie zu puffern. Dazu wird das PSH-Flag verwendet. Wenn ein PSH-Flag im empfangenen Segment gefunden wird, gibt die TCP-Implementierung alle derzeit gepufferten Daten an die empfangende Anwendung zurück. "Push" kann beispielsweise in interaktiven Anwendungen verwendet werden. In Netzwerkterminals hat es keinen Sinn, auf eine Benutzereingabe zu warten, nachdem er mit der Eingabe des Befehls fertig ist. Daher muss das letzte Segment, das den Befehl enthält, das PSH-Flag enthalten, damit die Anwendung auf der Empfangsseite mit der Ausführung beginnen kann.

Die Verbindung wird beendet.

Sie können die Verbindung in drei Schritten beenden:

1) senden Sie FIN- und ACK-Flags vom Client an den Server, um die Verbindung zu beenden;

2) der Server sendet ACK-Antwortflags an den Client, FIN, dass die Verbindung geschlossen ist;

3) nach Erhalt dieser Flags schließt der Client die Verbindung und sendet zur Bestätigung ein ACK an den Server, dass die Verbindung geschlossen wurde.

Oleg Petukhov, Rechtsanwalt im Bereich des Völkerrechts und des Schutzes personenbezogener Daten, Spezialist für Informationstechnik sicherheit, Schutz von Informationen und persönlichen Daten.

Telegramm-Kanal: https://t.me/datenschutzmit

Die Gruppe im Telegramm: https://t.me/datenschutzmit1

Website: https://legascom.ru

E-Mail: online@legascom.ru

#informationssicherheit #informationssicherheit

 

Protocole de transport TCP.

 

Le protocole de transport est de loin le moyen le plus courant de transport du trafic. Tout d'abord, considérons le mécanisme d'action du protocole.

Contrairement au protocole UDP, qui peut commencer immédiatement à transmettre des paquets, dont nous parlerons un peu plus tard, TCP établit des connexions qui doivent être créées avant de transmettre des données. La connexion TCP peut être divisée en trois étapes:

installation de la connexion;

transmission des données;

fin de la connexion.

Une session TCP peut avoir l'un des États suivants:

CLOSED - état initial du nœud. Factice;

LISTEN - LE serveur attend les demandes de connexion du client;

SYN-SENT-le client a envoyé une demande au serveur pour établir une connexion et attend une réponse;

SYN-RECEIVED - le serveur a reçu une demande de connexion, a envoyé une demande de réponse et attend la confirmation;

ESTABLISHED-connexion établie, transfert de données en cours;

FIN-WAIT-1-l'un des côtés (appelons-le nœud-1) termine la connexion en envoyant un segment avec un drapeau FIN;

CLOSE-WAIT-l'autre partie (node-2) entre dans cet état, envoyant à son tour le segment ACK et continuant le transfert unidirectionnel;

FIN-WAIT - 2-node-1 reçoit ACK, continue à lire et attend d'obtenir le segment avec l'indicateur FIN;

LAST - ACK-node-2 termine la transmission et envoie le segment avec le drapeau FIN;

TIME-WAIT-noeud-1 a reçu un segment avec un drapeau FIN, a envoyé un segment avec un drapeau ACK et attend 2 * MSL secondes avant la fermeture finale de la connexion;

CLOSING - les deux parties ont initié la fermeture de la connexion en même temps: après avoir envoyé un segment avec l'indicateur FIN, le nœud-1 reçoit également le segment FIN, envoie ACK et attend le segment ACK (confirmation de sa demande de déconnexion).

Installation de la connexion.

Le début d'une session TCP est généralement appelé» poignée de main à trois voies " (three-way handshake). Il se compose de trois étapes.

1ère étape. Le client qui souhaite établir la connexion envoie au serveur un segment avec un numéro de séquence et un indicateur SYN.

Le serveur reçoit le segment, se souvient du numéro de séquence et tente de créer un socket (tampons et structures de mémoire de contrôle) pour servir le nouveau client.

En cas de succès, le serveur envoie au client un segment avec le numéro de séquence et les indicateurs SYN et ACK et passe à l'état SYN-RECEIVED.

En cas d'échec, le serveur envoie au client un segment avec l'indicateur RST.

Étape 2. Si le client reçoit un segment avec l'indicateur SYN, il se souvient du numéro de séquence et envoie le segment avec l'indicateur ACK.

S'il reçoit simultanément l'indicateur ACK (ce qui se produit généralement), il passe à l'état ESTABLISHED.

Si le client reçoit un segment avec l'indicateur RST, il arrête les tentatives de connexion.

Si le client ne reçoit pas de réponse dans les 10 secondes, il répète le processus de connexion.

3ème étape. Si le serveur dans l'état SYN-RECEIVED reçoit un segment avec l'indicateur ACK, il passe à l'état ESTABLISHED.

Sinon, après le délai d'attente, il ferme le socket et passe à l'état CLOSED.

Le processus est appelé " Triple poignée de main», car bien qu'il soit possible d'établir une connexion à l'aide de 4 segments (SYN côté serveur, ACK côté client, SYN côté client, ACK côté serveur), dans la pratique, trois segments sont utilisés pour gagner du temps.

Lors de l'échange de données, le récepteur utilise le numéro de séquence contenu dans les segments reçus pour rétablir leur ordre d'origine. Le récepteur notifie ensuite à la partie émettrice le numéro de séquence avant lequel il a reçu avec succès les données, y compris dans le champ «numéro de confirmation». Toutes les données reçues relatives à l'intervalle de séquences confirmées sont ignorées. Si le segment reçu contient un numéro de séquence supérieur à celui attendu, les données du segment sont mises en mémoire tampon, mais le numéro de séquence confirmé n'est pas modifié. Si un segment correspondant au numéro de séquence attendu est accepté ultérieurement, l'ordre des données sera automatiquement rétabli en fonction des numéros de séquence dans les segments.

Pour éviter les cas où la partie émettrice envoie des données plus intensément que le récepteur ne peut les traiter, TCP contient des contrôles de flux. Pour ce faire, utilisez le champ «fenêtre". Dans les segments envoyés du récepteur à la partie émettrice, le champ fenêtre indique la taille actuelle du tampon de réception. La partie émettrice conserve la taille de la fenêtre et n'envoie pas plus de données que le récepteur spécifié. Si le récepteur

si vous avez spécifié une taille de fenêtre nulle, la transmission de données vers ce nœud ne se produit pas tant que le récepteur ne signale pas une taille de fenêtre plus grande.

Il est également possible que l'application émettrice doive explicitement pousser les données jusqu'à un certain ordre à l'application réceptrice sans les mettre en mémoire tampon. Pour ce faire, utilisez le drapeau PSH. Si l'indicateur PSH est détecté dans le segment reçu, l'implémentation TCP donne toutes les données mises en mémoire tampon à l'application de réception. La "poussée" peut être utilisée, par exemple, dans les applications interactives. Dans les terminaux réseau, il n'est pas logique d'attendre l'entrée de l'utilisateur après qu'il ait fini de taper la commande. Par conséquent, le dernier segment contenant la commande doit contenir un indicateur PSH afin que l'application hôte puisse commencer à l'exécuter.

Fin de la connexion.

L'achèvement de la connexion peut être envisagé en trois étapes:

1) envoi au serveur du client des drapeaux FIN et ACK à la fin de la connexion;

2) le serveur envoie au client des drapeaux de réponse ACK, FIN que la connexion est fermée;

3) après avoir reçu ces indicateurs, le client ferme la connexion et, en confirmation, envoie au serveur ACK que la connexion est fermée.

Petukhov Oleg, avocat en droit international et protection des données personnelles, spécialiste de l'information sécurité, protection de l'information et des données personnelles.

Telegram Channel: https://t.me/protecciondelainformacion

Groupe au Télégramme: https://t.me/securiteinformatique2

Site: https://legascom.ru

E-mail: online@legascom.ru

#sécuritéinformations #informationsécurité

 

Protocole de transport TCP.

 

Le protocole de transport est de loin le moyen le plus courant de transporter le trafic. Tout d'abord, considérons le mécanisme d'action du protocole.

Contrairement au protocole UDP, qui peut commencer immédiatement à transmettre des paquets, dont nous parlerons un peu plus tard, TCP établit des connexions qui doivent être créées avant de transmettre des données. La connexion TCP peut être divisée en trois étapes :

installation de la connexion;

transmission des données ;

fin de la connexion.

Une session TCP peut avoir l'un des États suivants :

CLOSED - état initial du nœud. Factice;

LISTEN - Le serveur attend les demandes de connexion du client;

SYN-SENT : le client a envoyé une demande au serveur pour établir une connexion et attend une réponse ;

SYN-RECEIVED - le serveur a reçu une demande de connexion, a envoyé une demande de réponse et attend la confirmation;

ESTABLISHED : connexion établie, transfert de données en cours ;

FIN-WAIT-1-un des côtés (appelons-le nœud-1) termine la connexion en envoyant un segment avec un drapeau FIN;

CLOSE-WAIT-l'autre partie (node-2) entre dans cet état, envoyant à son tour le segment ACK et poursuivant le transfert unidirectionnel;

FIN-WAIT - 2-node-1 reçoit ACK, continue à lire et attend d'obtenir le segment avec l'indicateur FIN;

LAST - ACK-node-2 termine la transmission et envoie le segment avec le drapeau FIN;

TIME-WAIT-nœud-1 a reçu un segment avec un drapeau FIN, a envoyé un segment avec un drapeau ACK et attend 2 * MSL secondes avant la fermeture finale de la connexion ;

CLOSING - les deux parties ont amorcé la fermeture de la connexion en même temps : après avoir envoyé un segment avec l'indicateur FIN, le nœud-1 reçoit également le segment FIN, envoie ACK et attend le segment ACK (confirmation de sa demande de déconnexion).

Installation de la connexion.

Le début d'une session TCP est généralement appelé « poignée de main à trois voies » (handshake à distance). Il se compose de trois étapes.

Première étape. Le client qui veut établir la connexion envoie au serveur un segment avec un numéro de séquence et un indicateur SYN.

Le serveur reçoit le segment, se souvient du numéro de séquence et tente de créer un socket (tampons et structures de mémoire de contrôle) pour servir le nouveau client.

En cas de succès, le serveur envoie au client un segment avec le numéro de séquence et les indicateurs SYN et ACK et passe à l'état SYN-RECEIVED.

En cas d'échec, le serveur envoie au client un segment avec l'indicateur RST.

Étape 2. Si le client reçoit un segment avec l'indicateur SYN, il se souvient du numéro de séquence et envoie le segment avec l'indicateur ACK.

S'il reçoit simultanément l'indicateur ACK (ce qui se produit généralement), il passe à l'état ESTABLISHED.

Si le client reçoit un segment avec l'indicateur RST, il arrête les tentatives de connexion.

Si le client ne reçoit pas de réponse dans les 10 secondes, il répète le processus de connexion.

3e étape. Si le serveur dans l'état SYN-RECEIVED reçoit un segment avec l'indicateur ACK, il passe à l'état ESTABLISHED.

Sinon, après le délai d'attente, il ferme le socket et passe à l'état CLOSED.

Le processus est appelé « Triple poignée de main », car bien qu'il soit possible d'établir une connexion à l'aide de 4 segments (SYN côté serveur, ACK côté client, SYN côté client, ACK côté serveur), dans la pratique, trois segments sont utilisés pour gagner du temps.

Lors de l'échange de données, le destinataire utilise le numéro de séquence contenu dans les segments reçus pour rétablir leur ordre d'origine. Le récepteur notifie ensuite à la partie émettrice le numéro de séquence avant lequel il a reçu avec succès les données, y compris dans le champ «numéro de confirmation». Toutes les données reçues relatives à l'intervalle de séquences confirmées sont ignorées. Si le segment reçu contient un numéro de séquence supérieur à celui attendu, les données du segment sont mises en mémoire tampon, mais le numéro de séquence confirmé n'est pas modifié. Si un segment correspondant au numéro de séquence attendu est accepté ultérieurement, l'ordre des données sera automatiquement rétabli en fonction des numéros de séquence dans les segments.

Pour éviter les cas où la partie émettrice envoie des données plus intensément que le récepteur ne peut les traiter, TCP contient des contrôles de flux. Pour ce faire, utilisez le champ «fenêtre". Dans les segments envoyés du récepteur à la partie émettrice, le champ fenêtre indique la taille actuelle du tampon de réception. La partie émettrice conserve la taille de la fenêtre et n'envoie pas plus de données que le récepteur spécifié. Si le récepteur

si vous avez spécifié une taille de fenêtre nulle, la transmission de données vers ce nœud ne se produit pas tant que le récepteur ne signale pas une taille de fenêtre plus grande.

Il est également possible que l'application émettrice doive explicitement pousser les données jusqu'à un certain ordre à l'application réceptrice sans les mettre en mémoire tampon. Pour ce faire, utilisez le drapeau PSH. Si l'indicateur PSH est détecté dans le segment reçu, l'implémentation TCP donne toutes les données mises en mémoire tampon à l'application de réception. La « poussée » peut être utilisée, par exemple, dans les applications interactives. Dans les terminaux réseau, il n'est pas logique d'attendre l'entrée de l'utilisateur après qu'il ait fini de taper la commande. Par conséquent, le dernier segment contenant la commande doit contenir un indicateur PSH afin que l'application hôte puisse commencer à l'exécuter.

Fin de la connexion.

L'achèvement de la connexion peut être envisagé en trois étapes :

1) envoyer au serveur du client les drapeaux FIN et ACK à la fin de la connexion;

2) le serveur envoie au client des drapeaux de réponse ACK, FIN que la connexion est fermée;

3) après avoir reçu ces indicateurs, le client ferme la connexion et, en confirmation, envoie au serveur ACK que la connexion est fermée.

Petukhov Oleg, avocat en droit international et protection des renseignements personnels, spécialiste de l'information sécurité, protection de l'information et des données personnelles.

Canal Telegram: https://t.me/protecciondelainformacion

Groupe au Télégramme: https://t.me/securiteinformatique2

Site: https://legascom.ru

Courriel: online@legascom.ru

#sécuritéinformations #informationsécurité

 

Protocolo de transporte TCP.

 

El protocolo de transporte es, con mucho, el medio más común de transporte de tráfico. En primer lugar, consideremos el mecanismo de funcionamiento del protocolo.

A diferencia del protocolo UDP, que puede iniciar inmediatamente la transferencia de paquetes, del que hablaremos más adelante, TCP establece conexiones que deben crearse antes de la transferencia de datos. La conexión TCP se puede dividir en tres etapas:

instalación de la conexión;

TD;

terminación de la conexión.

Una sesión TCP puede tener uno de los siguientes Estados:

CLOSED-estado inicial del nodo. De hecho ficticio;

LISTEN-el servidor espera solicitudes de conexión del cliente;

SYN-SENT-el cliente envió una solicitud al servidor para establecer una conexión y espera una respuesta;

SYN-RECEIVED-el servidor ha recibido una solicitud de conexión, ha enviado una solicitud de respuesta y está esperando confirmación;

ESTABLISHED-conexión establecida, transferencia de datos en curso;

FIN-WAIT-1 - uno de los lados (llamémoslo nodo-1) termina la conexión enviando un segmento con el indicador FIN;

CLOSE-WAIT - el otro lado (nodo-2) entra en este estado enviando, a su vez, el segmento ACK y continúa la transmisión unidireccional;

FIN-WAIT - 2-nodo-1 obtiene ACK, continúa leyendo y espera a que se reciba el segmento con el indicador FIN;

LAST-ACK-nodo-2 termina la transmisión y envía el segmento con el indicador FIN;

TIME-WAIT-node-1 recibió un segmento con el indicador FIN, envió un segmento con el indicador ACK y espera 2 * MSL segundos antes de cerrar la conexión;

CLOSING-ambas partes iniciaron el cierre de la conexión al mismo tiempo: después de enviar un segmento con el indicador FIN, el nodo-1 también recibe un segmento FIN, envía un ACK y está esperando un segmento ACK (confirmación de su solicitud de desconexión).

Instalación de la conexión.

El Inicio de una sesión TCP se conoce como "Triple Handshake" (Triple Handshake). Consta de tres pasos.

1er paso. El cliente que tiene la intención de establecer una conexión envía al servidor un segmento con un número de secuencia y un indicador SYN.

El servidor obtiene un segmento, recuerda el número de secuencia e intenta crear un socket (búferes y estructuras de control de memoria) para servir al nuevo cliente.

Si tiene éxito, el servidor envía al cliente un segmento con el número de secuencia y los indicadores SYN y ACK y pasa al estado SYN-RECEIVED.

En caso de fallo, el servidor envía al cliente un segmento con el indicador RST.

Segundo paso. Si el cliente recibe un segmento con el indicador SYN, entonces recuerda el número de secuencia y envía un segmento con el indicador ACK.

Si recibe el indicador ACK al mismo tiempo (lo que suele suceder), pasa al estado ESTABLISHED.

Si el cliente recibe un segmento con el indicador RST, deja de intentar conectarse.

Si el cliente no recibe una respuesta en 10 segundos, repite el proceso de conexión nuevamente.

3er paso. Si el servidor en el estado SYN-RECEIVED recibe un segmento con el indicador ACK, pasa al estado ESTABLISHED.

De lo contrario, después del tiempo de espera, cierra el socket y entra en el estado CLOSED.

El proceso se llama "Triple apretón de manos", ya que, aunque es posible establecer una conexión utilizando 4 segmentos (SYN en el lado del servidor, ACK en el lado del cliente, SYN en el lado del cliente, ACK en el lado del servidor), en la práctica se utilizan tres segmentos para ahorrar tiempo.

El receptor utiliza el número de secuencia de los segmentos recibidos para restaurar su orden original. Luego, el receptor notifica a la parte transmisora el número de secuencia al que ha recibido los datos con éxito, incluyéndolo en el campo número de confirmación. Todos los datos recibidos relacionados con el intervalo de secuencias confirmadas se ignoran. Si el segmento recibido contiene un número de secuencia mayor que el esperado, los datos del segmento se almacenan en búfer, pero el número de secuencia confirmado no cambia. Si posteriormente se acepta un segmento relacionado con el número de secuencia esperado, el orden de los datos se restablecerá automáticamente en función de los números de secuencia de los segmentos.

Para evitar una situación en la que la parte transmisora envía datos más de lo que el receptor puede procesar, TCP contiene controles de flujo. Para ello, se utiliza el campo "ventana". En los segmentos enviados desde el receptor a la parte transmisora, el campo ventana indica el Tamaño actual del búfer de Recepción. El lado de transmisión conserva el Tamaño de la ventana y envía los datos no más de lo indicado por el receptor. Si el receptor

indicó un Tamaño de ventana cero, entonces la transmisión de datos hacia este nodo no se produce hasta que el receptor informa de un Tamaño de ventana más grande.

También puede haber situaciones en las que la aplicación de transmisión pueda exigir explícitamente que los datos se introduzcan en alguna secuencia a la aplicación receptora sin almacenarlos en búfer. Para ello se utiliza la bandera PSH. Si se detecta un indicador PSH en el segmento recibido, la implementación TCP entrega todos los datos almacenados en búfer a la aplicación receptora. El "empuje" se puede usar, por ejemplo, en aplicaciones interactivas. En los terminales de red, no tiene sentido esperar la entrada del usuario después de que haya terminado de escribir un comando. Por lo tanto, el último segmento que contiene el comando debe contener el indicador PSH para que la aplicación en el lado receptor pueda comenzar a ejecutarlo.

Terminación de la conexión.

La finalización de la conexión se puede considerar en tres pasos:

1) enviar al servidor desde el cliente las banderas FIN y ACK para completar la conexión;

2) el servidor envía al cliente banderas de respuesta ACK, FIN, que la conexión está cerrada;

3) después de recibir estos indicadores, el cliente cierra la conexión y, en confirmación, envía al servidor ACK que la conexión está cerrada.

Oleg Petukhov, abogado en el campo del derecho internacional y la protección de datos personales, especialista en información seguridad, protección de la información y datos personales.

Canal de Telegram: https://t.me/protecciondelainformacion1

Grupo de Telegramas: https://t.me/protecciondelainformacion2

Sitio web: https://legascom.ru

Correo electrónico: online@legascom.ru

#proteccióndelainformación #seguridaddelainformación

 

Protocolo de transporte TCP.

 

O protocolo de transporte é de longe o meio mais comum de transporte de tráfego. Primeiro, considere o mecanismo de operação do protocolo.

Ao contrário do protocolo UDP, que pode iniciar a transmissão de pacotes imediatamente, sobre o qual falaremos mais tarde, o TCP estabelece conexões que devem ser criadas antes da transmissão de dados. A conexão TCP pode ser dividida em três etapas:

instalando a conexão;

transferência de dados;

a terminar a ligação.

Uma sessão TCP pode ter um dos seguintes estados::

CLOSED-o estado inicial do nó. Fictício Virtual;

LISTEN - o servidor aguarda pedidos de conexão do cliente;

O cliente SYN-SENT enviou uma solicitação ao servidor para estabelecer uma conexão e aguarda uma resposta;

SYN-RECEIVED - o servidor recebeu uma solicitação de conexão, enviou uma solicitação de resposta e aguarda confirmação;

ESTABLISHED - conexão estabelecida, transferência de dados em andamento;

FIN-WAIT-1 - um dos lados (vamos chamá-lo de nó-1) termina a conexão enviando um segmento com a bandeira FIN;

CLOSE-WAIT - o outro lado (nó-2) entra nesse estado, enviando, por sua vez, um segmento ACK e continua a transmissão unidirecional;

FIN-WAIT-2-nó-1 recebe ACK, continua lendo e espera para receber o segmento com bandeira FIN;

O nó LAST-ACK - 2 termina a transmissão e envia um segmento com a bandeira FIN;

Time - WAIT-Node-1 recebeu um segmento com flag FIN, enviou um segmento com flag ACK e espera 2 * MSL segundos antes de fechar a conexão final;

CLOSING-ambas as partes iniciaram o fechamento da conexão ao mesmo tempo: depois de enviar o segmento com a bandeira FIN, o nó-1 também recebe o segmento FIN, envia o ACK e aguarda o segmento ACK (confirmação em seu pedido de desconexão).

Estabelecer uma ligação.

O início de uma sessão TCP é chamado de "Three-way handshake". Consiste em três passos.

Passo 1. O cliente que pretende estabelecer uma conexão envia ao servidor um segmento com um número de sequência e um sinalizador SYN.

O servidor recebe um segmento, memoriza um número de sequência e tenta criar um socket (buffers de memória e estruturas de controle) para servir o novo cliente.

Se for bem-sucedido, o servidor envia ao cliente um segmento com um número de sequência e sinalizadores SYN e ACK e passa para o estado SYN-RECEIVED.

Em caso de falha, o servidor envia ao cliente um segmento com o sinalizador RST.

Passo 2. Se o cliente receber um segmento com sinalizador SYN, ele se lembrará do número da sequência e enviará um segmento com sinalizador ACK.

Se ele receber o flag ACK ao mesmo tempo (o que geralmente acontece), ele entrará no estado ESTABLISHED.

Se um cliente recebe um segmento com o sinalizador RST, ele pára de tentar se conectar.

Se o cliente não receber uma resposta dentro de 10 segundos, ele repetirá o processo de conexão.

Passo 3. Se um servidor no estado SYN-RECEIVED receber um segmento ACK, ele entrará no estado ESTABLISHED.

Caso contrário, após o tempo limite, ele fecha o soquete e entra no estado CLOSED.

O processo é chamado de "aperto de mão Triplo" porque, embora seja possível estabelecer uma conexão usando 4 segmentos (SYN no lado do servidor, ACK no lado do cliente, SYN no lado do cliente, ACK no lado do servidor), na prática, três segmentos são usados para economizar tempo.

O receptor, quando se comunica, usa o número de sequência contido nos segmentos recebidos para restaurar sua ordem original. Em seguida, o receptor notifica a parte transmissora do número de sequência até o qual recebeu os dados com sucesso, incluindo-o no campo "Número de confirmação". Todos os dados recebidos relacionados ao intervalo de sequências confirmadas são ignorados. Se o segmento resultante contiver um número de sequência maior do que o esperado, os dados do segmento serão armazenados em buffer, mas o número da sequência confirmada não será alterado. Se um segmento relacionado ao número de sequência esperado for aceito posteriormente, a ordem dos dados será restaurada automaticamente com base nos números de sequência nos segmentos.

Para evitar que o lado transmissor envie dados com mais intensidade do que o receptor pode processá-los, o TCP contém controles de fluxo. Para isso, é utilizado o campo "janela". Nos segmentos enviados do receptor para o lado transmissor, o campo "janela" indica o tamanho atual do buffer de recepção. O lado transmissor mantém o tamanho da janela e envia dados não mais do que o receptor indicou. Se o receptor

se o tamanho da janela for zero, a transmissão de dados para esse host não ocorrerá até que o receptor Informe um tamanho maior da janela.

Também existem situações em que o aplicativo de transmissão pode exigir explicitamente que os dados sejam empurrados em alguma sequência para o aplicativo de recepção sem buffer. Para isso, é utilizada a bandeira PSH. Se o flag PSH for detectado no segmento resultante, a implementação TCP entregará TODOS os dados em buffer ao aplicativo receptor. O "empurrão" pode ser usado, por exemplo, em aplicativos interativos. Em terminais de rede, não faz sentido esperar que um usuário entre Depois que ele terminou de digitar o comando. Portanto, o último segmento que contém o comando deve conter o flag PSH para que o aplicativo no lado receptor possa começar a executá-lo.

A terminar a ligação.

A conclusão da conexão pode ser considerada em três etapas:

1) Enviar ao servidor do cliente os sinalizadores FIN e ACK para concluir a conexão;

2) o servidor envia ao cliente sinalizadores de resposta ACK, FIN que a conexão é fechada;

3) Depois de receber esses sinalizadores, o cliente fecha a conexão e, em confirmação, envia ao servidor ACK que a conexão está fechada.

Petukhov Oleg, advogado de Direito Internacional e proteção de dados pessoais, especialista em informação segurança, proteção de informações e dados pessoais.

Canal do Telegram: https://t.me/protecaodaInformacao

Grupo em Telegram: https://t.me/protecaodaInformacao1

Site: https://legascom.ru

Correio eletrónico: online@legascom.ru

#segurançadaInformação #Segurançadainformação

 

O protocolo de transporte TCP.

 

O protocolo de transporte é de longe o meio mais comum de transporte de tráfego. Em primeiro lugar, vamos considerar o mecanismo do protocolo.

Ao contrário do protocolo UDP, que pode iniciar imediatamente a transmissão de pacotes, sobre o qual falaremos mais adiante, o TCP estabelece conexões que devem ser criadas antes da transmissão de dados. Uma conexão TCP pode ser dividida em três estágios:

estabelecendo uma conexão;

transmissão de dados;

término da conexão.

Uma sessão TCP pode ter um dos seguintes estados:

CLOSED-o estado inicial do nó. Na verdade fictícia;

O servidor de escuta está aguardando solicitações de conexão do cliente.;

O cliente SYN-SENT enviou uma solicitação de conexão ao servidor e está aguardando uma resposta.;

SYN-RECEIVED-o servidor recebeu uma solicitação de conexão, enviou uma solicitação de resposta e está aguardando confirmação.;

ESTABLISHED - uma conexão foi estabelecida e os dados estão sendo transferidos.;

FIN-WAIT-1-uma das partes (vamos chamá-lo de node-1) completa a conexão enviando um segmento com o sinalizador FIN;

CLOSE-WAIT-o outro lado (nó-2) entra nesse estado, enviando, por sua vez, um segmento ACK, e continua a transmissão unidirecional.;

FIN-WAIT-2-node-1 recebe um ACK, continua lendo e aguarda um segmento com o sinalizador FIN.;

LAST-ACK-node-2 finaliza a transmissão e envia um segmento com o sinalizador FIN;

TIME-WAIT-node-1 recebeu um segmento com o sinalizador FIN, enviou um segmento com o sinalizador ACK e aguarda 2*MSL segundos antes de finalmente fechar a conexão.;

CLOSING-ambos os lados iniciaram o fechamento da conexão ao mesmo tempo: após enviar um segmento com o sinalizador FIN, o nó-1 também recebe o segmento FIN, envia um ACK e aguarda o segmento ACK (confirmação de sua solicitação de desconexão).

Configuração de conexão.

O início de uma sessão TCP é comumente referido como um "handshake de três vias."Consiste em três etapas.

The 1st step. O cliente que pretende estabelecer uma conexão envia ao servidor um segmento com o número de sequência e o sinalizador SYN.

O servidor recebe um segmento, lembra o número de sequência e tenta criar um soquete (buffers e estruturas de controle de memória) para atender o novo cliente.

Se bem sucedido, o server envia ao cliente um segmento com o número de sequência e as bandeiras SYN e ACK e comuta ao estado SYN-recebido.

Em caso de falha, o servidor envia ao cliente um segmento com o sinalizador RST.

O 2o passo. Se o cliente recebe um segmento com a bandeira SYN, recorda o número de sequência e envia o segmento com a bandeira ACK.

Se recebe a bandeira ACK ao mesmo tempo (que acontece geralmente), comuta ao estado estabelecido.

Se o cliente receber um segmento com o sinalizador RST, ele para de tentar se conectar.

Se o cliente não receber uma resposta dentro de 10 segundos, ele repete o processo de conexão novamente.

O 3o passo. Se o server no estado SYN-recebido recebe um segmento com a bandeira ACK, comuta ao estado estabelecido.

Caso contrário, após um tempo limite, ele fecha o soquete e muda para o estado fechado.

O processo é chamado de "handshake Triplo" porque, apesar de ser possível estabelecer uma conexão usando 4 segmentos (SYN para o servidor, ACK para o cliente, SYN para o cliente, ACK para o servidor), na prática, três segmentos são usados para economizar tempo.

Ao trocar dados, o receptor usa o número de sequência contido nos segmentos recebidos para restaurar sua ordem original. O receptor então notifica a parte transmissora do número de sequência para o qual recebeu com sucesso os dados, incluindo-o no campo "Número de confirmação". Todos os dados recebidos relacionados ao intervalo de sequências confirmadas são ignorados. Se o segmento recebido contiver um número de sequência maior que o esperado, os dados do segmento serão armazenados em buffer, mas o número da sequência confirmada não será alterado. Se um segmento relacionado ao número de sequência esperado for recebido posteriormente, a ordem dos dados será restaurada automaticamente com base nos números de sequência nos segmentos.

A fim evitar uma situação onde o lado transmissor envie dados mais intensivamente do que o receptor possa O processar, o TCP contém ferramentas do controle de fluxo. O campo "janela" é usado para isso. Nos segmentos enviados do receptor para o lado transmissor, o tamanho atual do buffer receptor é indicado no campo window. O lado transmissor mantém o tamanho da janela e não envia mais dados do que o especificado pelo receptor. Se o receptor

especificou um tamanho de janela de zero, a seguir a transmissão de dados na direção deste nó não ocorre até que o receptor relate um tamanho de janela maior.

Também pode haver situações em que o aplicativo transmissor pode solicitar explicitamente que os dados sejam enviados para uma determinada sequência para o aplicativo receptor sem armazená-los em buffer. O sinalizador PSH é usado para isso. Se a bandeira PSH é detectada no segmento recebido, a implementação TCP retorna todos os dados atualmente protegidos ao aplicativo de recepção. "Pushing" pode ser usado, por exemplo, em aplicações interativas. Em terminais de rede, não faz sentido esperar pela entrada do Usuário depois que ele terminar de digitar um comando. Portanto, o último segmento que contém o comando deve conter o sinalizador PSH para que o aplicativo no lado receptor possa começar a executá-lo.

Término da conexão.

A conclusão da conexão pode ser considerada em três etapas:

1) enviando os sinalizadores FIN e ACK para o servidor do cliente para encerrar a conexão;

2) o servidor envia aos sinalizadores de resposta do cliente ACK, FIN, que a conexão está fechada;

3) após receber esses sinalizadores, o cliente fecha a conexão e envia um ACK para o servidor confirmando que a conexão está fechada.

Petukhov Oleg, advogado de Direito Internacional e proteção de dados pessoais, especialista em informação segurança, proteção de informações e dados pessoais.

Canal do Telegram: https://t.me/protecaodaInformacao

Grupo em Telegram: https://t.me/protecaodaInformacao1

Site: https://legascom.ru

Correio eletrónico: online@legascom.ru

#segurançadaInformação #Segurançadainformação

 

Protocollo di trasporto TCP.

 

Il protocollo di trasporto è di gran lunga il mezzo più comune per trasportare il traffico. Prima di tutto, considera il meccanismo d'azione del protocollo.

A differenza del protocollo UDP, che può iniziare immediatamente la trasmissione dei pacchetti, di cui parleremo tra poco, TCP stabilisce le connessioni che devono essere create prima della trasmissione dei dati. La connessione TCP può essere suddivisa in tre fasi:

installazione della connessione;

trasmissione dei dati;

termina la connessione.

Una sessione TCP può avere uno dei seguenti stati:

CLOSED è lo stato iniziale del nodo. Effettivamente fittizio;

LISTEN-il server attende le richieste di connessione dal client;

SYN-SENT-il client ha inviato una richiesta al server per stabilire una connessione e attende una risposta;

SYN-RECEIVED-il server ha ricevuto una richiesta di connessione, ha inviato una richiesta di risposta e attende la conferma;

ESTABLISHED - connessione stabilita, trasferimento dati in corso;

FIN-WAIT-1-una delle parti (chiamiamola nodo-1) Termina la connessione inviando un segmento con il flag FIN;

CLOSE-WAIT-l'altra parte (nodo-2) entra in questo stato inviando a sua volta un segmento ACK e continua la trasmissione unidirezionale;

FIN-WAIT-2-node-1 riceve ACK, continua a leggere e attende di ricevere il segmento con il flag FIN;

LAST - ACK-Node-2 Termina la trasmissione e invia il segmento con il flag FIN;

TIME-WAIT-Node-1 ha ricevuto un segmento con il flag FIN, ha inviato un segmento con il flag ACK e attende 2 * MSL secondi prima di chiudere definitivamente la connessione;

CLOSING-entrambe le parti hanno avviato contemporaneamente la chiusura della connessione: dopo aver inviato il segmento con il flag FIN, Il Nodo-1 riceve anche il segmento FIN, invia L'ACK ed è in attesa del segmento ACK (conferma alla Sua richiesta di disconnessione).

Stabilire una connessione.

L'inizio di una sessione TCP è noto come "handshake a tre vie". Si compone di tre passaggi.

1 ° passo. Il client che intende stabilire la connessione invia al server un segmento con un numero di sequenza e un flag SYN.

Il server riceve il segmento, ricorda il numero di sequenza e tenta di creare un socket (buffer e strutture di controllo della memoria) per servire il nuovo client.

In caso di successo, il server invia al client un segmento con il numero di sequenza e i flag SYN e ACK e passa allo stato SYN-RECEIVED.

In caso di errore, il server invia al client un segmento con il flag RST.

2 ° passo. Se il client riceve un segmento con il flag SYN, ricorda il numero di sequenza e invia il segmento con il flag ACK.

Se riceve contemporaneamente anche il flag ACK (cosa che di solito accade), passa allo stato ESTABLISHED.

Se il client riceve un segmento con il flag RST, smette di provare a connettersi.

Se il client non riceve risposta entro 10 Secondi, ripete nuovamente il processo di connessione.

3 ° passo. Se il server nello stato SYN-RECEIVED riceve un segmento con il flag ACK, passa allo stato ESTABLISHED.

Altrimenti, dopo un timeout, chiude il socket e passa allo stato CLOSED.

Il processo è chiamato "Triple handshake", poiché sebbene sia possibile stabilire una connessione utilizzando 4 segmenti (SYN lato server, ACK lato client, SYN lato client, ACK lato server), in pratica vengono utilizzati tre segmenti per risparmiare tempo.

Il ricevitore, durante lo scambio di dati, utilizza il numero di sequenza contenuto nei segmenti ricevuti per ripristinare il loro ordine originale. Il ricevitore notifica quindi alla parte trasmittente il numero di sequenza fino al quale ha ricevuto correttamente i dati, incluso nel campo «Numero di conferma». Tutti i dati ottenuti relativi all'intervallo di sequenze confermate vengono ignorati. Se il segmento risultante contiene un numero di sequenza maggiore del previsto, i dati del segmento vengono bufferizzati, ma il numero della sequenza confermata non viene modificato. Se successivamente viene adottato un segmento relativo al numero di sequenza previsto, l'ordine dei dati verrà automaticamente ripristinato in base ai numeri di sequenza nei segmenti.

Per evitare una situazione in cui la parte trasmittente invia i dati più intensamente di quanto il ricevitore possa elaborarli, TCP contiene controlli di flusso. A tale scopo viene utilizzato il campo «finestra". Nei segmenti inviati dal ricevitore al lato trasmittente, il campo finestra indica la dimensione corrente del buffer ricevente. Il lato trasmittente mantiene le dimensioni della finestra e invia dati non più di quanto specificato dal ricevitore. Se il ricevitore

specificato una dimensione della finestra pari a zero, il trasferimento dei dati nella direzione di questo nodo non avviene fino a quando il ricevitore non segnala una dimensione della finestra più grande.

Sono possibili anche situazioni in cui l'applicazione trasmittente può richiedere esplicitamente di spingere i dati in una sequenza all'applicazione ricevente senza bufferizzarli. Per questo viene utilizzato il flag PSH. Se viene rilevato un flag PSH nel segmento ricevuto, L'implementazione TCP restituisce tutti i dati attualmente memorizzati nel buffer all'applicazione ricevente. "Push" può essere utilizzato, ad esempio, in applicazioni interattive. Nei terminali di rete, non ha senso aspettarsi l'input dell'utente dopo aver finito di digitare il comando. Pertanto, l'ultimo segmento contenente il comando deve contenere il flag PSH in modo che l'applicazione sul lato ricevente possa iniziare a eseguirlo.

Termina la connessione.

Il completamento della connessione può essere considerato in tre fasi:

1) inviare al server dal client FIN e ACK bandiere per terminare la connessione;

2) il server invia al client i flag di risposta ACK, FIN che la connessione è chiusa;

3) Dopo aver ricevuto questi flag, il client chiude la connessione e in conferma invia al server ACK che la connessione è stata chiusa.

Oleg Petukhov, avvocato nel campo del diritto internazionale e della protezione dei dati personali, specialista nel campo dell'informazione sicurezza, protezione delle informazioni e dei dati personali.

Canale Telegram: https://t.me/protezionedelleinformazioni

Gruppo in telegramma: https://t.me/protezionedelleinformazioni1

Sito: https://legascom.ru

E-mail: online@legascom.ru

#protezionedelleInformazioni #sicurezzadelleinformazioni