у меня есть 1 Гбит Адаптер Ethernet на моем компьютере. И у меня есть другой компьютер с адаптером Ethernet 100 Мбит. Оба в одной локальной сети и подключены через коммутатор 1 Гбит.
1 тест: Я пытаюсь отправить со своего компьютера (1 Гбит) на другой (100 Мбит) пакеты по UDP со скоростьюбольше, чем 100 Мбит / с.
Ожидаемый результат: Скорость более 100 Мбит / с. Некоторые пакеты теряются на принимающем компьютере (100 Мбит).
Фактический результат: Скорость ниже 100 Мбит / с (примерно 95 ~ 98 Мбит / с). Все пакеты принимаются на принимающий компьютер (100Мбит).
Код отправляющей стороны (с использованием PowerShell):
$ipEndPoint = New-Object -TypeName System.Net.IPEndPoint -ArgumentList @([System.Net.IPAddress]::Parse("192.168.102.46"), 15000)
$udpClient = New-Object -TypeName System.Net.Sockets.UdpClient
$udpClient.Connect($ipEndPoint)
while ($true) {
$bytes = [System.Byte[]]::CreateInstance([System.Byte], 1400)
$udpClient.Send($bytes, $bytes.Length)
}
2 Тест: Тот же тест, но пытаюсь отправить UDP-трансляция в текущую локальную сеть.
Ожидаемый результат: Скорость более 100 Мбит / с. Некоторые пакеты теряются на принимающем компьютере (100 Мбит).
Фактический результат: Скорость ниже 100 Мбит / с (примерно 95 ~ 98 Мбит / с). Все пакеты принимаются на принимающий компьютер (100Мбит).
Код отправляющей стороны (с использованием PowerShell):
$ipEndPoint = New-Object -TypeName System.Net.IPEndPoint -ArgumentList @([System.Net.IPAddress]::Parse("192.168.102.255"), 15000)
$udpClient = New-Object -TypeName System.Net.Sockets.UdpClient
$udpClient.EnableBroadcast = $true
$udpClient.Connect($ipEndPoint)
while ($true) {
$bytes = [System.Byte[]]::CreateInstance([System.Byte], 1400)
$udpClient.Send($bytes, $bytes.Length)
}
Примечание:
Пожалуйста, помогите, почему я не могу получить ожидаемый результат?
Если ваш коммутатор поддерживает управление потоком, он, вероятно, отправляет кадры паузы на ваш хост, чтобы ограничить скорость передачи до приемлемой для портов, на которые он должен их пересылать.
Вы можете посмотреть дополнительные настройки сетевой карты и отключить управление потоком, если такая настройка доступна.