15 21. TCP töökindel andmeedastus TCP (transpordikihi tasemel) tagab töökindla andmeedastuse mitte-töökindla IP (võrgukihi tasemel) teenuse peale. TCP muretseb selle eest, et vastuvõtja buffris poleks segmendid vigased, dubleerimata, oleks õiges järjekooras jne. TCP töökindel andmeedastus töötab üldjuhul järgnevalt: Transpordikiht, saab rakenduskihilt andmeid ning TCP kapseldab andmed segmentideks ja annab siis segmendid omakorda edasi võrgukihile, kust võtab IP üle. Kui taimer juba ei jookse ja on mõni ilma ACK-ita segment, siis TCP paneb taimeri tööle. Kui tuleb timeout, siis saadetakse see segment uuesti, mis põhjustas timeout-i. Kui saadakse ACK kätte, siis vaadatakse selle ACK-i väljaväärtust. Kui see väljaväärtus on suurem kui viimane ilma ACK-ita
1 olema. Kui see segment ka tuleb kohale (TIME_WAIT), siis saadab klient ka omapoolse lõpetamismärguande, et ühendus on lõpetatud. 21. TCP töökindel andmeedastus TCP (transpordikihi tasemel) tagab töökindla andmeedastuse mitte-töökindla IP (võrgukihi tasemel) teenuse peale. TCP muretseb selle eest, et vastuvõtja buffris poleks segmendid vigased, dubleerimata, oleks õiges järjekooras jne. TCP töökindel andmeedastus töötab üldjuhul järgnevalt: Transpordikiht, saab rakenduskihilt andmeid ning TCP kapseldab andmed segmentideks ja annab siis segmendid omakorda edasi võrgukihile, kust võtab IP üle. Kui taimer juba ei jookse ja on mõni ilma ACK-ita segment, siis TCP paneb taimeri tööle. Kui tuleb timeout, siis saadetakse see segment uuesti, mis põhjustas timeout-i. Kui saadakse ACK kätte, siis vaadatakse selle ACK-i väljaväärtust. Kui see väljaväärtus on suurem kui viimane ilma ACK-ita (unacknowledged) segment, siis sellest võib TCP välja lugeda,
- kordamist käivitavad 2 sündmust: timeout, kviitungite duplikaadid TCP (transpordikihi tasemel) tagab töökindla andmeedastuse mitte-töökindla IP (võrgukihi tasemel) teenuse peale. TCP muretseb selle eest, et vastuvõtja puhvris poleks segmendid vigased, dubleerimata, oleks õiges järjekorras jne. TCP töökindel andmeedastus töötab üldjuhul järgnevalt: Transpordikiht, saab rakenduskihilt andmeid ning TCP kapseldab andmed segmentideks ja annab siis segmendid omakorda edasi võrgukihile, kust võtab IP üle. Kui taimer juba ei jookse ja on mõni ilma ACK-ita segment, siis TCP paneb taimeri tööle. Kui tuleb timeout, siis saadetakse see segment uuesti, mis põhjustas timeout-i. Kui saadakse ACK kätte, siis vaadatakse selle ACK-i väljaväärtust. Kui
põhjustab olekumuutuse ja sellega on seotud erinevad tegevused. Kui tingimus saabub, siis süsteem läheb ühest olekust teise ja sellega seoses tehakse midagi. (valgusfoori näide) Rdt 1.0 : Oletame, et meil on tegemist väge hea andmeedastuskanaliga, kus mingeid häireid ega vigu ei teki. Saatja saadab andmeid ja vastuvõtja võtab vastu ja mingeid probleeme ei teki. Lõplike automaatide mudeli peal kui vaadata olukorda, kus bitid ei moodu ega paketid ei lähe kaduma: kui ülevalt rakenduskihilt tulles käivitatakse rdt_send koos andmetega, siis transpordikiht formeerib paketi (paneb andmed paketi sisse, paketipäise paneb juurde) ja saadab udt_send-iga minema. Vastuvõtja pool saab kätte andmed ja käivitatakse protsetuur rdt_rcv, mis peab tagama töökindla andmeedastuse. Kuna meil on tegemist ideaalse kanaliga, siis vigu ei ole ja midagi kontrollida ei ole vaja. Eraldatakse paketist andmeosa ja deliver data-ga anname need rakendusele kätte.