ExtraDNS 3.0.4 - Speed Your Internet

3 views
Skip to first unread message
Message has been deleted

Srikanth Fonseca

unread,
Jul 10, 2024, 2:59:58 AM7/10/24
to moikalwestzin

In his tutorial on how to style HTML5 elements in Internet Explorer, Remy Sharp states that hot linking causes an "extra HTTP [GET] request." I agree if you're comparing hot linking to copying & pasting (embedding) the script into the HTML. But, if you're comparing hot linking to hosting the script locally and linking via a relative path, then I'd argue that hot linking is actually (ever-so-slightly) faster because the browser doesn't have to resolve the absolute URL from the relative path. In both cases, however, an extra HTTP GET request is performed, correct?

ExtraDNS 3.0.4 - Speed Your Internet


DOWNLOAD https://urlgoal.com/2yM70z



This is more to do with lower-level stuff like tcp rather than http per-se. If you get two items from the same webserver nowadays, your browser is likely to pull them over the same tcp connection. That's two http transactions over one tcp connection. This avoids the overhead of making another tcp connection. This overhead is small in traffic terms, but can involve a lot of latency.

I would imagine that the only things affecting such a situation are the relative speeds of the servers in question (for speed) and whether you expect this code to run on any other site (for maintainability).

Assuming the resource is not embedded within the HTML document itself (i.e. it is linked), and the resource is on the same server with the same host name, the time to retrieve the resource via absolute or relative URI should be virtually identical. An additional HTTP request will be submitted either way. If you want to split the 'virtually identical', I would lean toward the relative path being a very, very, very small amount faster, due to the smaller amount of HTML that needs parsed, the path parsing (as you mentioned) potentially being quicker (due to the string tokenizer not having to deal with the domain portion of the address/the address being shorter). The difference here is only realistic for curiosity's sake.. I can't imagine a site being optimized down to this level (although, it may establish a good rule of thumb? Relative pathing allows you to freely change the domain/path of the site without having to rewrite all of the URIs contained within..)

One thing to consider would be if the resource is not hosted on the same server, and the server of the referencing HTML document has KeepAlive enabled, another TCP connection will have to be initialized to connect to the second server (as well as a DNS query being made to resolve the other server's host name, assuming the access is not via IP address), resulting in additional overhead in comparison to multiple referenced resources on the same server (where the GET requests would be issued within the existing TCP connection).

Upon loading your webpage, your visitors' browser fetches the CSS file as soon as the HTML starts to be parsed. Then, when the browser starts rendering the page and identifies the need for fonts in different text sections, it requests the required font files.

This is where the performance problem arises. Google Fonts employs a two-domain system: the CSS resides on one domain - fonts.googleapis.com - while the font files reside on another domain - fonts.gstatic.com.

This separation results in a minimum of four round trips to the third-party servers for each resource request. These round trips are DNS lookup, socket connection establishment, TLS negotiation (for HTTPS), and the final round trip for the actual resource request. Ultimately, getting a font from Google servers to a browser requires eight round trips.

Cloudflare Fonts streamlines this process, by reducing the number of round trips from eight to one. Two sets of DNS lookups, socket connections and TLS negotiations to third-parties are no longer required because there is no longer a third-party server involved in serving the CSS or the fonts. The only round trip involves serving the font files directly from the same domain where the HTML is hosted. This approach offers an additional advantage: it allows fonts to be transmitted over the same HTTP/2 or HTTP/3 connection as other page resources, benefiting from proper prioritization and preventing bandwidth contention.

These transformations adjust the font URLs to align with the same domain as the HTML content. These modified responses seamlessly pass through Cloudflare's caching infrastructure, where they are automatically cached for a substantial performance boost. In the event of any cache misses, we use Fontsource and NPM to load these fonts and cache them within the Cloudflare infrastructure. This approach ensures that there's no inadvertent data exposure to Google's infrastructure, maintaining both performance and data privacy.

Additionally, you can notice that the timings section in the browser no longer needs an extra DNS lookup for the hostname or the setup of a TLS connection. This happens because the content is served from your hostname, and the browser has already cached the DNS response and has an open TLS connection.

Finally, you can see the real-world performance benefits of Cloudflare Fonts. We conducted synthetic Google Lighthouse tests before enabling Cloudflare Fonts on a straightforward page that displays text. First Contentful Paint (FCP), which represents the time it takes for the first content element to appear on the page, was measured at 0.9 seconds in the Google fonts tests. After enabling Cloudflare Fonts, the First Contentful Paint (FCP) was reduced to 0.3 seconds, and our overall Lighthouse performance score improved from 98 to a perfect 100 out of 100.

This new module is known as ROFL (Response Overseer for FL). It now powers various Cloudflare products that need to alter HTML as it streams, such as Email Obfuscation, Rocket Loader, and HTML Minification.

ROFL was developed entirely in Rust. This decision was driven by Rust's memory safety, performance, and security. The memory-safety features of Rust are indispensable to ensure airtight protection against memory leaks while we process a staggering volume of requests, measuring in the millions per second. Rust's compiled nature allows us to finely optimize our code for specific hardware configurations, delivering impressive performance gains compared to interpreted languages.

ROFL paved the way for the development of Cloudflare Fonts. The performance of ROFL allows us to rewrite HTML on-the-fly and modify the Google Fonts links quickly, safely and efficiently. This speed helps us reduce any additional latency added by processing the HTML file and improve the performance of your website.

My core problem is the routers CLI is resolving host names but my clients are not, The CLI is resolving after it first tries the 10.x.x.x DNS Servers, I'm not sure if these extra DNS are the issues or there is another issues.

The you need to make sure your not incurring fragmentation which could cause the issue your experiencing - try the following and reduce accordingly if you have additional header overheads such are GRE/IPSEC

Q:Do you have Dual uplinks to go different ISP,. when you mention the order list, it go order 1- 4 DNS, keep trying all 4 1 by 1
A:I don't actually have a dual link more a backup link only one works at any one time, so I would expected the rtr to drop the old DNS entries.

Q:- How does the network configuration related to DNS look like on your clients?
A:The Clients were working and resolving host names but then they just stopped, when I cut back to my IPS supplied router I noted the 3/4G modem was locked up.


Q:- Can you ping the DNS server IPs from your clients?
A: I can ping DNS by IP address, but the DNS which start with 10.x.x.x I cant as I'm running the WAN interface not the 3/4G and those DNS IP are private.

I would have expected the DNS entries for this 3/4G backup service would have put first in the list, for some reason the 3/4G is not routing internet traffic (at the moment, will perform further testing shortly)

With that said I think I have introduced a problem where now the 3/4G server is not routing internet traffic , the clients are resolving host names but no internet connectivity, I will need track this down in the morning I have included a quick rundown of my changes which preceded the 3/4G failure.

EDIT 1: Your issue is symptomatic of high latency issues. You can trying pinging various servers at the Windows command line using the "ping" command. I can ping Google and Bing and get sub 5ms responses. Maybe you need to look for a closer DNS server. I googled =dns+portugal+servers and manually enter a DNS server until you find a few with really low ping times.

First, let me say that your explanation of the problem is exactly as if I had described what I am experiencing. Tried number of times to address it, but had no luck in solving it. I was suspecting the quality of my provider's network, but no conclusion on it at all. Mind you - I have very good nominal speed and speedtest and pingtest often confirm this.

Edit 2:Note that after adding this switch the Chrome will show you warning message about "unsupported switch, stability and security will suffer". I don't know much about security implications, but I am guessing this may reduce protection in some way.

EDIT 1 : uTorrent creates many connection that your router may not handle and it may become slow until a reboot (it already happened to me with a cheap low cost ISP gateway). Does it work better after a reboot ?

The newer versions of uTorrent tend to "take over" an internet connection, even when not in use (just check their forums for all the unhappy users). Why do you need uTorrent running if it is only "idle"?Also, you seemed to have several windows/instances of Chrome running. If you are going for top speed, you should only open one website at a time. Even if you aren't doing anything on the others, they can be loading things in the background, such as ads and dynamic info. There are many factors contributing to your internet speed. And as part of how Chrome works, it tries to load parts of the web sites it thinks you will access next (part of its "perceived" speediness). Because of this, even when it is ACTUALLY done loading the page, it can appear to still be loading it.One more thing, and i'm sure you know this but, some information on websites comes from multiple sites, and so it must ping several locations and download data concurrently in some cases. This also includes many JavaScript files (which seemed to be some of the longer loads on your video).As somebody mentioned earlier, be sure you check your HOSTS file, as any excessive entries can slow DNS lookups down. It is a little bit of everything that affects speed...

7fc3f7cf58
Reply all
Reply to author
Forward
0 new messages