Механізми забезпечення достовірності
Технологія VoIP >> Розділ 4. Протоколи мережі Інтернет
[ << 4.7.2 Встановлення TCP-з'єднання і передача даних ] [ 4.7.4 Механізм управління потоком даних >> ]
4.7.3 Механізми забезпечення достовірності
Протокол TCP вміє працювати з пошкодженими, втраченими, дубльованими або надійшли з порушенням порядку проходження пакетами. Це досягається завдяки механізму присвоєння кожному переданому пакету порядкового номера і механізму перевірки отримання пакетів.
Коли протокол TCP передає сегмент даних, копія цих даних міститься в чергу повтору передачі, і запускається таймер очікування підтвердження. Коли система одержує підтвердження (сегмент TCP, що містить керуючий прапор АСК), що цей сегмент даних отриманий, вона видаляє його з черги. Сегмент підтвердження отримання містить номер отриманого сегменту, на підставі якого і відбувається контроль доставки даних адресату. Якщо підтвердження не надійшло до спрацьовування таймера, сегмент відправляється ще раз. Повідомлення про отримання сегмента даних ще не означає, що він був доставлений кінцевому користувачеві. Воно тільки означає, що модуль TCP виконав покладені на нього функції.
При передачі інформації кожному байту даних присвоюється порядковий номер, тому, в якій би послідовності ці байти досягали точки призначення, вони завжди будуть зібрані в початковій послідовності. Порядковий номер першого байта даних у переданому сегменті називається порядковим номером сегмента. Нумерація проводиться «з голови складу», тобто від заголовка пакету. TCP-пакет містить також «підтверджує номер» (acknowledgment number), який представляє собою номер наступного очікуваного пакета. Іншими словами, підтверджує номер означає: «до цих пір я все отримав». Механізм з використанням «підтверджує номера» виключає дублювання пакетів при повторній відправці не доставлених даних.
Крім визначення порядку проходження інформаційних пакетів, «порядковий номер» грає важливу роль у механізмі синхронізації з'єднання і в контролі втрачених пакетів при розривах з'єднання.
Варто сказати кілька слів про механізм, що запобігає поява в мережі пакетів з однаковими номерами. Вони можуть з'явитися, наприклад, при встановленні і швидкому скиданні з'єднання або при скиданні з'єднання і його швидкому відновленні, тобто коли номер зіпсованого пакета може бути відразу використаний новим пакетом. Механізм запобігання подібних ситуацій заснований на генеруванні початкового числа послідовності пакетів, а оскільки лічильник циклічний, то все одно, з якого місця починати відлік.
Так, при встановленні нового з'єднання генерується 32-бітове число ISN (Initial Sequence Number). Генератор може використовувати 32 молодших розряду машинного таймера, який змінюється кожні 4 мікросекунди (повний цикл - 4,55 години). Це число і служить відліком нумератора пакетів. Крім того, кожна дейтаграмма в мережі має обмежений час життя MSL - Maximum Life Time, яке значно менше періоду генератора. Таким чином, у мережі гарантується неможливість появи пакетів з однаковими номерами.
Пошкоджені пакети відсіваються механізмом перевірки контрольної суми, яка міститься в кожному переданому пакеті.
[ << 4.7.2 Встановлення TCP-з'єднання і передача даних ] [ 4.7.4 Механізм управління потоком даних >> ]
--Козінцев Олексій 36 гр. 05:49, 20 листопада 2010 (EET)