Я использую TcpClient в C # для связи с сервером.
Когда я просматриваю первый запрос SYN в Wireshark, я вижу 12 байтов, задающих 6 опций TCP в следующем порядке:
-Максимальный размер сегмента
-NOP
Окно шкала
-NOP
-NOP
-SACK разрешено
TCP_Options <<< Скриншот захвата Wireshark </p>
Я использую конструктор по умолчанию для объекта TcpClient, передаваемого в функцию.
Я полагаю, что есть способ указать параметр, используя метод Socket.SetSocketOption (описан здесь) , однако я хочу удалить эти параметры, чтобы убедиться, что сервер не требует их установки соединения.
Можно ли удалить (или изменить) параметры, которые я вижу в Wireshark?
Вот небольшой пример того, как я использую TcpClient (создается с настройками по умолчанию):
public static IPStatus PingThenConnect(TcpClient tcpClient, IPEndPoint serverEndpoint)
{
IPStatus ipStatus = IPStatus.Unknown;
// Ping the given IP Address
ipStatus = Network.PingIP(serverEndpoint.Address);
if (ipStatus == IPStatus.Success)
{
// Connect TcpClient to given endpoint.
tcpClient.Connect(serverEndpoint.Address, serverEndpoint.Port);
tcpClient.LingerState = new LingerOption(true, 10);
}
return ipStatus;
}