Почему SSL_write в BoringSSL вызывает задержку в 2 секунды?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему SSL_write в BoringSSL вызывает задержку в 2 секунды?

Сообщение Anonymous »

Я разрабатываю приложение для Android 10 с использованием кода C, скомпилированного в библиотеку .so. Приложение отправляет данные с помощью SSL_write() BoringSSL в режиме блокировки.
SSL_write() завершается успешно, но Wireshark захватывает соответствующий пакет данных приложения с двухсекундной задержкой.
Это задержка возникает периодически, примерно 1 из 10–20 попыток.
Пример кода:
Вот фрагмент кода, который отправляет данные с использованием SSL.

Код: Выделить всё

// set to blocking before write
fcntl(g_ssl_sock_id, F_SETFL, flags & (~O_NONBLOCK));

// Since the original function contains other judgment logic such as TCP, the SSL_write code is extracted separately
static int ssl_write()
{
int send_len, len = total_len;;
unsigned char *cur_p = send_data;
print_timestamp("Before SSL_write");

while (len > 0)
{
send_len = (len > TCP_MAX_SSL_SEND_BUFFER_SIZE) ? TCP_MAX_SSL_SEND_BUFFER_SIZE : len;

ret = SSL_write((SSL *)ssl_handle.handle, cur_p, send_len);
print_timestamp("After SSL_write");

if (ret != send_len)
{
LOG("SslSend data error: %d, exp: %d\n", ret, send_len);
memset(send_data, 0, total_len);
if (dyn_allocate)
{
uai_free(send_data);
}
return (g_err_code = UAI_ERROR);
}

len -= send_len;
cur_p += send_len;
}

memset(send_data, 0, total_len);
if (dyn_allocate)
{
uai_free(send_data);
}
return (g_err_code = UAI_OK);
}
Другие настройки:

Код: Выделить всё

//setsockopt TCP_NODELAY to disable nagle algorithm but still not work.

Информация журнала:
[info_callback]: Состояние SSL: SSLv3 записывает клиентский привет A
[print_timestamp]:BBB ssl time=[2024-10-16 11:14:00.909600], перед SSL_write
[print_timestamp]:BBB ssl time=[2024-10-16 11:14:00.909912], После SSL_write
Einfo_callback]:SSL alert] : close notify
введите здесь описание изображения
Кто-нибудь сталкивался с подобной проблемой или знает, что может быть причиной этого? Буду признателен за любые идеи или предложения по дальнейшему устранению этой неполадки. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... cond-delay
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»