Way much slower than zerotier

I was using zerotier before, and start to use tailscale these days. I quickly realized that tailscale is much slower than zerotier in p2p connection(very hard to have a direct connection). tailscale used relay at the most of time. but zerotier always can direct connect successfully at the first second.

Here is some info of my network status.
Device A:

$ tailscale netcheck

Report:
        * UDP: true
        * IPv4: yes, **masked**
        * IPv6: yes, **masked**
        * MappingVariesByDestIP: false
        * HairPinning: false
        * PortMapping: UPnP, NAT-PMP, PCP
        * Nearest DERP: Tokyo
        * DERP latency:
                - tok: 98ms    (Tokyo)
                - syd: 159.1ms (Sydney)
                - lhr: 187.1ms (London)

$ tailscale ping -verbose device-b
lookup "**masked**" => "**masked**"
pong from **masked** (**masked**) via DERP(sfo) in 1.842s
pong from **masked** (**masked**) via DERP(sfo) in 1.365s
pong from **masked** (**masked**) via DERP(sfo) in 619ms
pong from **masked** (**masked**) via DERP(sfo) in 708ms
pong from **masked** (**masked**) via DERP(sfo) in 356ms
pong from **masked** (**masked**) via DERP(sfo) in 756ms
pong from **masked** (**masked**) via DERP(sfo) in 362ms
pong from **masked** (**masked**) via DERP(sfo) in 1.049s
pong from **masked** (**masked**) via DERP(sfo) in 364ms
pong from **masked** (**masked**) via DERP(sfo) in 358ms

Device B:

$ tailscale netcheck

Report:
        * UDP: true
        * IPv4: yes, **masked**
        * IPv6: no
        * MappingVariesByDestIP: false
        * HairPinning: false
        * PortMapping: UPnP
        * Nearest DERP: San Francisco
        * DERP latency:
                - sfo: 151.5ms (San Francisco)
                - tok: 168.1ms (Tokyo)
                - dfw: 168.3ms (Dallas)

$ tailscale ping -verbose device-a
lookup "**masked**" => "**masked**"
pong from **masked** (**masked**) via DERP(sfo) in 1.113s
pong from **masked** (**masked**) via DERP(sfo) in 360ms
pong from **masked** (**masked**) via DERP(sfo) in 1.499s
pong from **masked** (**masked**) via DERP(sfo) in 1.141s
pong from **masked** (**masked**) via DERP(sfo) in 365ms
pong from **masked** (**masked**) via DERP(sfo) in 407ms
pong from **masked** (**masked**) via DERP(sfo) in 369ms
pong from **masked** (**masked**) via DERP(sfo) in 361ms
pong from **masked** (**masked**) via DERP(sfo) in 604ms
pong from **masked** (**masked**) via DERP(tok) in 253ms

device A is behind one NAT and have a working UPnP, it should be able to connect directly.

I also tried to ping another device continuously. sometimes the tailscale can make direct connection after hundreds of pings, sometimes it will require thousands of pings.

Hello!

Usually people find tailscale is faster, and it definitely should be getting a direct connection, but depending on your firewall settings it might have had to fall back to a relay. Please email your tailscale IPs and the time it happened to support@tailscale.com and we can help you diagnose the problem.