Wiki source code of 22. TCP noturības taimeris

Last modified by Valdis Vītoliņš on 2018/01/15 21:44

Show last authors
1 = 22. TCP noturības taimeris =
2
3 == 22.01 Ievads ==
4
5 Esam redzējuši, ka TCP protokolā datu saņēmējs kontrolē plūsmu, nosakot datu apjomu, ko tas vēlas saņemt no sūtītāja - loga izmēru. Kas notiek tad, kad loga izmērs kļūst 0? Tas aptur datu sūtīšanu, kamēr loga izmērs atkal kļūst pozitīvs.
6
7 Mēs redzējām šo scenāriju {{velocity filter="none"}}{{html clean="false" wiki="true"}}#picref("f_20_3.gif", "20.3. attēlā"){{/html}}{{/velocity}}. Kad sūtītājs saņēma 9.segmentu atverot logu, kas bija aizvērts ar 8.segmentu, tas tūlīt sāka sūtīt datus. TCP ir jātiek galā ar situāciju, kad apstiprinājums, kurš atver logu (9.segments) pazūd. Apstiprinājumi šajā protokolā netiek droši pārvadīti - t.i. TCP principā nesūta apstiprinājumus apstiprinājumiem, tas sūta apstiprinājumus tikai segmentiem, kuri satur datus.
8
9 Ja apstiprinājums ir pazudis, var gadīties, ka abas puses gaidīs viena uz otru: saņēmējs gaidīs datus (jo tas deva sūtītājam nenulles logu) un sūtītājs gaidīs loga izmēra labojumu, kas ļautu viņam sūtīt. Lai novērstu šāda veida strupceļu, sūtītājs izmanto noturības taimeri, kas ļauj periodiski atgādināt saņēmējam un lūdz noskaidrot, vai logs nav ticis palielināts. Šie sūtītāja radītie segmenti ir saukti //logu proves//. Šajā nodaļā izpētīsim šīs logu proves un noturības taimeri. Apskatīsim arī //muļķīgo logu sindromu//, kas saistīts ar noturības taimeri.