<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IPv6 &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/ipv6/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Thu, 17 May 2018 19:23:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Xojo.Net.HTTPSocket Speed on Windows</title>
		<link>https://blog.xojo.com/2017/03/09/xojo-net-httpsocket-speed-on-windows/</link>
		
		<dc:creator><![CDATA[Greg O'Lone]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 06:46:11 +0000</pubDate>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[HTTPSocket]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Xojo Framework]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2233</guid>

					<description><![CDATA[There&#8217;s been a bit of discussion about how the new Xojo.Net.HTTPSocket is slow for some users on Windows, which we&#8217;ve been trying to isolate to&#8230;]]></description>
										<content:encoded><![CDATA[<p>There&#8217;s been a bit of discussion about how the new <a href="http://developer.xojo.com/xojo-net-httpsocket">Xojo.Net.HTTPSocket</a> is slow for some users on Windows, which we&#8217;ve been trying to isolate to get fixed.</p>
<p>After a bit of experimentation this January we were able to isolate one huge cause of this annoying behavior. Unfortunately it has to do with a misconfigured IPv6 DNS server configuration and whether or not yours is correct may be up to your service provider.</p>
<h3>Whose bug is this?</h3>
<p>According to the spec, IPv6 DNS servers are <em>supposed to</em> return immediately if they can&#8217;t fulfill the request. Unfortunately this is almost the exact opposite of what an IPv4 DNS server does, in that it <em>may</em> forward your request to the next server to see if it knows where your request should go. Unfortunately we found that only about two-thirds of the ones we tested were correctly configured.</p>
<p>On macOS and Linux, DNS requests are sent concurrently, that is, two requests are sent at the same time, one each for IPv4 and IPv6. The one that returns first is used. On Windows, the requests are unfortunately sent sequentially, IPv6 <em>and then IPv4</em>. What this means is that IPv6 requests just hang there, waiting for a response that will either never come or will wait until the underlying socket reaches its timeout. When that fails, the IPv4 request is sent and fulfilled and your socket request goes through.</p>
<h3>What To Do</h3>
<p>Here are a few things you can do to test this theory. While you can&#8217;t really ask all of your users to do this, it will tell you if this is where the problem lies.</p>
<ol>
<li>Turn off IPv6.
<ol>
<li>Click <strong>Start</strong> and then <strong>Settings.</strong></li>
<li>Search for <strong>Network Connections</strong>.</li>
<li>Click <strong>View network connections</strong>.</li>
<li>Right-click on the active connection and select <strong>Properties</strong>.</li>
<li>On the <strong>Networking</strong> tab, clear the <strong>Internet Protocol Version 6 (TCP/IPv6)</strong> check box, and then click <strong>OK</strong>.</li>
</ol>
</li>
<li>Change the DNS entries for IPv6 from the defaults to point to <a href="https://developers.google.com/speed/public-dns/">Google Public DNS</a> or <a href="http://opendns.com">OpenDNS</a>.</li>
<li>Make a Hosts file entry. If your installer runs as an administrator, you can make an entry in the hosts file to force the computer to use IPv4. <em><em><em>This is not a long term solution as the world moves to IPv6.</em></em></em>The hosts file on Windows 7/8/10 is located at:
<pre>C:\Windows\System32\drivers\etc</pre>
<p>and you should add an entry which looks like this:</p>
<pre>Server IP Address&lt;TAB&gt;domain name</pre>
</li>
<li>If it&#8217;s a domain that you control, make sure you only use IPv4 DNS entries and that your server is only listening on the IPv4 interface.</li>
</ol>
<p>All in all, it&#8217;s a frustrating problem. While there&#8217;s no easy solution, the good news is that because there are no IPv4 addresses left to be distributed, the world <em>is</em> moving to IPv6. The more demand there is, the more likely that the incorrect DNS servers will get fixed because they&#8217;ll cause problems for other sites as well.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
