5. Транспортный протокол tcp в стеке протоколов tcp/ip
•Эти протоколы берут свое начало от одной из первых территориальных сетей ARPANET.
•Они получили широкое распространение благодаря реализации в ОС Unix и в сети Internet и в настоящее время оформлены в виде стандартов RFC (Requests For Comments) организацией IETF (Internet Engineering Task Force).
•TCP/IP - пятиуровневые протоколы, но основными среди них, давшими название всей совокупности, являются протоколы сетевого (IP - Internet Protocol) и транспортного (TCP - Transport Control Protocol) уровней.
Протокол TCP
•TCP - дуплексный транспортный протокол с установлением соединения.
•Его функции:
•упаковка и распаковка пакетов на концах транспортного соединения;
•установление виртуального канала путем обмена запросом и согласием на соединение;
•управление потоком - получатель при подтверждении правильности передачи сообщает размер окна, т.е. диапазон номеров пакетов, которые получатель готов принять;
•помещение срочных данных между специальными указателями, т.е. возможность управлять скоростью передачи.
•В TCP имеется программа-демон, которая постоянно готова к работе и при приходе запроса генерирует свою копию для обслуживания создаваемого соединения, а сама программа-родитель ждет новых вызовов.
Схема установления соединения в одноранговых сетях
•Инициатор соединения обращается к своей ОС, которая в ответ выдает номер протокольного порта и посылает сегмент получателю.
•Тот должен подтвердить получение запроса и послать свой сегмент-запрос на создание обратного соединения (так как соединение дуплексное).
•Инициатор должен подтвердить создание обратного соединения.
•Получается трехшаговая процедура (handshake) установления соединения.
•Во время этих обменов партнеры сообщают номера байтов в потоках данных, с которых начинаются сообщения.
•На противоположной стороне счетчики устанавливаются в состояние на единицу больше, чем и обеспечивается механизм синхронизации в дейтаграммной передаче, реализуемой на сетевом уровне.
•После установления соединения начинается обмен. При этом номера протокольных портов включаются в заголовок пакета.
•Каждое соединение (socket) получает свой идентификатор ISN (в TCP/IP не используется).
•Разъединение происходит в обратном порядке.
Схема установления соединения в сетях "клиент-сервер"
•Она аналогична (за исключением handshake) и включает посылку клиентом запроса на соединение (команда ACTIVE OPEN) с указанием адреса сервера, тайм-аута (времени жизни), уровня секретности.
•Можно сразу же поместить в запрос данные (тогда команда ACTIVE_OPEN_WITH_DATA). Если сервер готов к связи, он отвечает командой согласия (OPEN_RECEIVED), в которой назначает номер соединения.
•Далее командой SEND посылаются данные, а командой DELIVER подтверждается их получение.
•Разъединение выполняется обменом командами CLOSE и CLOSING.
Структура TCP-пакета (число битов)
•порт отправителя (16);
•порт получателя (16);
•код позиции в сообщении, т.е. порядковый номер первого байта в поле данных (32);
•номер следующего байта (32);
•управление (16);
•размер окна (16), т.е. число байт, которое можно послать до получения подтверждения; •контрольная сумма (16);
•дополнительные признаки, например срочность передачи (16);
•опции (24);
•заполнитель (8);
•данные.
Ограничения
•Нужно отметить, что каждый байт сообщения получает уникальный порядковый номер.
•Отсюда вытекает одно из ограничений на максимально допустимую в протоколе TCP/IP пропускную способность.
•Это ограничение составляет (232 байта) / (время жизни дейтаграммы), так как для конкретного соединения в сети не должно одновременно существовать более одного байта с одним и тем же номером.
•Еще более жесткое ограничение возникает из- за представления размера окна всего 16-ю битами.
•Это ограничение заключается в том, что за время Tv прохождения пакета от отправителя к получателю и обратно в сеть может быть направлено не более 216 информационных единиц конкретного сообщения.
•Поскольку обычно такой единицей является байт, то имеем (216*8 бит) / Tv .
•Так, для каналов со спутниками на геостационарных орбитах Tv составляет около 0,5 с и ограничение скорости будет около 1 Мбит/с.
•Заметно увеличить этот предел можно, если в качестве информационной единицы использовать С байт, С>1,
Повторная передача
•В TCP повторная передача пакета происходит, если в течение оговоренного интервала времени Тт (тайм-аута) не пришло положительное подтверждение.
•Следовательно, не нужно посылать отрицательные квитанции.
•Обычно Tm=2*t , где t - некоторая оценка времени прохождения пакета туда и обратно.
•Это время периодически корректируется по результату измерения Tv, а именно
•t:=0,9*t + 0,1*Tv.
•Попытки повторных передач пакета не могут продолжаться бесконечно, и при превышении интервала времени, устанавливаемого в пределах 0,5...2,0 мин, соединение разрывается.
Размер окна
•Размер окна регулируется следующим образом.
•Если сразу же после установления соединения выбрать завышенный размер окна, что означает разрешение посылки пакетов с высокой интенсивностью, то велика вероятность появления перегрузки определенных участков сети.
•Поэтому используется алгоритм так называемого медленного старта.
•Сначала посылается один пакет и после подтверждения его приема окно увеличивается на единицу, т.е. посылаются два пакета.
•Если вновь положительное
подтверждение (потерь пакетов нет), то посылаются уже четыре пакета и т.д.
•Скорость растет, пока пакеты проходят успешно.
•При потере пакета или при приходе от протокола управления сигнала о перегрузке размер окна уменьшается и далее опять возобновляется процедура линейного роста размера окна.
•Медленный старт снижает
информационную скорость, особенно при пересылке коротких пакетов, поэтому стараются применять те или иные приемы его улучшения.
- 1. Основные определения
- 1600...2000 Гц, а также автоматическое предварительное согласование способов модуляции в вызывающем и вызывном модемах. В протоколе v34.Bis скорости могут достигать 33,6 кбит/с.
- 5,725...5,85 ГГц пока лицензирования не требует.
- 400...512 Или 820...960 мГц, ширина радиоканала 25...200 кГц.
- 2. Энтропия
- 5. Асинхронное и синхронное кодирование
- 6. Манчестерское кодирование
- 7. Способы контроля правильности передачи данных
- 8. Код Хемминга
- 9. Циклические коды
- 11. Алгоритмы сжатия
- 2. Протоколы лвс
- 4. Аппаратные средства лвс
- 3. Сеть Fast Ethernet
- 1. Транспортные и сетевые
- 2. Управление потоками данных в сетях
- 3. Мостовые соединения
- 4. Маршрутизация
- 5. Транспортный протокол tcp в стеке протоколов tcp/ip
- 6. Коммутационное оборудование
- 7. Сетевой протокол ip в стеке протоколов tcp/ip
- 8. Другие протоколы в стеке
- 10. Протоколы управления в стеке
- 11. Протоколы spx/ipx
- 12. Сети передачи данных с коммутацией пакетов х.25
- 13. Сети Frame Relay (fr)
- 14. Причины появления сетей atm
- 15. Сетевое коммуникационное оборудование (по состоянию на конец 1997 г.)
- 18. Функции и характеристики сетевых операционных систем (ос)
- 19. Информационная безопасность
- 20. Распределенные вычисления
- 21. Технологии распределенных вычислений
- 22. Распределенные базы данных
- 23. Рекомендации по проектированию корпоративных сетей
- 1. Структура территориальных сетей
- 4. Электронная почта
- 5. Файловый обмен
- 9. Телеконференции и "доски объявлений"
- 10. Видеоконференции
- 11. Стандарты конференц-связи
- 12. Доступ к распределенным базам данных
- 13. Информационная система
- 14. Информационная система www
- 15. Язык html
- 16. Языки и средства создания Web-приложений
- 17. Разделяемые виртуальные миры (Sharing Virtual Worlds)
- 18. Примеры
- 19. Способы доступа к Internet