Locked History Actions

TCP connection

Žodis angliškai:

TCP connection

Santrumpa:

TCP connection

Žodis lietuviškai:

TCP susijungimas

Apibrėžimas:

  • TCP suteikia paslaugas, kurios yra orientuotos į duomenų siuntimą paketais. Tam, kad egzistuotų ryšys, reikalingos 3 fazės. Tai yra: ryšio sukūrimas, duomenų perdavimas ir ryšio nutraukimas. Tam, kad sukurti ryšį, naudojamas procesas, vadinamas „three-way handshake“, kurio metu keičiamasi 3 TCP segmentais. Iš pradžių, prieš klientui prisijungiant į serverį, pastarasis turi atverti port‘ą tam, kad jis būtų atviras prisijungimams. Kai tai įvykdoma, klientas gali inicijuoti aktyvų ryšį. Jis sukuriamas siunčiant SYN (sinchronizacija) komandą į serverį taip sukurdamas atsitiktinį kintamajį (x), kuris nurodo siunčiamų segmentų eilės tvarką. Serveris klientui atsako išsiųsdamas komandą SYN+ACK (sinchronizacija ir priėmimas), kuri savo ruožtu priima tą kintamajį ir jį padidina vienetu (x+1). Tuo tarpu serveris sukuria antrą atsitiktinį kintamąjį (y), kuris aprašo paketų siuntimo eilės tvarką. Priemęs serverio užklausą, klientas jam išsiunčia komandą ACK (priėmimas), kurią sudaro segmentų eilės numeris (x+1), bei paketų eilės numeris (y+1). Šioms komandoms įvykus, klientas su serveriu turi tiesioginį ryšį, kuriuo gali bendrauti ir keistis duomenimis. Pirmas ir antras punktai inicijuoja ryšį į vieną pusę, o antrasis ir trečiasis – į antrą pusę. Taip sukuriamas pilnai dvipusis ryšys.

Atėjus laikui, kai duomenys jau būna persiųsti, ryšį reikia nutraukti. Tam naudojamas „four-way handshake“ procesas. Klientas siunčia FIN (baigti) užklausą į serverį sukurdamas kintamąjį (x). Serveris užklausą priima ir išsiunčia klientui patvirtinimą ACK prieš tai buvusį kintamąjį padidindamas vienetu (x+1). Tuomet serveris atskirai siunčia (FIN+ACK) užklausą klientui nurodydamas kintamajį x+1, bei išsiųsdamas naują kintamąjį (y). Klientui gavus šią užklausą, jis patvirtina ryšio užbaigimą serveriui išsiųsdamas ACK kitamąjį x+1 bei padidindamas naują kintamąjį vienetu (y+1). Serveriui priemus šias komandas, ryšys tampa uždaras. Verta pabrėžti, jog ne visada ryšys yra nutraukiamas abipusiškai. Jį galima laikyti pusiau atviru, kuomet viena pusė ryšį nutraukia, tačiau kita – ne, taip leidžiant siuntėjui siųsti duomenis, tačiau gavėjas juos tik priima neišsiųsdamas duomenų siuntėjui.