IBM® Informix® 12.10

Альтернативные способы установления соединений TCP/IP

В следующей теме рассматриваются некоторые способы, позволяющие обойти поиск портов и IP-адресов для соединений TCP/IP.

IP-адреса для соединений TCP/IP

При использовании соединений TCP/IP (как соединений TLI, так и соединений гнезд), вы можете указать в поле hostname фактический IP-адрес вместо имени хоста или алиаса, находящихся в файле hosts. В следующей примере показаны примеры IP-адресов и имен хостов из файла hosts.
#address       hostname  alias
555.12.12.12   smoke
98.555.43.21   odyssey
12.34.56.555   knight    sales
При использовании IP-адреса хоста knight из этой таблицы две приведенные ниже записи sqlhosts будут эквивалентными:
#dbservername    nettype       hostname      servicename      options
sales   ontlitcp   12.34.56.789   sales_ol   
#dbservername    nettype       hostname      servicename      options
sales   ontlitcp   knight         sales_ol   

При определенных обстоятельствах использование IP-адреса позволяет сократить время установления соединения. Однако, поскольку для компьютеров обычно известны имена хостов, в тех случаях, когда в поле имени хоста указан IP-адрес, будет труднее распознать компьютер, с которыми связана запись.

UNIX: IP-адрес можно найти в поле сетевого адреса в файле hosts, либо можно воспользоваться командой UNIX arp или ypmatch.
Windows: Windows можно сконфигурировать для использования любого из двух указанных ниже механизмов разрешения домена до IP-адреса:
  • Windows Internet Name Service
  • Сервер доменных имени (Domain Name Server - DNS)

Адресация с использованием символов подстановки для соединений TCP/IP

Адресацию с использованием символов подстановки в поле hostname файла hosts можно применять, если выполнены оба указанных ниже условия:
  • Вы используете соединения TCP/IP.
  • Компьютер, на котором находится сервер баз данных, использует несколько карт сетевого интерфейса.

Если вышеуказанные условия выполнены, вы можете указать звездочку (*) в качестве символа подстановки в поле hostname, используемого сервером баз данных. Если вы введете символ подстановки в поле hostname, сервер баз данных сможет принимать соединения на любом действительном IP-адресе своего хост-компьютера.

Каждый IP-адрес связан с уникальным именем хоста. Если компьютер использует несколько карт сетевого интерфейса (Network-Interface Card - NIC), как показано в следующей таблице, в файле hosts должна быть запись для каждой карты интерфейса. Например, файл hosts для компьютера texas с двумя картами сетевого интерфейса может содержать следующие записи:
#address       hostname   alias
123.45.67.81   texas1
123.45.67.82   texas2

Если клиентская прикладная программа и сервер баз данных совместно используют информацию файла sqlhosts, вы можете указать в поле hostname и символ подстановки, и имя хоста или IP-адрес (например, *texas1 или *123.45.67.81). Клиентская программа проигнорирует символ подстановки и будет использовать для установления соединения имя хоста (или IP-адрес), а сервер баз данных будет использовать символ подстановки для приема соединений с любого IP-адреса.

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

На следующем рисунке показан сервер баз данных на компьютере texas с двумя картами сетевого интерфейса. Два сайта клиентов используют для взаимодействия с сервером баз данных разные карты сетевого интерфейса.
Рис. 1. Использование нескольких карт сетевого интерфейса
Этот рисунок описан в тексте.
В следующем примере показана информация о соединениях для сервера баз данных texas_srvr.
#dbservername    nettype       hostname      servicename      options
texas_srvr      ontlitcp   *texas1         pd1_on
#dbservername    nettype       hostname      servicename      options
texas_srvr      ontlitcp   *123.45.67.81   pd1_on
#dbservername    nettype       hostname      servicename      options
texas_srvr      ontlitcp   *texas2         pd1_on
#dbservername    nettype       hostname      servicename      options
texas_srvr      ontlitcp   *123.45.67.82   pd1_on
#dbservername    nettype       hostname      servicename      options
texas_srvr      ontlitcp   *               pd1_on
Если информация о соединении соответствует любой из приведенных выше строк, сервер баз данных texas_srvr сможет принимать соединения клиентов на любой из сетевых карт. Сервер баз данных обнаружит символ подстановки в поле hostname и проигнорирует имя хоста, указанное явным образом.
Совет: Для ясности и удобства управления следует указывать имя хоста при использовании символа подстановки в поле имени хоста (то есть, следует указывать *хост, а не просто *).

Информация о соединениях, используемая клиентской программой, должна содержать явно указанное имя хоста или IP-адрес. Клиентские программы на хосте iowa могут использовать любое из следующих значений имени хоста: texas1, *texas1, 123.45.67.81 или *123.45.67.81. Если в поле hostname содержится символ подстановки (*), клиентская программа его проигнорирует.

Клиентская программа на хосте kansas может использовать любое из следующих значений имени хоста: texas2, *texas2, 123.45.67.82 или *123.45.67.82.

Номера портов для соединений TCP/IP

При использовании сетевого протокола TCP/IP в поле имени службы можно указывать фактический номер порта приема TCP.

Например, если в качестве номера порта сервера баз данных sales в файле services указано 1543, вы можете внести в файл sqlhosts следующую запись:
#dbservername    nettype       hostname      servicename      options
sales           ontlitcp   knight     1543

Использование фактического номера порта при определенных обстоятельствах позволяет сэкономить время при установлении соединения. Однако, как и в случае использования IP-адреса в поле hostname (имя хоста), использование фактического номера порта может усложнить управление информацией о соединениях.


Отправить отзыв | Обмен примерами | Устранение неисправностей

Публикации в формате PDF смотрите по адресу Publications for the IBM Informix 12.10 family of products (Публикации для семейства продуктов IBM Informix 12.10).
Замечания по выпуску, документации и/или различным платформам смотрите на странице Замечания по выпуску.
 отметка времени Дата выпуска: март 2013 г.