Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Особенности работы протокола TCP




Работа протокола TCP

Общие сведения

Transmission Control Protocol (TCP) — это один из основных протоколов, предназначенный для управления передачей данных в сетях и подсетях TCP/IP. Обеспечивает гарантированную доставку как одиночных сообщений, так и потоков данных, сборку фрагментов, квитирование, повторную передачу пакета и установку приоритетов.

Выполняет функции протокола транспортного уровня в стеке протоколов TCP/IP.


 

Используется в большинстве веб-ориентированных приложений, особенно в тех, где важно гарантировать доставку данных.

С помощью протокола TCP передача может происходить побайтно, но это не значит, что каждый байт будет передаваться как отдельное сообщение, т.к. TCP буферизирует данные и ожидает другие данные, которые можно объединить в пакет. Т.е. если программа побайтно пишет в сетевой канал, то это не значит, что каждый байт будет уходить как отдельный пакет. Время, в течение которого отсылаются подтверждения, выбирается динамически. Пока нет подтверждения на отправленные пакеты, новые пакеты продолжают отправляться до тех пор, пока общее количество неподтвержденных пакетов не превысит некоторый лимит.

 

14.2.2 Алгоритм «скользящего окна»

Окно TCP – это общий объем данных, которые могут быть отправлены и не подтверждены. Размер окна изменяется динамически прямо во время работы и зависит от условий сети.

Единицей подтверждения является байт. Пакеты могут быть любых размеров. Размер пакета может динамически изменяться во время обмена данными, подстраиваясь под пропускную способность сети.

Отправитель
Получатель

После соединения размер окна устанавливается максимальным. Он влияет на количество данных, которые могут быть переданы без посылки подтверждения.

Принцип «скользящего окна»: окно по мере работы TCP смещается в правую сторону: как только приходит квитанция, левая граница смещается вправо.

Задача: чтобы обеспечить надежность при передаче данных блоками, необходимы подтверждения. Пусть на каждый блок посылается подтверждение, что увеличивает трафик в 2 раза. Как решить данную проблему?

Решение: подтверждается не каждый блок данных. Вместо этого используется отправление одного подтверждения на несколько сегментов – подтверждается логически последний сегмент. Это интерпретируется как подтверждение всех остальных сегментов.

Соотношение между размером окна и характеристиками сети: если в сети большой трафик и низкая пропускная способность, то время доставки пакетов становится большим. В этом случае, для того чтобы оптимизировать работу сети, размер окна надо уменьшить. Это делается для того чтобы уменьшить количество информации, которая скапливается в буфере, на случай, если информация будет пропадать из-за ошибок сети, тогда чем меньше размер окна - тем лучше (в случае ошибок нужно меньше пересылать заново). В обратном случае нужно увеличить размер окна, чтобы не нагружать сеть пакетами подтверждения.

 

Размер окна рассчитывается динамически следующим образом: при передаче каждого пакета вычисляется время его оборота. Размер окна определяется как средневзвешенное значение для десяти последних пакетов. Пакетам назначаются веса – от одного до десяти. Наибольший вес у самого последнего пакета, наименьший – у первого. Если используется такая формула, то с течением времени в значении размера окна будет учитываться история и сглаживаться пики, а при изменении пропускной способности сети произойдет адаптация. При этом резкое уменьшение пропускной способности не сильно сбросит окно.

 

Частый вопрос на экзамене

Бывают случаи, когда отправитель передает данные, а получатель не успевает их принимать (для получения данных получатель должен прочитать их из буфера драйвера). Что происходит в этом случае?

В этом случае TCP-драйвер получателя отправляет пакет, который подтверждает последний принятый байт (флаг ACK), и устанавливая размер окна в 0. Размер окна 0 – это указание отправителю приостановить передачу данных. Получив такой пакет, отправитель приостанавливает передачу, а получатель продолжает посылать эти пакеты. Это называется "зондирование нулевым окном " (получатель зондирует отправителя), смысл зондирования – показать, что получатель "жив", соединение не разорвано, но пакеты в данный момент не могут быть приняты.

 




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 744; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.