Каналы TCP-TX/TCP-RX
ver.2.4, build 0030, 2003-05-04
Описание
Возможны две схемы передачи информации по TCP/IP.
|
|
В первом случае источник привязывается к определенному 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 сек.