TCP-соединения для передачи данных
В этом разделе описаны TCP-соединения для передачи данных (текущий Transport Protocol (TP) [настройка / параметр ] = 1).
Реализация TCP в DS отличается от стандарта следующим:
Переподключение TCP. Если TCP-соединение между DS и узлом сети уже установлено и другой узел сети (с другим IP-адресом) пытается подключиться к порту данных DS, эта попытка отклоняется, поскольку DS поддерживает только одно соединение данных в каждый момент времени. Однако если второе подключение выполняется с того же IP-адреса, что и существующее TCP-соединение, DS «переключается» на новое соединение: он забывает первое и принимает второе. Такое поведение введено, чтобы DS не зависал из-за «повисшего» соединения. Рассмотрим сценарий: приложение на узле сети имеет открытое TCP-соединение с DS. Внезапно приложение аварийно завершается, и соединение остаётся «висящим», поскольку не было корректно закрыто. Когда приложение запускается снова, оно пытается заново установить TCP-соединение с DS. Если бы функции переподключения не было, DS счёл бы это попыткой открыть второе одновременное соединение данных и отклонил бы его. Благодаря переподключению DS определяет, что новая попытка исходит с того же IP-адреса, и переключается на новое соединение. Недостаток такого решения в том, что два (или более) приложения, обменивающиеся данными с DS с одного и того же узла, могут мешать друг другу: каждая новая попытка подключения вытесняет существующее соединение.
Повторные передачи TCP. Стандартная реализация протокола предусматривает «экспоненциальную задержку» повторных передач: каждая следующая попытка выполняется через всё более длинные интервалы. Такое поведение плохо подходит для систем реального времени. Для любой ситуации, требующей повторной передачи TCP-пакета, DS выполняет шесть попыток повторной передачи через равные интервалы. Эти интервалы задаются настройкой Retransmission Period (RP) с шагом 0,5 секунды. Значение этой настройки по умолчанию - 6 (3 секунды). Такой период повторной передачи по умолчанию хорошо работает в большинстве сетей. Увеличение значения может улучшить работу DS в сетях со значительными задержками отклика, например в сетях с сегментами GPRS.