Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Небольшие вопросы по XNET / 21 сообщений из 21, страница 1 из 1
28.09.2020, 16:18
    #40003520
ggreggory
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Приветствую знатоков и разработчиков!

У меня небольшие вопросы по XNET

WI-V3.0.6.33328 Firebird 3.0

1) В статье https://www.ibphoenix.com/files/ConnectionStrings_Fb3.pdf сказано, что Loopback подключение будет пытаться использовать XNET протокол. Для Windows пример такого подключения: 127.0.0.1:d:\databases\mydatabase.fdb. Будут ли попытки использовать XNET протокол, если строка подключения будет localhost:d:\databases\mydatabase.fdb ? Нет ли там каких-нибудь заморочек, с регистром, например, как такой вариант Localhost:d:\databases\mydatabase.fdb ?

2) Можно как-нибудь узнать, какой реальный провайдер у текущего соединения? Смотрю "SELECT mon$remote_protocol from mon$attachments". При подключении по 127.0.0.1 пишет TCPv4. Хотя судя по статье должен был быть XNET. Конфигурационный файл firebird.conf пробовал разный. Вначале дефоултный, строка Providers не трогалась, потом Providers = Loopback,Engine12,Remote. Всегда пишет TCPv4

3) Работает ли XNET на терминальном сервере ? Может у кого есть опыть использования XNET у RDP-клиентов (Windows server 2012 и выше) ?
...
Рейтинг: 0 / 0
28.09.2020, 16:27
    #40003527
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory,

не так там написано
"Where embedded is not available, a hostless connection could be established using the Loopback provider, in which case full login credentials would need to be present. On Windows, the provider will try to use XNET (see below) to make the local connection and, failing that, a localhost connection via TCP/IP or, on Windows, via WNET (see below). "

Например, если у меня сервер суперсервер, и есть уже сетевые коннекты к базе, то при запуске
gbak -b -g d:\data\db.fdb ...
embedded коннекта (как ожидалось) не будет, а будет как раз xnet, в порядке очереди перечисления протоколов.

127.0.0.1 - это tcp v4, а вот localhost: это уже может быть как tcp v4, так и v6.
И тут xnet никак не предполагается.

Хотите явно хнет - пишите xnet:\\ в строке коннекта. Не надо вот этих вот догадок.
...
Рейтинг: 0 / 0
28.09.2020, 16:46
    #40003540
ggreggory
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Мимопроходящий

28.09.2020 16:18, ggreggory пишет:
> XNET

и нахрена?


Насколько понял, XNET дает преимущества в работе. Нашёл информацию на форуме:

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1253484&msg=22080521

Там виден двукратный рост скорости. Если у вас другая информация - поделитесь, плиз!

kdv
ggreggory,

не так там написано
"Where embedded is not available, a hostless connection could be established using the Loopback provider, in which case full login credentials would need to be present. On Windows, the provider will try to use XNET (see below) to make the local connection and, failing that, a localhost connection via TCP/IP or, on Windows, via WNET (see below). "


Я имел ввиду этот абзац:

On Windows. the Loopback provider first tries to connect using the XNET protocol. If
that fails, its next attempt is with WNET, using the host name "\\." If that fails,
Loopback tries INET using "localhost" as the host name. Of course, on the other
platforms, INET is the only protocol attempted.

kdv

127.0.0.1 - это tcp v4, а вот localhost: это уже может быть как tcp v4, так и v6.
И тут xnet никак не предполагается.


Ок, хорошо, понял!

kdv

Хотите явно хнет - пишите xnet:\\ в строке коннекта. Не надо вот этих вот догадок.


Да, так работает.
...
Рейтинг: 0 / 0
28.09.2020, 17:06
    #40003557
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
28.09.2020 16:46, ggreggory пишет:
> Насколько понял, XNET дает преимущества в работе.

в какой?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.09.2020, 17:12
    #40003561
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory
Насколько понял, XNET дает преимущества в работе. Нашёл информацию на форуме:

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1253484&msg=22080521

Там виден двукратный рост скорости. Если у вас другая информация - поделитесь, плиз!
Ну так чти внимательнее, что именно там быстрее чего.
XNET никакого "преимущества в работе" не даёт.
...
Рейтинг: 0 / 0
28.09.2020, 18:08
    #40003600
ggreggory
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
WildSery
ggreggory
Насколько понял, XNET дает преимущества в работе. Нашёл информацию на форуме:

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1253484&msg=22080521

Там виден двукратный рост скорости. Если у вас другая информация - поделитесь, плиз!
Ну так чти внимательнее, что именно там быстрее чего.
XNET никакого "преимущества в работе" не даёт.


Ок, хорошо, спасибо за ваш опыт! Я на всякий случай решил простенький тест сделать. Пустая база данных c:\bases\test.fdb. Скрипт с двумя тестовыми процедурами:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE TABLE TEST (
    FLD  INTEGER
);

INSERT INTO TEST (FLD) VALUES (1);

set term ^;

create or alter procedure TEST_PROC_1
as
  declare variable i integer;
  declare variable tmp integer;
begin
  i = 0;
  while (i < 100000) do
  begin
    execute statement 'select first 1 fld from test' on external data source 'localhost:c:\bases\test.fdb'
      as user 'SYSDBA' password 'masterkey' 
      into :tmp;
    i = i + 1;
  end
end^

create or alter procedure TEST_PROC_2
as
  declare variable i integer;
  declare variable tmp integer;
begin
  i = 0;
  while (i < 100000) do
  begin
    execute statement 'select first 1 fld from test' on external data source 'xnet://c:\bases\test.fdb'
      as user 'SYSDBA' password 'masterkey' 
      into :tmp;
    i = i + 1;
  end
end^

Время выполнения

TEST_PROC_1 - 8s 625ms
TEST_PROC_2 - 7s 156ms

Преимущество есть, но не то, чтобы заметное.
...
Рейтинг: 0 / 0
28.09.2020, 18:12
    #40003602
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory
Я имел ввиду этот абзац:

On Windows. the Loopback provider
Добавлю, на всякий - тут речь идёт о Loopback provider который в Firebird, а не который в OS (Windows).
Loopback - это достаточно общий термин и употребляется не только как конкретная реализация виртуального сетевого адаптера.
...
Рейтинг: 0 / 0
28.09.2020, 18:13
    #40003603
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Мимопроходящий
28.09.2020 16:46, ggreggory пишет:
> Насколько понял, XNET дает преимущества в работе.

в какой?
В локальной, вестимо. Он гораздо быстрее чем INET.
...
Рейтинг: 0 / 0
28.09.2020, 18:14
    #40003604
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory
3) Работает ли XNET на терминальном сервере ?
Должен работать.
...
Рейтинг: 0 / 0
28.09.2020, 18:15
    #40003607
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory
2) Можно как-нибудь узнать, какой реальный провайдер у текущего соединения? Смотрю "SELECT mon$remote_protocol from mon$attachments". При подключении по 127.0.0.1 пишет TCPv4.
Правильно смотришь.
Ещё можно show version в isql использовать.
...
Рейтинг: 0 / 0
29.09.2020, 00:15
    #40003715
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggoryТам виден двукратный рост скорости. Если у вас другая информация - поделитесь, плиз!
у меня на сайте (ibase.ru) давно выложены тесты бэкапа и рестора, со сравнением протоколов. И там видно, что да, xnet быстрее локального tcp.
Другое дело, что сейчас (2 недели назад) был другой тест, и там xnet не сильно быстрее localhost. Скажем, процентов на 10.
С другой стороны, для приложений (а не бэкапа) это может быть существеннее.

А вот самое хреновое - это пихать приложения и СУБД на один сервер, а потом выяснять, xnet быстрее или localhost.
Конечно xnet, но только субд там загнется. В приличных домах терминальные сервера и субд разделяют по разным компам (или хотя бы виртуалкам).
...
Рейтинг: 0 / 0
29.09.2020, 09:01
    #40003764
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory
Преимущество есть, но не то, чтобы заметное.
Оно проявится только на вот таких синтетических тестах, ну или если реальная работа похожа на вот такую "долбёжку" малыми запросами.
...
Рейтинг: 0 / 0
29.09.2020, 09:51
    #40003794
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
ggreggory,

если приложение однопользовательское или пользователей мало, то можно использовать xnet. И да он быстрее inet на localhost.

Но надо учитывать, что:
1. xnet есть только на windows
2. если пользователей много, то сервер СУБД обычно отделяют от терминального сервера и xnet уже не катит


kdvу меня на сайте (ibase.ru) давно выложены тесты бэкапа и рестора, со сравнением протоколов. И там видно, что да, xnet быстрее локального tcp. Другое дело, что сейчас (2 недели назад) был другой тест, и там xnet не сильно быстрее localhost. Скажем, процентов на 10.

Если в тесте который проводился 2 недели назад речь о 4.0, так там batch api практически сравнивает производительность xnet:// и inet://localhost
В реальных приложениях batch api не будет использоваться часто, если оно конечно не занимается только импортом данных, или массовой вставкой с каких нибудь датчиков.
...
Рейтинг: 0 / 0
29.09.2020, 12:50
    #40003914
Tonal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Симонов Денис
Но надо учитывать, что:
1. xnet есть только на windows

Ещё
1.5. С xnet не работает шифрование базы.
...
Рейтинг: 0 / 0
29.09.2020, 12:53
    #40003917
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Симонов Дениспроводился 2 недели назад речь о 4.0, так там batch api
не, до 4.0 я не доехал, и понятно, что обычная работа приложений и batch api это разные вещи.
...
Рейтинг: 0 / 0
29.09.2020, 13:05
    #40003924
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Tonal1.5. С *xnet* не работает шифрование базы.

Если быть точным, то до некоторой версии по этому протоколу не передавался пакет запроса
на вызов сallback от keyholder, но во-первых, само шифрование вполне работало, во-вторых,
это уже пофикшено, в третьих, шифрование БД на локальном диске практического смысла не имеет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
30.09.2020, 15:47
    #40004295
ggreggory
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Спасибо за подробные комментарии!

kdv

...и там xnet не сильно быстрее localhost. Скажем, процентов на 10.
С другой стороны, для приложений (а не бэкапа) это может быть существеннее.


У меня примерно такие же цифры (в пределах 10%) получились на комплексных тестах в приложении и backup. Возможно, у XNET есть больший потенциал, но пока не получается его реализовать.

Из странностей. В какой-то момент сервер перестал подключаться по XNET. Функция isc_attach_database стала выдавать что-то вроде 'SQL error state =08006 Unable to complete network request to host "xnet://Global\FIREBIRD". Вылечилось только рестартом службы. Ничего подобного с подключением по TCP не наблюдал.
...
Рейтинг: 0 / 0
11.10.2020, 09:30
    #40007392
Tonal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
Dimitry Sibiryakov,

Dimitry Sibiryakov
во-вторых, это уже пофикшено

Не подскажишь где?
А то я смотрю, по CORE-6055 движения как не было, так и нет...


Dimitry Sibiryakov
в третьих, шифрование БД на локальном диске практического смысла не имеет.

Теоретически , любой зашифрованный файл может быть расшифрован.
Но, как всегда, рулит соотношение денег/сил/времени/ресурсов.
Так что практически мы имеем эпидемии вирусов шифровальщиков-вымогателей. :)
...
Рейтинг: 0 / 0
11.10.2020, 13:00
    #40007421
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
TonalНе подскажишь где?

http://tracker.firebirdsql.org/browse/CORE-5730

Tonal
практически мы имеем эпидемии вирусов шифровальщиков-вымогателей. :)

В отличии от твоего приложения эти вирусы не хранят ключ прямо в себе.
...
Рейтинг: 0 / 0
11.10.2020, 13:44
    #40007427
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET
TonalНо, как всегда, рулит соотношение денег/сил/времени/ресурсов.

И, кстати, в твоём случае ресурсов и времени надо совсем немного:
1) Внедрить в адресное пространство сервера свой код (любой плагин сойдёт, лучше всего
типа KeyHolder);
2) Вызвать из CryptManager-а функцию смены статуса БД. Всё остальное, включая расшифровку
БД, он сделает самостоятельно, используя ключ, полученный от твоего приложения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.10.2020, 17:51
    #40007800
Tonal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшие вопросы по XNET

Ежели посмотреть на историю, то CORE-6055 создан после закрытия CORE-5730 и как раз для версии 3.0.4 в которой он как бы уже пофикшен...
Да, на 3.0.5 тоже проверялось - не работает. :(


Dimitry Sibiryakov
В отличии от твоего приложения эти вирусы не хранят ключ прямо в себе.

Приложение не моё. И ключ "в себе" не хранит.


Dimitry Sibiryakov
И, кстати, в твоём случае ресурсов и времени надо совсем немного:

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

А вот в случае взлома - не всё так тривиально, потому как из многогиговой инсталляции с ведром екзешек и дллек, и кучей файлов данных нужно понять кто за что отвечает и куда кому что внедрять будем.
Ну и да, очевидные сценарии, типа твоего таки проверяются и имеют противодействие.
И некоторые не совсем очевидные тоже. :)
Всё это сильно увеличивает требования к взломщику.
Соответственно сразу же взлетает ценник, что практически убивает экономику.
По крайний мере, когда прикинули требуемую квалификацию и соответствующий ценник заказчик сказал, что его это устраивает. :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Небольшие вопросы по XNET / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]