Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


I have a traceroute output. Will the packets follow that path?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

I have a traceroute output. Will the packets follow that path?

umiumi Member

Or maybe another ways? I can see path obtained with icmp traceroute slightly differs from the path I got with tcp traceroute (-T key).
Shold I use tcp traceroute for tcp packets?
I need to measure delay to the last active router/host on the path. Is there any more elegant ways to do so?

Thanks!

Comments

  • defaultdefault Veteran
    edited August 2020

    Packets don't always follow the same path, whether it's TCP, UDP, ICMP, or whatever. It all depends on routers decisions, load balancing, accessible paths, configurations, default route/gateway, and so on.

    Internet is a network composed of other networks, and other groups of networks, so decisions are not always the same, because all providers try to mitigate flood and use multiple connections. They never rely on the same path, trying to use multiple paths for safety and redundancy.

    I think it would be better to simply state your issue, what you want to achieve, and what is the concept behind your approach. This way we can know what you are talking about, and brain-storm the solution.

    Networking is not exactly an art, so there's nothing "elegant" about it. Network topologies are created with security and practicability in mind, not with elegance and sexy routers. It would not surprise me though if there would exist fiber optics, with pink outer shell.

    Thanked by 2TimboJones Falzo
  • umiumi Member
    edited August 2020

    I simply need to find which server is closer to a visitor. And this is quite a task, I must say. The client side approach with javascript is a total mess and disaster. The server side approach with traceroute looks promising. During the day I'll gather new networks to probe and run the traceroute probes nightly when the traffic and interference is minimal. Something like this:

    traceroute  -I -q1  -4 -f2 -m20 -N20 -w 1.0  ipaddr 28

    this sends 20 and gets upto 20 tiny 28 bytes icmp packets per network. The tcp version uses SYN packets to port 80. I'll grab the answers from all the servers and finally calc the best and the next best servers for each network. What are downsides and potential pitfalls in this approach?

  • I don't know why you just don't ping the endpoint. The traceroutes seem to be excessive data you don't actually need to know which location is closer.

    Thanked by 1Erisa
  • If there is no congestion on the network, in theory that thinking could help you find the closest hop, to a destination.

    Thanked by 1umi
  • umiumi Member
    edited August 2020

    Most pings will not succeed as the providers are using their sometimes very huge intranets with security bumped to the max. With traceroute I'll get the entry router at least and will benchmark it from different locations. Entry routers can differ for different carriers of course, but it looks like they all eventually meet at a city or regional level.

  • SplitIceSplitIce Member, Host Rep

    Also remember that ingress route is not necessarily (or usually) the same as the egress route.

    Thanked by 1default
  • Sounds sketchy since you're not being outright in your intentions. You shouldn't be probing everyone's network, only the remote server you claim. "I simply need to find which server is closer to a visitor".

  • umiumi Member
    edited August 2020

    @TimboJones said:
    Sounds sketchy since you're not being outright in your intentions. You shouldn't be probing everyone's network, only the remote server you claim. "I simply need to find which server is closer to a visitor".

    I cannot use javascript to measure load time to my cdn servers as the results are way too noisy and unreliable. I cannot use geoip databases as maxmind - way too many misses. Can you offer a simple yet efficient way to find best cdn node for a visitor?

    https://www.nngroup.com/articles/the-need-for-speed/

  • SplitIceSplitIce Member, Host Rep

    @umi a well balanced & tuned Anycast network.

  • umiumi Member

    @SplitIce said:
    @umi a well balanced & tuned Anycast network.

    Not so simple and expensive. For the fraction of the price of this solution one can spin bunch of vpses and have a server within 50ms next to each other. 5 times RTT(50ms) to establish TCP&TLS gets us 250ms TTFB (even 200ms with TLSv1.3) So we can spend 250ms on a dns request and still get initial screen loaded in 500ms. The more popular the resource gets the more people enjoy a free ride on a dns cache ;)

  • SplitIceSplitIce Member, Host Rep
    edited August 2020

    Sorry I thought you were asking for the best / correct & simplest solution. What you mean is the cheapest not simplest or efficient.

    In which case that's probably GeoDNS. Sure it's got edge cases but that's the trade off you make.

  • umiumi Member
    edited August 2020

    And the question repeats. How GeoDNS finds the best server? One bunch of them are using anycast so the nameserver simply sends request to same region it operates. This is how the packets double jump across the ocean if peering sucks. The other bunch is constantly mapping the Internet and the best server selection based on network topology. This makes sense as most networks sit tight where they are and only a few are on the run. This is there the geoip databases fall short. They must be updated constantly and it's a good idea to update only your visitors' networks. The third bunch is mixing both ways.

  • @umi said:

    @TimboJones said:
    Sounds sketchy since you're not being outright in your intentions. You shouldn't be probing everyone's network, only the remote server you claim. "I simply need to find which server is closer to a visitor".

    I cannot use javascript to measure load time to my cdn servers as the results are way too noisy and unreliable. I cannot use geoip databases as maxmind - way too many misses. Can you offer a simple yet efficient way to find best cdn node for a visitor?

    https://www.nngroup.com/articles/the-need-for-speed/

    I can't stand piecemeal requirements and don't have the patience. Sorry.

    (The simple, yet efficient way is to go with the one who responds first).

Sign In or Register to comment.