Strângere de mână (IT)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - "Strângere de mână" se referă aici. Dacă sunteți în căutarea altor semnificații, consultați Strângere de mână (matematică) .

În informatică strângerea de mână (literal „strângere de mână”) este procesul prin care două computere , utilizând software sau hardware , negociază și stabilesc reguli comune, și anume viteza , compresia , criptarea și protocoalele de control al erorilor etc.

Înainte de a începe conexiunea reală între două mașini, se creează acest tip de conexiune care constă în transmiterea pachetelor pentru ajustarea parametrilor conexiunii.

Sunetul produs de modem la conectarea la internet se numește strângere de mână .

Strângerea de mână poate negocia parametri acceptabili pentru echipamente și sisteme la ambele capete ale canalului de comunicații, inclusiv rata de transfer a informațiilor, alfabetul de codificare, paritate, procedura de întrerupere și alte capacități de protocol sau hardware. Strângerea de mână este o tehnică de comunicare între două entități. Cu toate acestea, în cadrul RFC-urilor TCP / IP, termenul „strângere de mână” este mai frecvent utilizat pentru a se referi la strângerea de mână în trei direcții TCP. De exemplu, termenul „strângere de mână” nu apare în RFC-urile care acoperă FTP sau SMTP. O excepție este Transport Layer Security, TLS, setup, FTP [1] . În locul termenului „strângere de mână”, FTP [2] înlocuiește termenul „conversație” pentru transmiterea comenzilor [3] [4] .

Un protocol simplu de strângere de mână ar putea implica doar destinatarul care trimite un mesaj care înseamnă „Am primit ultimul dvs. mesaj și sunt gata să-mi trimit altul”. Un protocol mai complex de strângere de mână ar putea permite expeditorului să întrebe destinatarul dacă este gata să primească sau dacă acesta va răspunde cu o confirmare negativă care înseamnă „Nu am primit corect ultimul mesaj, trimiteți-l din nou” (de exemplu, dacă datele au fost corupte pe parcurs) [5] .

Strângerea mâinilor facilitează conectarea sistemelor sau echipamentelor relativ eterogene pe un canal de comunicație, fără a fi nevoie de intervenția umană pentru a seta parametrii.

Exemplu

Strângere de mână TCP cu trei căi

Exemplu
Exemplu de strângere de mână în trei direcții

Stabilirea unei conexiuni TCP normale necesită trei pași separați:

  1. Prima gazdă (Alice) îi trimite celei de-a doua gazde (Bob) un mesaj de „sincronizare” (SYN) cu numărul său de ordine, pe care Bob îl primește.
  2. Bob răspunde cu un mesaj de confirmare de sincronizare (SYN-ACK) cu numărul său de ordine și numărul de confirmare, pe care Alice le primește.
  3. Alice răspunde cu un mesaj de confirmare (ACK) cu un număr de confirmare, pe care Bob îl primește și nu trebuie să răspundă.
În această configurație, mesajele de sincronizare acționează ca solicitări de servicii de la un server la altul, în timp ce mesajele de confirmare revin la serverul solicitant pentru a-i informa că mesajul a fost primit.

Motivul pentru care clientul și serverul nu folosesc un număr de secvență predefinit, cum ar fi 0 pentru a stabili conexiunea, este să se protejeze împotriva a două încarnări ale aceleiași conexiuni reutilizând același număr de ordine prea devreme, ceea ce înseamnă că un segment dintr-o încarnare precedentă a unui conexiunea ar putea interfera cu o încarnare ulterioară a conexiunii.

SMTP

Simple Mail Transfer Protocol (SMTP) este standardul cheie de internet pentru transmiterea e-mail-ului. Include handshaking pentru a negocia autentificarea, criptarea și dimensiunea maximă a mesajului.

Strângere de mână TLS

Când este inițiată o conexiune de securitate a stratului de transport (SSL sau TLS), înregistrarea încapsulează un protocol de „control”: protocolul de strângere de mână pentru mesagerie (tip de conținut 22). Acest protocol este utilizat pentru a schimba toate informațiile solicitate de ambele părți pentru ca TLS să facă schimb de date reale ale aplicației. Acesta definește formatarea mesajelor sau mesajelor care conțin aceste informații și ordinea schimbului acestora. Acestea pot varia în funcție de solicitările clientului și serverului, ceea ce înseamnă că există mai multe modalități posibile de a configura conexiunea. Acest schimb inițial are ca rezultat o conexiune TLS reușită (ambele părți sunt gata să transfere datele aplicației cu TLS) sau un mesaj de avertizare (așa cum se specifică mai jos).

Protocolul este utilizat pentru a negocia atributele sigure ale unei sesiuni [6] .

WPA2 wireless

Standardul WPA2 pentru wireless utilizează o strângere de mână în patru direcții definită în IEEE 802.11i-2004.

Modem de acces la distanță

Un exemplu clasic de strângere de mână este cel al modemurilor dial-up, care negociază în mod obișnuit parametrii de comunicare pentru o perioadă scurtă de timp când se stabilește pentru prima dată o conexiune și apoi utilizează acei parametri acolo pentru a oferi un transfer optim de informații pe canalul de intrare. capacitate. Zgomotele „țipătoare” (care este de fapt un sunet care schimbă tonul de 100 de ori pe secundă) produse de unele modemuri cu ieșire difuzoare imediat după stabilirea unei conexiuni sunt de fapt sunetele modemurilor de la ambele capete angajate într-o procedură de strângere a mâinii; după finalizarea procedurii, difuzorul poate fi dezactivat, în funcție de setările sistemului de operare sau ale aplicației care controlează modemul.

„Handshaking hardware” în serie

Acest termen folosit frecvent descrie utilizarea semnalelor RTS și CTS printr-o interconectare serială. Cu toate acestea, acest lucru nu este pe deplin corect; nu este o formă adevărată de strângere de mână și este cel mai bine descris ca control al debitului.

În sistemele de telecomunicații și microprocesoare

În sistemele de telecomunicații și microprocesoare , termenul handshaking are următoarele semnificații:

Protocolul de transmitere a strângerii de mână paralel , utilizat în arhitecturile master-slave , este o variantă a protocolului stroboscopic . Spre deosebire de acesta din urmă, există două linii de control :

  • linia REQ , adică cerere , care este transmisă de dispozitivul master atunci când solicită informații de la sclav ;
  • linia ACK , adică confirmare , care este transmisă în schimb de către sclav atunci când informațiile solicitate sunt plasate pe magistrala de date.

Un ciclu de strângere de mână, deci funcționează astfel: comandantul afirmă REQ pentru a solicita informații unui sclav . Văzând afirmarea liniei REQ , sclavul procesează cererea primită și, de îndată ce procesul se încheie, afirmă linia ACK și, în acest fel, masterul știe că datele de pe magistrală sunt valide și o pot preleva. În același timp, maestrul dezactivează REQ și apoi sclavul eliberează controlul magistralei.

Notă

  1. ^ (RO) P. Ford-Hutchinson, Securizarea FTP cu TLS , pe tools.ietf.org. Adus la 4 februarie 2021 .
  2. ^ (RO) Paul Hethmon, Extensii la FTP , pe tools.ietf.org. Adus la 4 februarie 2021 .
  3. ^ TCP RFC 793 , 2581
  4. ^ SMTP RFC 821 , 5321, 2821, 1869,6531, 2822
  5. ^ strângere de mână , la TheFreeDictionary's Encyclopedia .
  6. ^ Șablon: Citați IETF

Bibliografie

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT