Dezvoltarea de aplicatii Java Client/Server cu TCP

Abstract: TCP (Transmission Control Protocol) este un protocol connection-based care permite un flow solid de informatii intre doua calculatoare. Ofera si un canal point-to-point pentru aplicatiile care necesita un flux de date care sa nu sufere modificari. Limbajul de programare Java permite, prin intermediul java.net, un API potrivit pentru dezvoltarea aplicatiilor client/server care folosesc acest protocol pentru a comunica.

Feb 17, 2020 116
Abstract: TCP (Transmission Control Protocol) este un protocol connection-based care permite un flow solid de informatii intre doua calculatoare. Ofera si un canal point-to-point pentru aplicatiile care necesita un flux de date care sa nu sufere modificari. Limbajul de programare Java permite, prin intermediul java.net, un API potrivit pentru dezvoltarea aplicatiilor client/server care folosesc acest protocol pentru a comunica.


  1. Principiile TCP protocol


Protocolul TCP necesita stabilirea unei sesiuni intre client si server. O sesiune, la baza, este un mecanism prin care obtinem niste date.

TCP se comporta asemanator unei discutii la telefon, in varianta un pic mai old-school.

  • Ridicam receptorul
  • Asteptam tonul
  • Formam numarul
  • Telefonul suna
  • Ridicam telefonul
  • Spunem buna
  • Incepem conversatia
  • Repetam daca nu am inteles ceva


Un three-way handshake (sau TCP handshake) este o metoda folosita intr-o retea TCP/IP pentru a crea o conexiune intre un local host/client si server. Este o metoda in 3 pasi care necesita ca atat clientul cat si serverul sa schimbe pachete SYN si ACK (acknowledgment) inainte ca sa inceapa schimbul de date.

TCP handshake.png


Un TCP 3-way handshake funtioneaza astfel:

  • Un client node trimite un SYN data packet pe o retea IP catre un server de pe aceeasi retea sau una externa. Obiectivul acestui pachet este sa interogheze/deduca daca serverul este disponibil pentru conexiuni noi.
  • Serverul tinta trebuie sa aiba porturi deschise care sa accepte si sa initieze noi conexiuni. Cand serverul primeste SYN packet de la client node, raspunde si returneaza un confirmare – ACK packet sau SYN/ACK packet.
  • Client node primeste SYN/ACK de la server si raspunde cu un ACK packet.


Four-way disconnect este metoda folosita intr-o retea TCP/IP network pentru a inchide conexiunea intre client si server.

TCP 4-way disconnect.jpg

Asa functioneaza TCP 4-way disconnect:

  • Clientul trimite un FIN packet catre server si isi actualizeaza starea la FIN_WAIT_1
  • Serverul primeste cererea de inchidere de la client, raspunde cu ACK si trece in CLOSE_WAIT
  • Clientul primeste raspunsul de la server si trece la FIN_WAIT_2
  • Serverul este in CLOSE_WAIT si urmeaza FIN, care actualizeaza starea la LAST_ACK
  • Clientul primeste cererea de inchidere si raspunde cu ACK, care duce la TIME_WAIT state
  • Serverul a terminat si seteaza conexiunea la CLOSED
  • Clientul sta in TIME_WAIT pentru maxim 4 minute inate de a seta conexiunea la CLOSED

Vrei sa inveti mai multe despre aceasta tehnologie? Descopera cursurile noastre.

Catalin Tudose
Java and Web Technologies Expert

Daca iti place acest articol, distribuie-l si prietenilor tai!




Luxoft Warsaw - Warsaw Spire, plac Europejski 1, 00-844 Warszawa
Dimitrie Pompeiu nr 5-7 , building C, Et. 5, sect 2, Bucharest, 014459

Contact phone:

021 371 4858
Luxoft Poland Wroclaw - Silver Tower pl. Konstytucji 3-go Maja 3 50-048 Wroclaw
Aleja Generała Tadeusza Bora-Komorowskiego 25, Quattro Business Park Five, 31-476 Kraków, Poland

Contact phone:

+48 122110650
Success
Iti multumim.
Inregistrarea ta a fost trimisa.