Por que existe um limite de 10 no argumento -q do traceroute?

1

O argumento -q do traceroute define o número de sondas a serem usadas.

Em sistemas Linux, parece que isso só pode ser de até 10. Se um valor mais alto for usado, o traceroute retorna.

no more than 10 probes per hop

Em uma caixa solaris, o mesmo parâmetro está disponível e lá aceita mais de 10.

Eu me pergunto por que esse limite está lá. Isso é apenas uma escolha arbitrária?

    
por user55570 10.06.2015 / 04:28

2 respostas

0

Você não pode esperar que qualquer programa em qualquer sistema gere saídas idênticas. Todos estão livres para adaptar o código fonte.

POSIX define a interface de programação de aplicativos (API), junto com shells de linha de comando e interfaces de utilitários, para software compatibilidade com variantes do Unix e outros sistemas operacionais.

    
por A.B. 10.06.2015 / 07:05
0

É simplesmente definido no código-fonte da ferramenta, entre outros limites:

#define MAX_HOPS    255
#define MAX_PROBES  10
#define MAX_GATEWAYS_4  8
#define MAX_GATEWAYS_6  127
#define DEF_HOPS    30
#define DEF_SIM_PROBES  16  /*  including several hops   */
#define DEF_NUM_PROBES  3
#define DEF_WAIT_SECS   5.0
#define DEF_SEND_SECS   0
#define DEF_DATA_LEN    40  /*  all but IP header...  */
#define MAX_PACKET_LEN  65000

Não há um comentário indicando por que, então eu acho, "escolha arbitrária" é isso.

Provavelmente, os desenvolvedores pensaram que mais de 10 por salto não seriam úteis e provavelmente não representariam uma escolha sensata.

Você está lidando com alta perda de pacotes ou jitter? Até 10 pacotes devem ser mais do que suficientes para determinar se há alta perda de pacotes ou instabilidade.

    
por thomasrutter 10.06.2015 / 07:17