Я кодирую программирование сервер-клиент на C с использованием API сокетов, где я пытаюсь отправить управляющую информацию клиенту для использования другого TCP-соединения.Всякий раз, когда сервер создал новый сокет (TCP), я хочу, чтобы он уведомил клиента об использовании нового сокета для дальнейшей связи. В настоящее время я думал об отправке UDP-пакета клиенту, который будет уведомлен.Как только клиент получает пакет, он отправляет ACK обратно на сервер и одновременно переключается на другое TCP-соединение.Я хочу знать, лучше ли передавать управляющие данные через сеть, кроме использования UDP, так как это ненадежно. Txx
Я хотел бы уточнить, чего я пытаюсь достичь.Я собираюсь измерить параметры, такие как пропускная способность, задержка, окно приема и т. Д., В качестве метрики для TCP-соединения Ipv4 и IPv6.Исходя из наблюдаемой производительности, я буду переключаться между двумя протоколами, которые будут обеспечивать лучшую производительность. Как только будет принято решение о переключении, я должен уведомить партнера (может быть клиент или сервер в зависимости от типа полосы пропускания, которую я измеряю, загрузка, загрузка),Я начинаю с соединения IPv4 и одновременно открываю другое соединение - IPv6 для измерения пропускной способности и задержки.
Если соединение IPv6 обеспечивает лучшую производительность, я должен сказать клиенту переключиться на IPv6.В этом случае оба соединения открыты для периодического мониторинга полосы пропускания, чтобы принять решение о переключении.Итак, у меня есть два вопроса по этому аспекту.1. Это хорошая идея, чтобы сохранить два соединения одновременно. Я могу создать другое соединение только тогда, когда мне нужно измерить метрику, так как путь между двумя машинами вряд ли изменится. Если да, я могу передать управляющую информацию, используядругое TCP-соединение, чтобы сообщить клиенту о необходимости переключения.Таким образом, я также могу измерить пропускную способность и уведомить клиента
. Не очень хорошая идея, что два имеют два TCP-соединения, я могу использовать UDP для отправки управляющей информации.Я избегаю посылать контрольную информацию о соединении, используемом для передачи фактических данных, так как это потребует дополнительных затрат.Мой код будет работать как промежуточное программное обеспечение для передачи данных, где приложение будет вызывать мои функции / макросы для передачи данных, а внутренний код позаботится об измерении пропускной способности и принятии решения о переключении.хочу добиться.Спасибо за ваш отзыв заранее