Протокол надежной доставки сообщений TCP. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Протокол надежной доставки сообщений TCP.



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

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

Алгоритм установки соединения:

1) Для установки соединения сторона инициатор посылает запрос к протоколу на открытие порта для передачи

2) После открытия порта протокол TCP на стороне процесса инициатора посылает запрос процессу с которым требуется установить соединение

3) Протокол на приемной стороне открывает порт для приема данных и возвращает квитанцию подтверждающую прием запросов

4) Протокол на приемной стороне так же открывает порт для передачи и передает запрос противоположной стороне для включения полнодуплексного режима.

5) Сторона инициатор открывает порт для приема, в свою очередь свою квитанцию, в результате соединение считается установленным и происходит обмен в рамках заданного соединения.,

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

Существует 2 варианта организации процесса обмена положительными и отрицательными квитанциями:

1) С простоями

2) С организацией окна

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

Во втором случае источнику разрешается передать некоторое количество кадров в непрерывном режиме, с максимально возможным для источника Тейнбе. Количество кадров, которое разрешается передать, таким образом, называется размером окна. Если передается в окне n-кадров то при отправке кадра с номером один разрешается передать еще n-1 кадров до получения квитанций на 1 кадр. Если за это время квитанция на первый кадр так и не пришла то процесс передачи приостанавливается и через определенный этап первый кадр считается утерянным или утеряна квитанция на него. …. Достаточно регулярно, то скорость обмена достигает максимально возможной для данного канала и принятого протокола. Данный алгоритм также называют – алгоритм скользящего окна.

Выбор тайм-аута.

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

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 110; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.183.89 (0.005 с.)