[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
В процессе создания лаунчеров по оптимизации TCP/IP, нашел новые полезные вещи: MTU
Есть ли возможность в батнике как-то автоматизировать этот процесс:
echo Выполнить ping с флагом -f запрещающим фрагментацию пакета с размером пакета 1372 байт
echo Увеличиваем размер пакета до появления сообщения о требовании фрагментации пакета!
ping -f -l 1372 google.com
если нету сообщения о требовании фрагментации пакета увеличить размер на единичку:
ping -f -l 1373 google.com
и т.д. пока не появится сообщение: Требуется фрагментация пакета, тогда остановиться

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel, aa
Чисто для посмотреть можно так:
@echo off
>nul chcp 437
for /l %%i in (1400,1,2000) do (
<nul set /p "=Try packet size: %%i byte... "
ping -n 1 -f -l %%i google.com| >nul find "fragmented"&& (echo done!& goto :eof)
echo passed.
)
У меня фраг начался с размера пакета 1473, поэтому начинаю перебор с 1400.

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Спасибо, работает ay
Вопросик, как отключить автозакрытие батника? pause - не помогает.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel, я сделал чисто демонстрашку. Ты скажи, чего именно надо ab-добавь сюда:
(echo done!& goto :eof)
чтобы так:
(echo done!& pause& goto :eof)

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Логика такая:
1) Запускаем Ping_google_MTU.cmd - определяем максимальный размером пакета без фрагментации + вычисляем вручную размер MTU
Чтобы было понятнее, просьба на последней цифре добавить надпись, можно на английском:
"Package fragmentation is required, but the deny flag is set"
2) Запускаем MTU_Size.cmd - определяем имя интерфейса основного подключения (и текущий размер MTU)
и по известному имени и размеру MTU запускаем свой батник, типа:
netsh int ipv4 set interface "Ethernet" mtu=1400 store=persistent
http://file.sampo.ru/9fjk4s/


Last edited by Viktor_Kisel on 2021-05-31 11:28; edited 4 times in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel, сумбур какой-то.
Вот я получил размер пакета, для которого уже требуется фрагментация.
Что с этой цифрой делать? Как получить из неё параметр MTU (чтобы сразу и засунуть в netsh)?

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Мелкософт постарался, действительно сумбур, потому и хочется по максимуму добиться автоматизма.
В батнике есть пример: оптимальное значение параметра MTU=1372+28=1400 байт
То есть, предпоследняя цифра 1372 + 28 = 1400 - этот и есть наш MTU (у каждого свой конечно)!
Может в батнике это можно реализовать, чтобы автоматом добавляло цифру 28 и получали готовый MTU?
Или проще сделать, чтобы автоматом добавляло к последней цифре но уже на единицу меньше - 27?

Но еще нужно узнать имя нашего интерфейса основного подключения с помощью другого батника, например "Ethernet" или "Подключение по локальной сети" или... имя тоже в каждой винде будет отличаться от експишки до десятки.


Last edited by Viktor_Kisel on 2021-05-31 11:48; edited 1 time in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel,
@echo off
>nul chcp 437
for /l %%i in (1300,1,3000) do (
<nul set /p "=Try packet size: %%i byte... "
ping -n 1 -f -l %%i google.com| >nul find "fragmented"&& (set /a sz=%%i-1& goto next)
echo passed.
)
:next
echo done!
echo/
echo Last solid packet size is %sz% byte.
set /a sz+=28
echo/
echo Recommended MTU size is %sz%
echo/
pause

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Вот, то чо нужно, красота, благодарю ay
Уже в таком моменте важном добавили полный автоматизм!
(1300,1,3000) - это лишнее, максимум вроде 1500-28=1472, а вот минимум, наверное поставить 1370, не знаю бывает ли меньше? Думаю оптимально: (1370,1,1472) или так можно (1370,1,1500) потолок не мешает больший.
Мыслей в инете много, реализовать все нужно время. Как сваяю выложу в этой теме постепенно.


Last edited by Viktor_Kisel on 2021-05-31 12:03; edited 1 time in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel, в ХР не работает ac
Там надо пускать именно английский Ping.exe
Или морочиться разбором языков (что в корне неверно, имхо)
Или придумать что-то...
Можно отслеживать errorlevel, но тогда можно случайно попасть на обычный пропуск пакета. Тоже не очень...

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Во дела, щас в семерке временно сижу, сейчас проверю в експишке.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
Viktor_Kisel, вот, например, крохотный английский пинг из NT 4.0 Server
Скачать

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Спасибо, с этим ping.exe в експишке работает.
etsh int ip show interface - слишком много информации показывает, но тут видимо без варинтов
netsh int ipv4 set interface "Ethernet" mtu=1420 store=persistent - не работает под експишкой:
https://superuser.com/questions/37686/how-to-tell-w...ed-in-windows-xp
TCPOptimizer - здесь выручит.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 10 months
  • Posts: 3832
  • REPUTATION:127

    [+] [-]
85964с этим ping.exe в експишке работает.
У меня и в 10-ке он работает ab

[Quote]

    Viktor_Kisel
  • 2625
  • Longevity: 8 years 10 months
  • Posts: 632
  • REPUTATION:46

    [+] [-]
Ander_73
Вот нашел на https://zen.yandex.ru/media/id/5ba20e2da679a400aac6...fe7b2900aa92e96c
Анализатор: https://www.speedguide.net/analyzer.php
Рекомендует мне для експишки (и для семерки тоже, но там этот параметр не в реестре):
RWIN=65280 (up to 2 Mbit lines, depending on latency. MSS * 48)
и т.д.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpWindowSize"=dword:0000ff00
"GlobalMaxTcpWindowSize"=dword:0000ff00

Page 1 of 2


Display posts:    

Current time is: 03-Dec 14:32

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum