AdguardTeam / AdguardTeam/AdGuardHome

Add new mechanism for “Fastest IP Address”

未关闭
#5,144 7 条评论 10 个 reaction 已指派 0 人 在 GitHub 查看
enhancement feature request
主要语言
TypeScript
星标
36.9k
派生
2.5k
PR 合并指标
30 天内没有已合并 PR

描述

### Prerequisites

- [X] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions) and found no answer

- [X] I have searched other issues and found no duplicates

- [X] I want to request a feature or enhancement and not ask a question

### Description

#### What problem are you trying to solve?

Slow resolving time of current “Fastest IP Address”

#### Proposed solution
A user can continue using parallel requests but add the option whereby once a DNS record is resolved and cached (including results from all other upstream DNS server), AdGuard Home can then run “Fastest IP Address” checking on already fetched results, thereby any subsequent connection to the same DNS record will **now** be optimally routed to the lowest latency IP.

The latency checking mechanism should give the user options to use one or all of the following – With the reason being not all hosts reached via DNS have opened ports on 80/443 to begin with as proven [here](https://blog.apnic.net/2021/12/21/identifying-unexpected-internet-services/). So the user can set priority on which method they want, the latency measurement will progressively go through the order and stop once it receives a valid reply from the remote end-point. Or the latency measurement can go in pararell for all the methods in one go and make decision based on “lowest RTT” return from any of the methods that resulted in a response.
- tcping to port 80/443
- ICMP Echo Request/Ping
- UDP ping to port 80/443

Default 1000ms timeout for each method in all cases—Whether user uses one of them or all of them.

#### Alternatives considered
None available.

#### Additional information
With this method users can:
1. Avoid long loading times due to “Fastest IP Address” as is
2. Websites and CDNs load fast enough the first time, but subsequent connections to the same sites/services will be served/routed via the lowest IP address and hence ensure low latency experience particularly for CDNs like Akamai that relies on DNS mapping

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。