Удаление параметров TCP с помощью TcpClient в C # - PullRequest
0 голосов
/ 14 марта 2019

Я использую 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;
}
...