Очень большой пинг в клиент-серверном приложении в Windows Server 2012. Как уменьшить?
Я создал облачный сервер на Windows Server 2012 R2. При выполнении команды ping со своего компьютера на этот сервер пинг в среднем 60ms. Я написал простое клиент-серверное приложение на C#.
Клиент:
TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse(«адрес»), 10000); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); Stopwatch sw = new Stopwatch(); List pings = new List(); DateTime startTime = DateTime.Now; Random random = new Random(); while(true) { byte[] packet = Enumerable.Repeat(100, random.Next(50, 100)).ToArray(); sw.Start(); writer.Write(packet.Length); writer.Write(packet); packet = reader.ReadBytes(reader.ReadInt32()); sw.Stop(); pings.Add((float)sw.Elapsed.TotalMilliseconds); sw.Reset(); DateTime now = DateTime.Now; if(now — startTime > TimeSpan.FromSeconds(1)) { startTime = now; Console.WriteLine(pings.Average()); pings.Clear(); } }
Сервер:
TcpListener listener = new TcpListener(IPAddress.Any, 10000); listener.Start(); TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); while (true) { byte[] packet = reader.ReadBytes(reader.ReadInt32()); writer.Write(packet.Length); writer.Write(packet); }
При запуске сервера на Windows Server, а клиента у себя я получаю результаты пинга в среднем 200ms.
На мой взгляд проблема кроется в настройках Windows Server`а. Подскажите, кто знает.
Клиент:
TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse(«адрес»), 10000); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); Stopwatch sw = new Stopwatch(); List pings = new List(); DateTime startTime = DateTime.Now; Random random = new Random(); while(true) { byte[] packet = Enumerable.Repeat(100, random.Next(50, 100)).ToArray(); sw.Start(); writer.Write(packet.Length); writer.Write(packet); packet = reader.ReadBytes(reader.ReadInt32()); sw.Stop(); pings.Add((float)sw.Elapsed.TotalMilliseconds); sw.Reset(); DateTime now = DateTime.Now; if(now — startTime > TimeSpan.FromSeconds(1)) { startTime = now; Console.WriteLine(pings.Average()); pings.Clear(); } }
Сервер:
TcpListener listener = new TcpListener(IPAddress.Any, 10000); listener.Start(); TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); while (true) { byte[] packet = reader.ReadBytes(reader.ReadInt32()); writer.Write(packet.Length); writer.Write(packet); }
При запуске сервера на Windows Server, а клиента у себя я получаю результаты пинга в среднем 200ms.
На мой взгляд проблема кроется в настройках Windows Server`а. Подскажите, кто знает.
Похожие публикации
Пропажа данных и проблемы с сетью в Windows Server 2008 R2
Каким образом поднять новую инфраструктуру с нуля и объединить в одну сеть три корпуса учебного заведения?
BSOD on windows server 2012?
Не устанавливаются агенты SC DPM 2012 R2?
Как решить ошибку Error 41 Microsoft Windows Kernel Power на сервере?
Нет комментариев