русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сегменты TCP


Дата добавления: 2013-12-23; просмотров: 987; Нарушение авторских прав


Тема 3. Каким образом TCP обеспечивает надежную и быструю доставку.

Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом.

В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP, не ожидая заполнения буфера до уровня размера сегмента, немедленно передает указанные данные в сеть. О таких данных говорят, что они передаются вне потока - out of band.

Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет.

Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров (MTU) всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети.

Несложная формула помогает понять, что при таком подходе достигается наилучшее соотношение между полезными данными и служебной информацией, то есть достигается минимальный уровень накладных расходов на передачу. Пусть требуется передать полезную информацию объема V байтов, размер TCP пакета равен V_TCP, размер IP пакета равен V_IP, длина TCP заголовка равна Z_TCP, а длина заголовка IP пакета равна Z_IP. Тогда суммарный объем передаваемых данных составит V+Z_TCP*(V/V_TCP)+Z_IP*((V+Z_TCP*(V/V_TCP))/V_IP) байтов. То есть потребуется передать V байтов полезных данных, V/V_TCP заголовков уровня TCP, каждый из которых занимает Z_TCP байтов. Затем, поскольку IP протоколу необходимо передать все TCP пакеты, то есть V+Z_TCP*(V/V_TCP) байтов, то он сформирует (V+Z_TCP*(V/V_TCP))/V_IP пакетов длиной Z_IP байтов. Минимальный объем служебных данных получается, если на один TCP заголовок приходится ровно один IP заголовок. В противном случае, либо формируются лишние TCP заголовки (если размер TCP пакета меньше размера области данных IP пакета), либо формируются лишние IP заголовки (если TCP пакет не укладывается в IP пакет и его надо посылать при помощи двух и более IP пакетов).





<== предыдущая лекция | следующая лекция ==>
Структура стека TCP/IP. Краткая характеристика протоколов | Порты и установление TCP-соединений


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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