Hogyan működik a TCP?
Címfelbontás:
- Ha egy kliens alkalmazás adatokat akar küldeni egy másik alkalmazásnak, az első lépés a célszerver IP-címének beszerzése. Ez az Address Resolution Protocol (ARP) révén érhető el.
TCP-kapcsolat létrehozása (háromirányú kézfogás):
- A kapcsolat létrehozása során a TCP háromirányú kézfogási folyamatot követ.
1. A kliens SYN (Synchronize) csomagot küld a szervernek. Ez a csomag tartalmazza a kezdeti sorszámot, amelyet az ügyfél az adatszegmenseihez fog használni.
2. A szerver egy SYN-ACK (Synchronize-Acknowledgement) csomaggal válaszol. Ez nyugtázza az ügyfél SYN-jét, és tartalmazza a szerver kezdeti sorszámát is.
3. A kliens egy ACK (Acknowledgement) csomag küldésével nyugtázza a szerver válaszát.
Adattovábbítás és nyugtázás:
- A TCP-kapcsolat létrejöttét követően a kliens és a szerver megkezdheti az adatcserét.
- A TCP megbízható adatátvitelt biztosít azáltal, hogy az adatokat megfelelő méretű szegmensekre bontja, és minden szegmenshez sorszámot rendel.
- A vevő minden fogadott adatszegmensre egy nyugtázási (ACK) csomagot küld vissza a feladónak. A küldő puffert tart fenn a nyugtázatlan adatokból, és mindaddig folytatja a további szegmensek küldését, amíg az összeset vissza nem veszi.
- Ha a nyugtázás nem érkezik meg egy megadott időkorláton belül, a küldő újraküldi a szegmenst. Ez a mechanizmus segít az adatok megbízható szállításában.
Áramlásvezérlés (Csúszóablak protokoll):
- Annak megakadályozására, hogy a küldő túlterhelje a vevőt, a TCP egy folyamatvezérlésnek nevezett mechanizmust alkalmaz.
- Csúszóablak protokollt használ, amely meghatározza, hogy egy adott időpontban mennyi adat maximálisan nyugtázható. Ez megakadályozza a puffer túlcsordulását a vevő oldalán.
Dorlódáscsökkentés (lassú indítás és torlódás elkerülése):
- A TCP torlódás-ellenőrző mechanizmusokat valósít meg, hogy az átviteli sebességét a rendelkezésre álló hálózati erőforrásokhoz igazítsa.
1. Lassú indítás:Ez megakadályozza, hogy a küldő hirtelen torlódást okozzon a hálózatban. Kis mennyiségű adat elküldésével kezdődik, majd fokozatosan növeli az átviteli sebességet mindaddig, amíg a nyugtázás megérkezik.
2. Torlódás elkerülése:Amint a küldő eléri a hálózat kapacitását, belép a torlódás elkerülési fázisába. Ebben a fázisban az átviteli sebesség növekedését szabályozzák a hálózat túlterhelésének elkerülése érdekében.
Kapcsolat megszakítása (négyirányú kézfogás):
- Amikor az adatcsere befejeződött, a TCP-kapcsolat négyirányú kézfogási folyamattal megszakad.
1. A kliens egy FIN (Finish) csomagot küld a szervernek.
2. A szerver nyugtázza a FIN-t, és jelzi, hogy több adata van küldeni egy FIN-ACK csomaggal.
3. A kliens egy ACK csomaggal nyugtázza a szerver FIN-ACK-jét.
4. A szerver végső ACK-t küld a kliensnek, és mindkét vége lezárja a kapcsolatot.
A kapcsolat során a TCP megbízható és ellenőrzött kommunikációt biztosít a kliens és a szerver között az adatszegmensek, a nyugtázások, az áramlásvezérlés és a torlódások vezérlésével. Ez lehetővé teszi az alkalmazások számára, hogy hatékonyan és megbízhatóan cseréljenek adatot a hálózaton keresztül.