C # Una conexión establecida fue cancelada por el software en su máquina host

Estos errores son cada vez más frecuentes en mi Game Server. Están causando que el servidor se siga cerrando y reiniciando ...

System.Net.Sockets.SocketException (0x80004005): An established connection was aborted by the software in your host machine 
   at System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state) 
   at iRP.Game.Sessions.Session.SendData(Byte[] Data)

Este es el código a partir del cual se generan estos errores:

public void SendData(byte[] Data)
{
    try
    {
        if (mSocket == null)
        {
            //Output.WriteLine("[SND] Socket has a null exception, which means it is now invalid. Remove this socket!", OutputLevel.CriticalError);
        }
        else
        {
            mSocket.BeginSend(Data, 0, Data.Length, SocketFlags.None, sendCallback, mSocket);
        }
    }
    catch (Exception e)
    {
        string WhatToWrite = "Error handled (SESSION): " + e.ToString() + "\n\n" + e.Message + "\n\nStack: " + e.StackTrace + Environment.NewLine + "\n\n";
        File.AppendAllText(Environment.CurrentDirectory + "\\data\\fatal.txt", WhatToWrite);
        Program.Stop();
    }
}

Los tamaños del búfer están correctamente configurados, estamos usando KeepAlive en el socket y usamos los tiempos de espera de envío y recepción.

La gente sugirió que la desactivación del firewall ayudaría, pero cada vez que hago esto, nuestro Servidor de Juegos (Servidor Dedicado) se reinicia como si estuviera siendo atacado, por lo que el firewall debe permanecer habilitado.

¿Alguien más tiene alguna otra solución para esto?

PD: Estamos detrás de los Servicios de Mitigación DDoS que pueden limitar el número de conexiones ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta