Protokół sterowania transmisją: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Vebace (dyskusja | edycje)
Wycofano ostatnie 2 zmiany treści (wprowadzone przez 83.14.12.2) i przywrócono wersję 37817821 autorstwa Cczeslaww zbędny wyraz
Linia 2:
 
== Charakterystyka protokołu ==
TCP jest protokołem szalonym działającym w trybie klient-serwer. Serwer oczekuje na nawiązanie połączenia na określonym porcie. Klient inicjuje połączenie do serwera.
 
W przeciwieństwie do [[UDP]], TCP gwarantuje wyższym warstwom komunikacyjnym dostarczenie wszystkich pakietów w całości, z zachowaniem kolejności i bez duplikatów. Zapewnia to wiarygodne połączenie kosztem większego narzutu w postaci nagłówka i większej liczby przesyłanych pakietów. Chociaż protokół definiuje pakiet TCP, to z punktu widzenia wyższej warstwy oprogramowania, dane płynące połączeniem TCP należy traktować jako ciąg [[oktet (informatyka)|oktetów]]. W szczególności – jednemu wywołaniu funkcji [[Application Programming Interface|API]] (np. <code>send()</code>) nie musi odpowiadać wysłanie jednego pakietu. Dane z jednego wywołania mogą zostać podzielone na kilka pakietów lub odwrotnie – dane z kilku wywołań mogą zostać połączone i wysłane jako jeden pakiet (dzięki użyciu [[algorytm Nagle'a|algorytmu Nagle'a]]). Również funkcje odbierające dane (<code>recv()</code>) w praktyce odbierają nie konkretne pakiety, ale zawartość bufora stosu TCP/IP, wypełnianego sukcesywnie danymi z przychodzących pakietów.