Strona poprawnie działa
na przeglądarkach: Mozilla Firefox, Opera oraz Google Chrome
Linki:
Internet - lub bardziej ogólnie sieć TCP/IP - udostępnia warstwie aplikacji dwa odmienne protokoły warstwy transportowej. Jednym z nich jest protokół UDP (User Datagram Protocol), który korzystającej z niego aplikacji zapewnia zawodną usługę bezpołączeniową. Drugim protokołem jest protokół TCP (Transmission Control Protocol), który używającej go aplikacji oferuje niezawodną usługę zorientowaną na połączenie. Tworząc aplikację sieciową, jej projektant musi zdecydować się na zastosowanie jednego z tych dwóch protokołów transportowych. W celu uproszczenia terminologii, w przypadku odwoływania się do internetu pakiet warstwy transportowej będziemy określać mianem segmentu. Należy jednak wspomnieć, że w internetowej literaturze (na przykład dokumenty RFC) pakiet protokołu TCP warstwy transportowej też jest nazywany segmentem, natomiast pakiet protokołu UDP często nazywa się datagramem. Zdarza się też, że w tej samej literaturze termin datagram odnosi się do pakietu warstwy sieci!. Najbardziej fundamentalnym zadaniem protokołów TCP i UDP jest obejmowanie dwóch procesów uruchomionych na systemach końcowych zakresem obowiązywania usługi dostarczania protokołu IP. Zastosowanie usługi dostarczania nie tylko w przypadku dwóch hostów, ale też uaktywnionych na nich procesów jest określane mianem multipleksowania i demultipleksowania warstwy transportowej. Protokoły TCP i UDP zapewniają też kontrolę integralności przez uwzględnianie w nagłówkach segmentów pól detekcji błędów. Protokół TCP oferuje aplikacjom kilka dodatkowych usług. Pierwszą i najważniejszą z nich jest niezawodna usługa transferu danych. Korzystając z kontroli przepływu, numerów sekwencyjnych, powiadomień i zegarów (rozwiązania te zostaną dokładniej objaśnione w dalszej części rozdziału), protokół TCP zapewnia, że dane są poprawnie, a także w odpowiedniej kolejności dostarczane od procesu nadawczego do procesu odbiorczego. A zatem protokół TCP zamienia zawodną usługę protokołu IP dostarczającą dane między systemami końcowymi na niezawodną usługę transportu danych między procesami. Protokół TCP zapewnia też kontrolę przeciążenia. Kontrola przeciążenia jest w mniejszym stopniu usługą oferowaną aplikacji, a w większym usługą świadczoną w internecie w ogólnym zakresie. Ogólnie mówiąc, kontrola przeciążenia realizowana przez protokół TCP uniemożliwia każdemu połączeniu TCP przyblokowanie (przez generowanie nadmiernego ruchu sieciowego) łączy i przełączników znajdujących się między komunikującymi się hostami. Zasadniczo protokół TCP zezwala połączeniom TCP na trawersowanie przeciążonego łącza sieciowego, co ma na celu równomierne wykorzystywanie jego przepustowości. Trawersowanie polega na regulowaniu szybkości, z jaką strona nadawcza połączenia TCP umieszcza dane w sieci. Z kolei szybkość przesyłania danych przez protokół UDP nie jest kontrolowana. Aplikacja używająca protokołu UDP może transferować dane z dowolną żądaną szybkością przez dowolny okres.