У меня есть критически важное приложение для работы с данными в реальном времени, которое использует TCP-соединение между клиентом и сервером. В некоторых случаях соединение периодически обрывается (SocketException). Нет проблем — просто переподключитесь и двигайтесь дальше. Тем не менее, клиенты не в восторге от этих периодических пропаданий связи.
Я хотел бы знать, куда тыкать пальцем. Это клиент или сервер? Аппаратное или программное обеспечение? Это что-то о канале Ethernet? Конечным результатом будет отображение пользователю индикатора работоспособности соединения, чтобы можно было исследовать и исправить неверную ссылку.
Есть ли какие-либо показатели, которые я могу получить из TcpClient, Socket или чего-либо еще, что скажет мне о работоспособности соединения? Возможно, среднее время подтверждения, количество повторных попыток и т. д.?
Я особенно хочу знать о TCP-соединении, а не только об Ethernet-соединении в целом (ваше соединение с локальной сетью может быть отличным, но может возникнуть проблема с внешним сервером).
Конечно, я мог бы пропинговать удаленный хост, но я не думаю, что это даст мне ту статистику, которую я ищу. Во-первых, я могу пинговать маршрутизатор, если сервер прячется за NAT.