Verificando o Algoritmo Nagle no soquete aberto

0

Uma das plataformas que usamos abre sockets TCP (Nenhum código fonte disponível).

Eu preciso verificar se o Nagle Algorithm está desabilitado ou habilitado nesses soquetes.

O sistema operacional usado pode ser Windows ou Linux e nós conhecemos as portas abertas.

Quaisquer ferramentas e ideias:)

    
por Medhat Hussain 04.10.2018 / 15:51

1 resposta

0

O algoritmo de Nagle está ativado por padrão, mas pode estar desativado na chamada do sistema setsockopt usando o sinalizador TCP_NODELAY.

Uma maneira no Linux seria rastrear o setsockopt usando strace . A atividade de rede pode então ser rastreada pela chamada:

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

Isto irá rastrear as chamadas de bind, listen, socket, setsockopt.

Se sua distribuição Linux incluir systemtap , você poderá usar o comando pfiles.stp .

Um exemplo de uso vem de esta resposta :

$ ./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]
    
por 04.10.2018 / 16:46

Tags