Чтобы изменить параметры сетевого стека, заданные по умолчанию, нужно использовать функцию sysctl()
или sysctlbyname()
, объявленные в заголовочном файле sysroot-*-kos/include/sys/sysctl.h
из состава KasperskyOS SDK. Параметры, которые можно изменить, приведены в таблице ниже.
Настраиваемые параметры сетевого стека
Название параметра |
Описание параметра |
---|---|
|
Максимальное время жизни (англ. Time To Live, TTL) отправляемых IP-пакетов. Не влияет на протокол ICMP. |
|
Если имеет значение |
|
Значение MSS (в байтах), которое применяется, если только взаимодействующая сторона не сообщила это значение при открытии TCP-соединения, или не задействован режим "Path MTU Discovery" (RFC 1191). Также это значение MSS передается взаимодействующей стороне при открытии TCP-соединения. |
|
Минимальное значение MSS, в байтах. |
|
Если имеет значение |
|
Число повторных отправок проверочных сообщений (англ. Keep-Alive Probes, KA) без ответа, после выполнения которых TCP-соединение считается закрытым. Если имеет значение |
|
Время неактивности TCP-соединения, по истечении которого начинают отправляться KA. Задается в условных единицах, которые можно перевести в секунды, разделив на значение параметра |
|
Время между повторными отправками KA при отсутствии ответа. Задается в условных единицах, которые можно перевести в секунды, разделив на значение параметра |
|
Размер буфера для принимаемых по протоколу TCP данных, в байтах. |
|
Размер буфера для отправляемых по протоколу TCP данных, в байтах. |
|
Размер буфера для принимаемых по протоколу UDP данных, в байтах. |
|
Размер буфера для отправляемых по протоколу UDP данных, в байтах. |
Пример настройки MSS:
static const int mss_max = 1460;
static const int mss_min = 100;
static const char* mss_max_opt_name = "net.inet.tcp.mssdflt";
static const char* mss_min_opt_name = "net.inet.tcp.minmss";
int main(void)
{
...
if ((sysctlbyname(mss_max_opt_name, NULL, NULL, &mss_max, sizeof(mss_max)) != 0) ||
(sysctlbyname(mss_min_opt_name, NULL, NULL, &mss_min, sizeof(mss_min)) != 0))
{
ERROR(START, "Can't set tcp default maximum/minimum MSS value.");
return EXIT_FAILURE;
}
}
В начало