- •Вопросы "Сети"
- •Физическая структуризация сети. Повторитель, концентратор
- •Логическая структуризация сети. Мост, свитч, маршрутизатор
- •Рсод. Классификация по степени однородности
- •Рсод. Классификация по архитектурным особенностям
- •Рсод. Логическая структура
- •Рсод. Физическая структура
- •Модель osi. Физический уровень
- •Модель osi. Сетевой уровень
- •Модель osi. Транспортный уровень
- •Модель osi. Сеансовый уровень
- •Модель osi. Канальный уровень
- •Стек ipx/spx
- •Стек NetBios/smb
- •Различия локальных и глобальных сетей
- •Архитектура сетей tcp/ip
- •Инкапсуляция протокольных блоков в tcp/ip стеке
- •Ip протокол
- •Адресация в сетях ip
- •Разбиение ip сети на подсети
- •Ip маршрутизация
- •Протокол arp
- •Протокол icmp
- •Протокол udp
- •Протокол tcp
- •Адаптационные механизмы протокола tcp
- •Фаза установления соединения tcp
- •Фаза передачи данных tcp
- •Фаза ликвидации соединения tcp
- •Линии связи.
- •Характеристики каналов связи. Полоса пропускания
- •Характеристики каналов связи. Затухание
- •Характеристики каналов связи. Шумы
- •Характеристики каналов связи. Пропускная способность
- •Характеристики каналов связи. Перекрестные наводки
- •Коаксиальный кабель
- •Оптоволоконный кабель
- •Витая пара
- •Беспроводные каналы связи
- •Самосинхронизирующиеся коды
- •Коды без самосинхронизации
- •Логическое кодирование. Избыточные коды
- •Логическое кодирование. Скрэмблирование
- •Коды b8zs и hdb3
- •Методы передачи данных канального уровня
Фаза передачи данных tcp
Пусть в момент t0 ТСР-модуль хоста В объявил величину своего окна равной 2048 байт и номер следующего ожидаемого байта 2000. Такой размер окна позволяет хосту А отправить без подтверждения 2 Кбайта данных, однако в его выходном буфере имеется лишь 1024 байта данных. Хост А отправляет эти данные нумеруя байты начиная с 2000. Одновременно, он объявляет величину своего окна равной 1024 байта и подтверждает, что номер ожидаемого первого байта от хоста Б должен быть равен 1. Хост Б задерживает выдачу подтверждения на прибывший сегмент данных, полагая, что у него появятся данные для отправки хосту А, вместе с которыми он отправит и подтверждение. Тем временем, в момент t2 модуль ТСР хоста А снова получил от своего приложения 1024 байт данных и передал их хосту Б. После этого величина окна отправки на хосте А стала равной нулю и дальнейшая отправка им данных до получения подтверждения от хоста Б оказывается невозможной. В момент t3 модуль ТСР хоста Б получил 128 байт данных для отправки; вместе с ними он отправляет подтверждение получения от хоста А двух сегментов данных, указывая Ack_no=4048. К этому моменту в буферной памяти модуля ТСР хоста Б оказывается свободными лишь 512 байт, поэтому он объявляет величину своего окна приема равной 512. Когда хост А получит этот сегмент, он установит величину окна отсылки равной 512 байт и, несмотря на то, что в момент t4 в его буфере имеется 2048 байт данных, он сможет отослать только 512 байт и не перегрузит буфер хоста Б.
Фаза ликвидации соединения tcp
Протокол ТСР реализует процедуру поэтапной ликвидации соединения, предполагающую независимое его закрытие в обоих направлениях. Необходимость в закрытии соединения возникает, когда приложение сообщает своему модулю TCP об отсутствии у него данных для отправки. ТСР модуль завершает передачу данных, находящихся в его буфере, ожидает получения подтверждения об их успешном приеме и отправляет приемному модулю сегмент с установленным флагом FIN. Получив этот сегмент, приемный модуль информирует свое приложение о завершении поступления данных от передающего приложения, но продолжает отсылать данные (если они есть) в противоположном направлении. Получив подтверждение на отправленные данные, модуль ТСР отправляется сегмент FIN в противоположном направлении и, после получения на него подтверждения ACK, соединение считается ликвидированным.
Хост А инициализирует процедуру разрыва соединения, отправляя сегмент с флагом FIN. Модуль ТСР хоста Б подтверждает прием этого сегмента и передает извещение о запросе на закрытие соединения своему приложению. Одновременно, располагая данными для хоста А, модуль ТСР хоста Б отправляет сегмент со 150 байтами данных хосту А, и получает подтверждение их приема. Получив от своего приложения подтверждение разрыва соединения протокольный модуль хоста Б отправляет встречный сегмент FIN и получает на него подтверждение. Модуль TCP хоста А переходит в состояние ожидания и запускает таймер TIME_WAIT с начальным значением задержки равным удвоенному максимальному времени жизни сегмента. В этот период единственным сегментом, который может прийти на хост А, является повторный сегмент FIN от хоста Б (если соответствующий сегмент ACK от хоста А был утерян). Если такой сегмент приходит, то хост А повторно отсылает сегмент АСК и вновь перезапускает таймер TIME_WAIT. При достижении этим таймером значения нуль, хост А ликвидирует соединение и удаляет запись о нем из таблицы соединений.
