-
Slow page load (IPv6) with Internet Explorer 11
Posted on November 21st, 2015 No commentsRecently, I found a website which loads very slowly in Internet Explorer 11 (under Windows 7) while other browsers did not affected (Chrome, Firefox). The site has both IPv6 and IPv4 addresses. Tcpdump showed that connection to the IP address is failed, Destination unreachable ICMPv6 messages returned in reply to SYN packets.
Despite the address is unreachable the operating system retransmists the SYN packets in a 9 seconds interval. There was a 12 seconds silence, and after a total waiting of 21 seconds the browser switched to the IPv4 address then the connection established under 2 milliseconds. Google Chrome behaves differently: after 300 milliseconds of the first failed IPv6 SYN attempt it immediately switched to IPv4 which is cannot be noticeable by the user. No annoying waiting, no unnecessary retransmissions.
An hour surfing on the net did not reveal any valid explanation. Interestingly, Internet Explorer 9 suffers from the same phenomena. I suppose this is by desing albeit very frustrating.
-
Delphi compile timestamp
Posted on November 21st, 2015 No commentsIt could be useful to know the build date of the executable. In most situations this is the file’s timestamp.
It is quite simple to read it out in TDateTime format:ExeDate := FileDateToDateTime(FileAge(ParamStr(0)));
However, there are situations when the file’s timestamp is altered and the build date is lost.
-
Ubuntu Grub headaches
Posted on June 19th, 2015 No commentsToday I had to install an Ubuntu 14.04.2 LTS system on a two-disk PC, with software RAID1, which I did many times before.
The disks and raid setup went fine, but when reaching the GRUB install it reports “fatal error”.
I skipped the bootloader install and finished the OS setup. Of course, the system didn’t boot…After a little googling, I can resolve all booting problems.
-
High resolution ping for Windows
Posted on December 30th, 2014 No commentsThis little tool can generate sub-millisecond precision ICMP Echo messages. The interval between consecutive packets, the results or the waiting timeout are all in microseconds. The main idea behind this tool is the ICMP packets should be sent at constant interval so waiting for an outsanding message won’t block further messages. For instance, you cannot set packet interval in Windows’ internal ping.exe. Only members of the Administrators group can use this tool since it uses a raw socket. After a successful run the min/max/avg and stdev round trip times are calculated.
This tool is successfully tested on Windows XP and Windows 7 machines. You can download the binary here.
The full source code can be downloaded here. It’s for Delphi or Free Pascal compilers. The HresPing.pas unit can be used in other projects. Successfully tested in Free Pascal 2.6.4 and Delphi 6.