Como 8 bits são suficientes para o TTL em um cabeçalho IP?

18

O TTL (Time to Live) é um campo de 8 bits no cabeçalho IPv4. Pode levar qualquer valor de 0 a 255. Se isso significa que o pacote pode levar no máximo 255 saltos (roteadores) a caminho de seu destino, o pacote será descartado.

Como é possível enviar pacotes pelos continentes?

reddi hari
fonte
14
Mesma razão pela qual a maioria das tracerouteferramentas desiste após apenas 30 saltos - o "diâmetro da internet" não é tão grande quanto você pensa.
grawity
4
Pense nisso como colocar seus dados em aviões para viajar. Para o lúpulo local, você freta um avião leve. Para grandes saltos internacionais, você chega no 777 ou A380 mais próximo e dá um grande salto. Em vez de um voo internacional, Data viaja da Europa para os EUA (ou outro local) em um destes: en.wikipedia.org/wiki/Transatlantic_communications_cable
Baldrickk
2
A teoria dos "seis graus de separação" também pode lhe interessar.
22418 Pam
1
Eu o encorajo seriamente a considerar a sugestão de Pam. Acontece que em sistemas que ocorrem naturalmente (sistemas não planejados), como pessoas fazendo amigos, nós sendo adicionados à Internet, empresas fazendo negócios etc., a maioria das conexões não exige muitos saltos. Para interações humanas, esse número raramente excede 6. Por exemplo, oracleofbacon.org, que calcula a conexão do ator Kevin Bacon com outros atores. A distância entre o ator Ravi Teja e Bacon e Telugu é de apenas 3 filmes. A atriz malaia dos anos 60, Saloma, também tem apenas 3 filmes entre ela e Kevin Bacon
slebetman
Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Ron Maupin

Respostas:

27

Mesmo ao enviar pacotes pelos continentes, um TTL de 255 é mais que suficiente - simplesmente não há mais roteadores envolvidos.

A execução de um teste rápido (da Alemanha) mostra 17 saltos para os EUA e 18 para o Japão. Normalmente, você não fica acima de 30 ou mais. Isso ocorre devido à estrutura hierárquica da Internet - você atinge a espinha dorsal do seu ISP com apenas 2 a 5 saltos, outros 2-3 saltos o levam ao próximo provedor etc.

Observe que o TTL conta apenas os saltos da camada 3. Os saltos de camada 2 muito mais usados ​​nos switches não têm impacto no TTL - não existe esse conceito na Ethernet ou em protocolos similares.

Além disso, encapsular um pacote para o transporte do túnel 'congela' o TTL enquanto ele está no túnel - independentemente de quantos saltos o pacote externo leva (ele possui seu próprio TTL), o túnel inteiro conta apenas como um ou dois saltos para o pacote interno.

Zac67
fonte
9

Uma pequena adição às outras respostas para ser mais completa: embora muitos roteadores pareçam enviar pacotes com um TTL de 255 (para os pacotes que eles próprios produzem, é claro, não para os que encaminham!), A maioria dos sistemas operacionais envia pacotes com muito valores TTL iniciais mais baixos:

  • O Windows usa 128 (desde o Windows NT 4),
  • MacOS X e Linux usam 64

Alguns sistemas costumavam enviar valores mais baixos (por exemplo, o Windows 95 tinha um TTL padrão de 32), esses valores foram aumentados para evitar problemas com rotas possivelmente mais longas ... mas esses sistemas foram definitivamente capazes de alcançar quase qualquer host na Internet naquela época. E - embora eu não tenha nenhuma prova disso - diria que o número necessário de saltos diminuiu desde então, porque mais e mais fibras de longa distância estão instaladas para transportar o tráfego.

Também não se esqueça que o número de saltos e a distância geográfica não se correlacionam . Os oceanos geralmente são cruzados com um único salto (os repetidores ópticos ao longo das fibras submarinas não tocam os pacotes, apenas os roteadores diminuem o TTL). Acabei de fazer um traceroute da Suíça para a Nova Zelândia: o salto nº 7 fica a menos de 50 km de onde estou, o nº 9 está na Califórnia e o nº 10 está na Nova Zelândia ... a parte de trânsito intercontinental geralmente é apenas alguns saltos em uma rota, o restante chega principalmente a uma transportadora internacional e chega ao destino a partir dela.

Ale
fonte
8

8 bits é mais que suficiente. devido ao emparelhamento do ISP, você pode chegar ao destino viajando por menos de 5 ou 6 ISPs e, devido à arquitetura de rede de backbone, o pacote transferirá apenas o número máximo de 3 ou 4 roteadores em um ISP.

se você aumentar o TTL, para destinos não roteados, o pacote estará viajando na rede até que o TTL se torne 0 - o que consumirá largura de banda desnecessariamente.

abdul_razak
fonte
Para destinos não roteados, não é prática comum instalar uma rota de rejeição para evitar isso?
grawity
7
O problema não é destinos não roteados, o problema é destinos onde, devido a configurações incorretas ou efeitos transitórios, há um loop de roteamento.
Peter Green
3

Uma observação do departamento de histórico: as unidades do TTL são segundos , com o orçamento de tempo permitido diminuindo em um segundo para cada salto do roteador.

Do protocolo de Internet RFC 791:

O tempo é medido em unidades de segundos, mas como todo módulo que processa um datagrama deve diminuir o TTL em pelo menos um, mesmo que processe o datagrama em menos de um segundo, o TTL deve ser considerado apenas como um limite superior no vez que um datagrama pode existir. A intenção é fazer com que os datagramas não entregues sejam descartados e limitar a vida útil máxima dos datagramas.

Pacotes de vários segundos não eram incomuns: um datagrama IP mínimo permitido de 68 octetos leva mais de 2 segundos a 300 baud. No entanto, nunca vi um roteador que diminuísse em mais de 1 para pacotes de vários segundos.

O mundo está mais rápido hoje em dia.

jonathanjo
fonte