Проверка алгоритма Nagle на открытом сокете

одна из используемых нами платформ открывает TCP-сокеты (исходный код недоступен).

Мне нужно проверить, если алгоритм Nagle отключен или включен на этих сокетов.

операционная система может быть Windows или Linux и мы знаем, что открытые порты.

инструменты и идеи 🙂

3
задан Medhat Hussain
26.03.2023 6:25 Количество просмотров материала 2554
Распечатать страницу

1 ответ

алгоритм Нейгла включен по умолчанию, но может быть отключен в setsockopt системный вызов использование флага TCP_NODELAY.

один из способов под Linux-трассировка setsockopt с помощью strace. Сетевую активность можно отследить по звонку:

strace -o /tmp/strace.out -s 10000 -e trace=network -fp PID

это будет отслеживать вызовы bind, listen, socket, setsockopt.

если ваш дистрибутив Linux включает в себя systemtap, тогда вы можете использовать команду pfiles.stp.

An пример использования берется из ответ:

$ ./pfiles.stp `pgrep udevd`
   787: udevd
  Current rlimit: 32 file descriptors
   0: S_IFCHR mode:0666 dev:0,15 ino:396 uid:0 gid:0 rdev:1,3
      O_RDWR|O_LARGEFILE 
      /dev/null
   1: S_IFCHR mode:0666 dev:0,15 ino:396 uid:0 gid:0 rdev:1,3
      O_RDWR|O_LARGEFILE 
      /dev/null
   2: S_IFCHR mode:0666 dev:0,15 ino:396 uid:0 gid:0 rdev:1,3
      O_RDWR|O_LARGEFILE 
      /dev/null
   3: S_IFDIR mode:0600 dev:0,9 ino:1 uid:0 gid:0 rdev:0,0
      O_RDONLY 
      inotify
   4: S_IFSOCK mode:0777 dev:0,4 ino:2353 uid:0 gid:0 rdev:0,0
      O_RDWR 
      socket:[2353]
      SO_PASSCRED,SO_TYPE(2),SO_SNDBUF(111616),SO_RCVBUF(111616)
        sockname: AF_UNIX
   5: S_IFSOCK mode:0777 dev:0,4 ino:2354 uid:0 gid:0 rdev:0,0
      O_RDWR 
      socket:[2354]
      SO_TYPE(2),SO_SNDBUF(111616),SO_RCVBUF(33554432)
        ulocks: rcv
   6: S_IFIFO mode:0600 dev:0,6 ino:2355 uid:0 gid:0 rdev:0,0
      O_RDONLY|O_NONBLOCK 
      pipe:[2355]
   7: S_IFIFO mode:0600 dev:0,6 ino:2355 uid:0 gid:0 rdev:0,0
      O_WRONLY|O_NONBLOCK 
      pipe:[2355]
0
отвечен harrymc 2023-03-27 14:13

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх