Версия 2.4
  • история версий
  • описание
     канал ALRM
     канал CTRL
     канал DEMO
     канал FILE
     канал LOG
     канал MYSQL
     канал RS232
     каналы SSL-TX/SSL-RX
     каналы TCP-TX/TCP-RX
     каналы UDP-TX/UDP-RX
  • лицензия (GPL): rus, eng
  • download
  • протокол DTP/DIA
    Версия 2.3
  • описания:
     dia
     dia_pro
     dia_file
  • dia-on-floppy (lite)
  • download (for win32 only)
  • лицензия:
     (LGPL) rus, eng
     коммерческая
    ENGLISH
  • short description
  • thermo on Palm OS
  • IETF internet draft of DTP/DIA

    Каналы TCP-TX/TCP-RX
    ver.2.4, build 0030, 2003-05-04

    Описание

    Возможны две схемы передачи информации по TCP/IP.
    Источник
    (ретранслятор)
     Сборщик
    TCP-TX TCP-RX
    listen
     
    accept
    send

    <-- <-- <--
     
    --> --> -->

    connect
     
    recv
    Источник
    (ретранслятор)
     Сборщик
    TCP-TX TCP-RX

    connect
     
    send

    --> --> -->
     
    --> --> -->
    listen
     
    accept
    recv

    В первом случае источник привязывается к определенному TCP-порту, при этом он должен иметь IP-адрес доступный для всех сборщиков. Эта схема ориентирована на ИИС, в которых один источник передает данные нескольким сборщикам.

    Вторая схема требует, чтобы сборщик привязывался к определенному TCP-порту и имел доступный для всех источников IP-адрес. Такая схема ориентирована на ИИС, в которых один сборщик получает данные от нескольких источников.

    Та или иная схема выбирается при помощи ключей Listen или Connect.

    Следует отметить, что на функционирование каналов этого типа влияет значение ключа StrictConn из секции <General>. Когда этот ключ имеет ненулевое значение, после установки соединения источник обязательно посылает предложение идентификации, а если не получает корректный запрос устройства, то разрывает соединение. Более того, если сборщик после установки соединения не получает предложение идентификации, то он по своей инициативе разрывает соединение. Таким образом, возможна следующая ситуация: источник предоставляет данные только с одного устройства, а ключ StrictConn=0; в настройках сборщика указано ненулевое значение StrictConn; после установки соединения сборщик, не получив предложение идентификации, разрывает соединение. Чтобы избежать подобной ситуации, надо с обеих сторон либо определить, либо не определять ключ StrictConn.

    Для каналов этого типа существует несколько глобальных параметров, они задаются в секции <TCP defaults>:

    Ключ ReuseAddr
     Win32[+] Unix[+]
    Когда этот ключ присутствует, к сокетам каналов, у которых задан ключ Listen, применяется TCP-опция SO_REUSEADDR. Обычно сокет не может быть привязан к локальному адресу (TCP-порту), который уже используется. Тем не менее, любое соединение идентифицируется парой адресов: локальным и удаленным. Таким образом, существование двух (и более) сокетов с одинаковыми локальными адресами не является проблемой до тех пор, пока их удаленные адреса различаются. Опция SO_REUSEADDR позволяет использовать эту возможность. В некоторых случаях система не позволяет программе привязаться к только что освобожденному порту, пока не дождется подтверждения приема всех данных, передававшихся через соответствующий сокет. В таком случае можно использовать этот ключ.
    По умолчанию: опция не применяется.
    Ключ KeepAlive
     Win32[+] Unix[+]
    Когда этот ключ присутствует, к сокетам каналов применяется TCP-опция SO_KEEPALIVE. Использование этой опции позволяет посылать TCP-пакеты "keep-alive" при длительном отсутствии активности в TCP-соединении. Такие пакеты позволяют убедиться, что соединение еще существует. Период посылки таких пакетов определяется настройками операционной системы (порядка 1-3 часов). По умолчанию: опция не применяется.
    Ключ MaxBacklog
     Win32[+] Unix[+]
    Ключ определяет размер очереди запросов на соединение для сокетов каналов, у которых задан ключ Listen. Если программа не успевает выбирать запросы из этой очереди, новые запросы отвергаются (другая сторона получает "Connection refused").
    В Linux для ядра 2.2.x этот параметр задает очередь уже подтвержденных запросов, тогда как размер очереди запросов определяется в настройках операционной системы.
    По умолчанию: 5.
    Win32: Макс.значение: 5?
    Linux: Макс.значение: 128 (можно изменить в настройках системы).
    Ключ Socks5srv
     Win32[+] Unix[+]
    Ключ определяет имя SOCKS5 сервера. Имя задается в виде IP:port или domainname:port (в последнем случае IP-адрес определяется при инициализации модуля). Если порт не указан, подразумевается 1080. Использование SOCKS5 возможно (но не обязательно) только, если этот ключ определен.
    Ключ Socks5user
     Win32[+] Unix[+]
    Ключ определяет имя пользователя при аутентификации на SOCKS5 сервере.
    По умолчанию аутентификация не используется.
    Ключ Socks5pass
     Win32[+] Unix[+]
    Ключ определяет пароль при аутентификации на SOCKS5 сервере.
    По умолчанию аутентификация не используется.
    Параметры каналов:

    Ключи Listen и Connect взаимоисключающие. Приоритет имеет Listen (используется по умолчанию).

    Ключ Type
     Win32[+] Unix[+]
    Задает тип канала. Ключ обязателен. Для канала-источника (ретранслятора) надо указать TCP-TX, а для канала-сборщика - TCP-RX.
    Ключ Listen
     Win32[+] Unix[+]
    Программа привязывается к указанному порту и "слушает" его, ожидая соединения.
    По умолчанию для TCP-RX: 5015.
    По умолчанию для TCP-TX: 5014.
    Ключ Connect
     Win32[+] Unix[+]
    Программа устанавливает соединение по указанному адресу. Адрес задается в виде: IP:port или domainname:port.
    По умолчанию для TCP-RX: 127.0.0.1:5014.
    По умолчанию для TCP-TX: 127.0.0.1:5015.
    Ключ UseSocks5
     Win32[+] Unix[+]
    Когда этот ключ присутствует, для канала соединение устанавливается через SOCKS5 сервер. Имеет смысл только при наличии ключа "Connect" (но не "Listen"!). Ключ игнорируется, если в секции <TCP defaults> отсутствует адрес SOCKS5 сервера (ключ "Socks5srv").
    Ключ InitStr
     Win32[+] Unix[+]
    Сразу после установки соединения посылается заданная строка. Можно использовать для передачи логина/пароля:
        InitStr=\~user\rpassword\r
    По умолчанию: отсутствует.
    Специальные комбинации:
        \a символ с кодом 7 (bell);
        \n символ с кодом 10 (new line);
        \r символ с кодом 13 (carriage return);
        \t символ с кодом 9 (tab);
        \\ символ с кодом 92 (backslash);
        \~ перед посылкой очередного символа делается задержка 1 сек.