CALCETINE

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un server SOCKS este un anumit tip de proxy care permite conexiuni TCP directe (și, din versiunea 5, pentru a transporta trafic UDP , precum și TCP ) între computere pe două rețele IP diferite în cazurile în care o rutare directă nu este disponibilă. Este scurt pentru „SOCKETS”.

Punctele forte ale protocolului SOCKS sunt simplitatea extremă a implementării (atât pe partea clientului, cât și pe partea serverului ) și independența completă față de protocolul care trebuie transmis prin intermediul acestuia.

Din punct de vedere istoric, SOCKS-urile au fost utilizate ca punct de contact între două rețele LAN sau între o rețea LAN și o rețea WAN (cum ar fi Internetul ). Recent, este mai frecvent întâlnirea rețelelor conectate direct la Internet sau conectate printr-un proxy HTTP .

Versiuni

În prezent, există trei versiuni ale protocolului SOCKS:

Logica de lucru

Logica de operare a unui server SOCKS este similară cu cea a unui proxy:

  • Clientul se conectează la serverul SOCKS în locul serverului de destinație și, după o fază de strângere de mână în care se negociază versiunea protocolului și posibila criptare, trimite o cerere în care specifică unii parametri, inclusiv adresa IP și portul de destinație;
    • dacă din orice motiv solicitarea nu este acceptată (lipsa autorizației, serviciul nu este disponibil, parametrii greșiți etc.) se trimite clientului un răspuns negativ și conexiunea este întreruptă;
    • dacă cererea este acceptată, serverul SOCKS încearcă să stabilească o conexiune cu serverul de destinație;
      • dacă conexiunea cu serverul nu poate fi stabilită, un răspuns negativ este trimis clientului și conexiunea este întreruptă;
      • dacă conexiunea cu serverul este stabilită cu succes, serverul SOCKS începe să transfere date bidirecțional între client și server; din acest moment, serverul SOCKS ignoră complet formatul și protocolul utilizat pentru transferul de date;
  • serviciul se încheie atunci când conexiunea este închisă fie de server, fie de client.

Protocolul v4 / 4a

Cerere

 + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + .... + ---- +
       | VN | CD | DSTPORT | DSTIP | USERID | NULL |
       + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- + .... + ---- +
octeți: 1 1 2 4 variabilă 1
  • VN: numărul versiunii. Trebuie să fie 0x04
  • CD: Operațiune. 0x01 pentru CONNECT, 0x02 pentru BIND
  • DSTPORT: port TCP al serverului de destinație în format de comandă de octeți de rețea
  • DSTIP: adresa IP a serverului de destinație în format de comandă de octeți de rețea
  • USERID: Șir care conține nume de utilizator, care nu este terminat cu 0x00, de dimensiuni arbitrare
  • NUL: 0x00

Răspuns

 + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- +
       | VN | CD | DSTPORT | DSTIP |
       + ---- + ---- + ---- + ---- + ---- + ---- + ---- + ---- +
octeți: 1 1 2 4
  • VN: numărul versiunii răspunsului. Ar trebui să fie 0x00
  • CD: Cod de răspuns. Poate lua următoarele valori:
    • 0x5A (90 dec): cerere acceptată
    • 0x5B (91 dec): cererea refuzată sau eșuată
    • 0x5C (92 dec): Cerere respinsă deoarece serverul SOCKS nu s-a putut conecta la serverul de identificare de pe client
    • 0x5D (93 dec): Cererea respinsă deoarece serverul de identificare și clientul au raportat diferite USERID-uri
  • DSTPORT: ignorat pentru CONNECT
  • DSTIP: ignorat pentru CONNECT
Telematică Portal telematic : accesați intrări Wikipedia care vorbesc despre rețele, telecomunicații și protocoale de rețea