21. TCP noildze un atkārtota pārraide
21. TCP noildze un atkārtota pārraide
21.01 Ievads
TCP nodrošina drošu transporta slāni. Viens no mehānismiem, kā tiek nodrošināts drošums, ir katram galam apstiprināt datus, ko tas saņem no otra gala. Bet datu segmenti un arī paši apstiprinājumi var pazust. TCP ar to tiek galā, uzstādot noildzi, kad tas izsūta datus - ja apstiprinājums nepienāk pēc noildzes beigām, tas atkalraida datus. Kritisks elements jebkurai implementācijai ir noildzes un pārsūtīšanas stratēģija. Kā noteikt noildzes intervālu un cik bieži notiek pārsūtīšana?
Esam redzējuši divus pārsūtīšanas piemērus:
- ICMP "port unreachable" piemērā 6.5.nodaļā mēs redzējām, ka TFTP klientu, kurš lieto vienkāršu (un slikti strādājošu) noildzes un pārsūtīšanas stratēģiju: tas pieņem, ka 5 sekundes ir pietiekams laika posms un pārsūtīja ik pēc 5 sekundēm.
- ARP piemērā ar neeksistējošu hostu (4.5.nodaļa) redzējām, ka TCP centās izveidot konekciju, kur tā pārsūtīja SYN, izmantojot arvien garāku intervālu pirms katras atkārtotās pārraides. TCP katrai konekcijai uztur 4 dažādus taimerus:
- Atkalraides taimeri lieto, kad sagaida apstiprinājumu no otra gala. Šī nodaļa iztirzā šo taimeri, aplūkojot arī saistītos aspektus, piemēram, izvairīšanos no pārblīves.
- Noturības teimeris turpina sūtīt informāciju pat ja otrs gals aizver savu saņemšanas logu. Šis taimeris aprakstīts 22.nodaļā.
- Dzīves ilguma taimeris noskaidro, kurā brīdī otrs gals citādi nenoslogotai konekcijai nobrūk vai tiek pārstartēts.
- 2MSL taimeris mēra laiku, ko konekcija pavadījusi TIME_WAIT stāvoklī.
We described this state in Section 18.6.
Šajā nodaļā sākam ar vienkāršu TCP noildzes un pārsūtīšanas piemēru un tad pārejam uz lielāku piemēru, kas ļauj apskatīt visas TCP taimeru pārvaldības nianses. Aplūkosim kā tipiskas implementācijas mēra aprites laiku TCP segmentiem, un kā TCP izmanto šos mērījumus, lai novērtētu nākamā segmenta atkārtotas pārraides noildzi. Pēc tam apskatīsim TCP izvairīšanos no pārblīves - ko TCP dara, kad paketes tiek pazaudētas un aplūkosim piemēru kur tās tiek pazaudētas. Aplūkosim arī jaunākus ātras atkalraides un ātras atkopšanas algoritmus un redzēsim kā tie ļauj TCP konstatēt pazaudētās paketes ātrāk nekā sagaidot noildzes beigas.