<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7979257544913463246</id><updated>2024-08-28T15:29:28.015+05:30</updated><category term="DG834G"/><category term="MTU"/><category term="Netgear"/><category term="RCA"/><category term="debugging"/><category term="root cause"/><category term="router"/><category term="trust"/><category term=".config"/><category term="BSNL"/><category term="DataOne"/><category term="DoS"/><category term="Google+"/><category term="IPv4"/><category term="IPv6"/><category term="NBNS"/><category term="NetBIOS"/><category term="PMTU"/><category term="RP"/><category term="SMB"/><category term="Skype"/><category term="UDP"/><category term="Wireshark"/><category term="broadband"/><category term="captive portal"/><category term="configuration"/><category term="conversation"/><category term="diff"/><category term="kernel"/><category term="learning"/><category term="linux"/><category term="listener"/><category term="multicast"/><category term="multicore"/><category term="multithreading"/><category term="network security"/><category term="networking"/><category term="port scan"/><category term="pruning"/><category term="question"/><category term="real time"/><category term="session"/><category term="spinlock"/><category term="synchronization"/><category term="unit testing"/><category term="video"/><category term="voice"/><category term="xconfig"/><title type='text'>Debugging experiences</title><subtitle type='html'>Sharing how I &lt;a href=http://en.wikipedia.org/wiki/Debugged&gt;debugged&lt;/a&gt; (troubleshot) and fixed real life issues in technology and gadgets.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-4324959232824641017</id><published>2012-10-07T18:14:00.001+05:30</published><updated>2012-10-09T09:30:16.383+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="conversation"/><category scheme="http://www.blogger.com/atom/ns#" term="DG834G"/><category scheme="http://www.blogger.com/atom/ns#" term="DoS"/><category scheme="http://www.blogger.com/atom/ns#" term="Google+"/><category scheme="http://www.blogger.com/atom/ns#" term="Netgear"/><category scheme="http://www.blogger.com/atom/ns#" term="port scan"/><category scheme="http://www.blogger.com/atom/ns#" term="real time"/><category scheme="http://www.blogger.com/atom/ns#" term="router"/><category scheme="http://www.blogger.com/atom/ns#" term="session"/><category scheme="http://www.blogger.com/atom/ns#" term="Skype"/><category scheme="http://www.blogger.com/atom/ns#" term="UDP"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><category scheme="http://www.blogger.com/atom/ns#" term="voice"/><title type='text'>Voice, video streaming issue with Google+, Skype (fixed)</title><content type='html'>It was my router! It was incorrectly identifying genuine audio/ video packets (UDP) as part of an ongoing denial of service or port scan attack from Internet, and discarding them. That led to large gaps in real time audio, and poor video quality. So much that I was unable to carry out any meaningful conversation. The remote party was able to view/ hear us fine. And initially I was blaming it on all other things in my setup that I could imagine, including the net connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMn6OfIouLhnh0EmWUrQ1-d49zWTDQapLWrhGdLcxAM1g-NIR3p8V8WfOw8lPaoQhedXfzJYOFCnmDZkj96GUH9g7iRPVYXlb1yLXLu4HwYlnVLWuGzb-5LmKyoNVMEuGAK0VgPrfZexY/s1600/Incorrect+DoS+detection.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMn6OfIouLhnh0EmWUrQ1-d49zWTDQapLWrhGdLcxAM1g-NIR3p8V8WfOw8lPaoQhedXfzJYOFCnmDZkj96GUH9g7iRPVYXlb1yLXLu4HwYlnVLWuGzb-5LmKyoNVMEuGAK0VgPrfZexY/s640/Incorrect+DoS+detection.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Audio/ video packets incorrectly identified as attack&lt;/b&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Fortunately, there&#39;s a setting to disable the behavior. After disabling, I tested the call quality using Skype&#39;s test server and it was fabulous! I was just lucky that some of the previous Skype sessions worked fine. I admit, some sessions did have this issue; just not so consistently as with Google+. I also tested with Gmail video chat. What a relief to know the root cause, and also why the unpredictability of it occurrence.&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSWueVOhccacjydMYizGifw46cPdiDghI5a3oeRkivl7mlcBxQXTOsuEk6LAjSiu_7dvPkvXOjtQUx9l_J7Je-G-oOynlQCJ5a1pjINfLbAxsHEKEEmc5pjL7WDUo-jmeEaSu5f6sInHc/s1600/Disable+DoS+detection.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSWueVOhccacjydMYizGifw46cPdiDghI5a3oeRkivl7mlcBxQXTOsuEk6LAjSiu_7dvPkvXOjtQUx9l_J7Je-G-oOynlQCJ5a1pjINfLbAxsHEKEEmc5pjL7WDUo-jmeEaSu5f6sInHc/s1600/Disable+DoS+detection.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Disable DoS/ port scan detection&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
After this fix, even video playbacks like those at YouTube go smoothly without awkward halts in between.&lt;br /&gt;
&lt;br /&gt;
The particular router model is more than four years old. So, the issue may not be relevant in recent devices with improved software implementation of DoS/ port scan detection. &lt;br /&gt;
&lt;h4&gt;
Conclusions&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Always good to provide some kind of logs for the users to figure out what is going on, like Netgear provided in this case.&lt;/li&gt;
&lt;li&gt;It is unclear why the router would classify packets that are part of an already established flow as part of DoS&amp;nbsp; or port scan attempts. It would classify even packets coming from Google DNS (8.8.8.8 or 8.8.4.4) as port scan.&lt;/li&gt;
&lt;li&gt;Fortunately Netgear has already made the source code available publicly. Will share here if I find something.&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/4324959232824641017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/4324959232824641017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/4324959232824641017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/4324959232824641017'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2012/10/voice-video-streaming-issue-with-google.html' title='Voice, video streaming issue with Google+, Skype (fixed)'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMn6OfIouLhnh0EmWUrQ1-d49zWTDQapLWrhGdLcxAM1g-NIR3p8V8WfOw8lPaoQhedXfzJYOFCnmDZkj96GUH9g7iRPVYXlb1yLXLu4HwYlnVLWuGzb-5LmKyoNVMEuGAK0VgPrfZexY/s72-c/Incorrect+DoS+detection.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-4645526311245227120</id><published>2009-10-12T00:19:00.004+05:30</published><updated>2009-10-12T06:34:56.735+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".config"/><category scheme="http://www.blogger.com/atom/ns#" term="diff"/><category scheme="http://www.blogger.com/atom/ns#" term="kernel"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="xconfig"/><title type='text'>CONFIG_RELOCATABLE fails booting linux-2.6.31.3 kernel</title><content type='html'>After compiling the &lt;a href=&quot;http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.3.tar.bz2&quot;&gt;recently brewed linux-2.6.31.3 kernel&lt;/a&gt;, noticed that the resultant binary failed to boot. After selecting the image from GRUB boot menu, the PC would just reset without any message.&lt;br /&gt;
&lt;br /&gt;
Fortunately I had my &lt;a href=&quot;http://hackathalon.blogspot.com/2009/08/compiling-and-installing-latest-stable.html&quot;&gt;previous configuration&lt;/a&gt; saved to compare against. Also, I knew what I had explicitly changed after invoking &#39;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;make oldconfig&lt;/span&gt;&#39;. It was this little guy here:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;CONFIG_RELOCATABLE&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Looks like it is not working fine with my hardware configuration. Disabling it in the .config using xconfig fixes it. Thought I should share in case someone else is facing this, too.&lt;br /&gt;
&lt;br /&gt;
Oh, and I decided to give the following a try for more responsive desktop environment:&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;# CONFIG_PREEMPT_VOLUNTARY is not set&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;CONFIG_PREEMPT=y&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Yet to think of a test to feel the difference. At least the kernel boots :-)</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/4645526311245227120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/4645526311245227120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/4645526311245227120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/4645526311245227120'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2009/10/configrelocatable-fails-booting-linux.html' title='CONFIG_RELOCATABLE fails booting linux-2.6.31.3 kernel'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-7318755489094102298</id><published>2009-05-01T18:33:00.003+05:30</published><updated>2009-05-01T18:55:59.582+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="multicore"/><category scheme="http://www.blogger.com/atom/ns#" term="multithreading"/><category scheme="http://www.blogger.com/atom/ns#" term="spinlock"/><category scheme="http://www.blogger.com/atom/ns#" term="synchronization"/><category scheme="http://www.blogger.com/atom/ns#" term="trust"/><category scheme="http://www.blogger.com/atom/ns#" term="unit testing"/><title type='text'>When it comes to debugging, don&#39;t trust anyone!</title><content type='html'>I was assigned a bug whose report simply claimed that a common feature that was known working for long time is broken on a specific hardware platform of the product. For being new to the source code and the product, the first thing I did was to talking to the original software developer. He vehemently maintained that the source code has not changed in many years. So there is no point in spending time to find problem there. He had a theory that recent changes in something else traversed by the incoming network traffic is causing this misbehavior as a side effect.&lt;br /&gt;&lt;br /&gt;I spent painstakingly long hours comparing multiple versions of the software builds around the date the issue was reported on. Compared the software changes that happened between the last date it was found working fine and the date it actually stopped working. Note: the latter date could be even earlier than the date the issue was observed and reported by the tester. The original developer then undid the changes he thought may be causing the issue and I tried those on the test setup once again with no avail! It was a Friday already.&lt;br /&gt;&lt;br /&gt;For the weekend I had decided to drop all the theories and start with some basics and try identifying the problem by the way of elimination of one software component at a time. Unfortunately for me, the original developer did just that and already found the root cause--an incorrect acquisition of synchronization spinlock! This was there since the day-1 when he introduced multi-threading in the software for the new multicore hardware platform.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Conclusions&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Never trust anyone when it comes to analysing software bugs! Not even the original developer...&lt;/li&gt;&lt;li&gt;Managers should allow sufficient time for engineers handling issues to form their own theories and then go about analyzing instead of coercing them to follow specific techniques they had seen working earlier. One cannot use the same tool and approach for just all problems. Otherwise that leads to significantly wasted time. After all, it is them who have hired this engineer and the engineer&#39;s own judgment should be trusted and be given a chance. In this situation, me not being the original developer, in fact, put me in the best position to question the correctness of the source code.&lt;/li&gt;&lt;li&gt;Such a basic issue should have been caught during unit testing by the original developer.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/7318755489094102298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/7318755489094102298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/7318755489094102298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/7318755489094102298'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2009/05/when-it-comes-to-debugging-dont-trust.html' title='When it comes to debugging, don&#39;t trust anyone!'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-1710564760120258336</id><published>2009-05-01T18:01:00.007+05:30</published><updated>2009-05-01T18:36:05.498+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="IPv4"/><category scheme="http://www.blogger.com/atom/ns#" term="IPv6"/><category scheme="http://www.blogger.com/atom/ns#" term="learning"/><category scheme="http://www.blogger.com/atom/ns#" term="listener"/><category scheme="http://www.blogger.com/atom/ns#" term="MTU"/><category scheme="http://www.blogger.com/atom/ns#" term="multicast"/><category scheme="http://www.blogger.com/atom/ns#" term="pruning"/><category scheme="http://www.blogger.com/atom/ns#" term="question"/><category scheme="http://www.blogger.com/atom/ns#" term="RP"/><category scheme="http://www.blogger.com/atom/ns#" term="trust"/><title type='text'>Don&#39;t trust a bug reporter</title><content type='html'>Couple of weeks ago I was assigned an year old bug that had changed many hands over the time. Multiple times back and forth between other developers from different teams and the reporter.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;The issue&lt;/span&gt;&lt;br /&gt;The reported problem was that when an IPv6 ICMP packet with size greater than the MTU of an outgoing interface of an intermediate router between the source and destination is sent with don&#39;t fragment (DF) flag set, the packet does not reach its destination as expected. However, corresponding statistics for the number of received ICMP packets and the number of those exceeding MTU is not updated on the intermediate router that is expected to discard such packets.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;My struggle&lt;/span&gt;&lt;br /&gt;Being new to the specific source code portion that handles exception packets, I spent time understanding the packet path. Added debug logs to know the path taken by incoming packets. Unfortunately, the specific router configuration required and the fact that one of the normal interfaces was repurposed for management traffic, the router being debugged was also receiving traffic other than the one required for the analysis. The management interface was to be used for uploading my debug software image.&lt;br /&gt;&lt;br /&gt;My debug logs confirmed that the needful ICMP and IP fragment hanlders were installed properly. What puzzled me was the packets were not seen reaching the fragment handler that checks for the DF flag. Interestingly, this issue was not seen for IPv4 traffic!&lt;br /&gt;&lt;br /&gt;The setup involved sending traffic to a multicast group. For not being familiar with multicast, I had a third person from the bug reporter&#39;s team verify the configuration was adequate for the purpose. To make my life difficult, the original bug reporter was not available when needed the most.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Troubleshooting&lt;/span&gt;&lt;br /&gt;I decided to take help from a colleague who is familiar with the product and source code for more than three years. Seeing that the originating router was sending the ICMP to a multicast group, he first checked the forwarding state and packet count for the same. First clue was the packet counters were not increasing. Second, the forwarding state for the multicast group was reported as &#39;pruned&#39;.&lt;br /&gt;It turns out that the original configuration missed out configuring the rendevous point (RP). Second, the third router that was supposed to receive the ICMP packets--had the intermediate router allowed those for packets smaller than its outbound interface MTU--did not have any multicast listener configured. It only had PIM configured. This caused the intermediate router to set the forwarding state to &#39;pruned&#39;. Given these shortcomings in the configuration, the multicast setup consisting of the three routers was clueless as to where to send the packets to. It was silently dropping the packets.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Learnings&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Before starting with analysis of any bug, first understand what the bug reporter intends to do.&lt;/li&gt;&lt;li&gt;Never trust that their claims about the correctness of the setup configuration. Discovering the shortcomings in the same due to omission or their incorrect understanding of features will save us further needless and painful analysis using a debugger.&lt;/li&gt;&lt;li&gt;Being silent about error handling in one&#39;s software is a crime for which developers will spend clueless long hours to discover it in a hard way.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/1710564760120258336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/1710564760120258336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/1710564760120258336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/1710564760120258336'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2009/05/dont-trust-bug-reporter.html' title='Don&#39;t trust a bug reporter'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-2556692370657696021</id><published>2008-06-05T11:27:00.005+05:30</published><updated>2008-06-07T14:35:24.093+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="captive portal"/><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="NBNS"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBIOS"/><category scheme="http://www.blogger.com/atom/ns#" term="network security"/><category scheme="http://www.blogger.com/atom/ns#" term="networking"/><category scheme="http://www.blogger.com/atom/ns#" term="RCA"/><category scheme="http://www.blogger.com/atom/ns#" term="root cause"/><category scheme="http://www.blogger.com/atom/ns#" term="SMB"/><title type='text'>Unable to use Windows for half minute after each login</title><content type='html'>So I was part of a software development team that worked on a &lt;a href=&quot;http://en.wikipedia.org/wiki/Network_security&quot;&gt;network security&lt;/a&gt; product of a startup company. Before allowing access to the network, the secured product would do some sort of &lt;a href=&quot;http://en.wikipedia.org/wiki/Network_access_control&quot;&gt;network access control&lt;/a&gt; by asking the user for access credentials--some sort of &lt;a href=&quot;http://en.wikipedia.org/wiki/Captive_portal&quot;&gt;captive portal&lt;/a&gt;. The issue observed was that when user accesses network using Windows as client side access platform, the network equipment to which this client was connected would prevent further access to the PC for at least half a minute. For example, if one starts a Web browser, that would freeze the graphical user interface shell of Windows for about 30 seconds. Would not interact with the user until the browser opens after half a minute. This would be repeated for any program that attempts to access network. This problem would persist until user is authenticated for network access. For the same thing, an ordinary non-secured equipment would not even let the user feel its presence in the network--meaning no delays in letting access to any network resources, or the user&#39;s own PC.&lt;br /&gt;&lt;br /&gt;Before releasing the product, it was being used internally within the development labs. There were more than hundred software development engineers and testers as users connected to the network through this security product. Apparently no one complained about or tried to find out why this half a minute delay and just moved on to accept it as a &#39;fact of life&#39;...&lt;br /&gt;&lt;br /&gt;I could not take it any more; more so as one of the members in the development team of the product. I started my analysis by thinking about what happens between the Windows GUI shell coming up and the user invoking a program that attempts to access network. I knew network traffic from Windows is quite chatty thanks to &lt;a href=&quot;http://en.wikipedia.org/wiki/SMB&quot;&gt;SMB&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/NBNS#Name_service&quot;&gt;NBNS&lt;/a&gt;. Using common sense, I suggested to let the network equipment to explicitly send connection reject message for all network access attempts from the network interface of an unauthenticated user. Earlier the equipment was configured to simply discard such traffic. The common sense paid off! Until authenticated for network access control, the user would not have access to network--the desired behavior but that would not prevent a user from interacting further with their OS shell.&lt;br /&gt;&lt;br /&gt;When unauthenticated traffic was silently dropped, the chatty protocols from user&#39;s client PC would keep retrying until their preconfigured time out occurs, which in this case was half a minute. Issue resolved without a single line change in software source code. Phew! Needless to say I was quite happy that day.</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/2556692370657696021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/2556692370657696021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/2556692370657696021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/2556692370657696021'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2008/06/unable-to-use-windows-for-half-minute.html' title='Unable to use Windows for half minute after each login'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7979257544913463246.post-6305828076637104260</id><published>2008-06-01T19:09:00.012+05:30</published><updated>2012-09-03T15:14:57.513+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="broadband"/><category scheme="http://www.blogger.com/atom/ns#" term="BSNL"/><category scheme="http://www.blogger.com/atom/ns#" term="DataOne"/><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="DG834G"/><category scheme="http://www.blogger.com/atom/ns#" term="MTU"/><category scheme="http://www.blogger.com/atom/ns#" term="Netgear"/><category scheme="http://www.blogger.com/atom/ns#" term="PMTU"/><category scheme="http://www.blogger.com/atom/ns#" term="RCA"/><category scheme="http://www.blogger.com/atom/ns#" term="root cause"/><category scheme="http://www.blogger.com/atom/ns#" term="router"/><category scheme="http://www.blogger.com/atom/ns#" term="Wireshark"/><title type='text'>Netgear DG834G used with BSNL DataOne as ISP would not open certain Web sites</title><content type='html'>Hope the experience shared here will help fellow buyers of home DSL modem routers that are used with BSNL DataOne broadband Internet service.&lt;br /&gt;
&lt;br /&gt;
Recently I purchased Netgear DG834G wireless router with a built-in DSL modem. Setting it up proved a challenge for following reasons:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;By default the modem kept insisting to pre-programmed automatic setup wizard. The wizard only chooses to auto-detect ISP settings. It could not detect settings for my ISP and at the same time did not allow any way to specify the settings manually. The method specified in the &lt;a href=&quot;http://kbserver.netgear.com/pdf/dg834g_dg834gb_ref_manual_03Jun05.pdf&quot;&gt;installation manual&lt;/a&gt; still kept following the auto-detect path. Manually entering IP address http://192.168.0.1 still took me to the same wizard thing.&lt;br /&gt;&lt;br /&gt;Solution: manual reset using the switch on the back of the device presented access to the manual configuration method. Subsequently I entered settings for the ISP and I was connected! It was a very satisfying experience thereafter. The access range of this wireless router is pretty good. I tried the farthest corners in the house with multiple walls in between the router and my PC. It just worked with the lowest signal strength of &#39;good&#39; quality (higher being &#39;very good&#39; and &#39;excellent&#39;).&lt;br /&gt;&lt;br /&gt;The joy was short lived. Next is why and how I cracked it.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;With this new router I could not open Microsoft Web site! Huh. Then I tried few other sites I use frequently. Same with download.com. Everything else would work fine: IMAP, POP, instant messenger, VPN access... Firefox would consistently not display the site contents. Internet Explorer would unreliably open the front page after taking too long. Clicking on any of the hyper links on the page would eventually time out without any data coming from remote site. I was baffled! What&#39;s about this Web sites and my new router?&lt;/li&gt;
&lt;/ol&gt;
How I narrowed down the problem and the discovery of a solution was very satisfying &lt;a href=&quot;http://en.wikipedia.org/wiki/Debugging&quot;&gt;debugging&lt;/a&gt; experience. Those who are only interested in lnowing the fix can skip to the last section &#39;Conclusion!&#39;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 130%; font-weight: bold;&quot;&gt;Narrowing down the problem from the symptoms:&lt;/span&gt;&lt;br /&gt;
First I suspected &lt;a href=&quot;http://en.wikipedia.org/wiki/Domain_Name_System&quot;&gt;DNS&lt;/a&gt; settings. Obtained the settings from ISP&#39;s Web site. Set those manually in the router instead of the default option of obtaining those from ISP. Did not help. Someone suggested me setting those manually on my PC. Still, no yield.&lt;br /&gt;
&lt;br /&gt;
The same sites would open with the ordinary modem provided by the ISP.&lt;br /&gt;
&lt;br /&gt;
Suspecting something foul with the firmware, I downloaded the latest software image from manufacturer&#39;s support Web site. As that did not help either, I started getting restless as a new buyer. I started thinking less rationally. I logged in using VPN to office. Using that method I could access the problem Web sites. Now I knew the router did not have anything  against getting data bytes from those Web sites :-) I was still doubtful about the DNS part. I decided to sleep over the problem to be able to think logically.&lt;br /&gt;
&lt;br /&gt;
When I shared the experience with my kind friends and colleagues, received following suggestions that helped me rule out certain possibilities:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;disable IPv6 access in your Internet browser on your PC&quot;&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;-- then why would the same browser open those problem sites with another modem?&lt;br /&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;don&#39;t use your router as a DNS proxy; instead &lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;set DNS manually on your PC&quot;&lt;/span&gt; -- same as above&lt;br /&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;your router has bugs; get a replacement&quot;&lt;/span&gt; -- hmm! That&#39;s easy. Then why other Web sites open and other services work? What so specific about these sites?&lt;/blockquote&gt;
I was not convinced.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 130%; font-weight: bold;&quot;&gt;The analysis&lt;/span&gt;&lt;br /&gt;
I decided to dig deeper and understand what was happening behind the scenes. This was the turning point! I captured network traffic using &lt;a href=&quot;http://www.wireshark.org/&quot;&gt;Wireshark&lt;/a&gt;. It&#39;s a software tool that allows you to capture and analyze network traffic from/ to your PC. I compared network traffic while accessing the sites that were accessible alright against the that generated to/ from the problem sites. Noticed that for the problem sites, response for HTTP GET request was not reaching my PC. The PC would keep retrying the same request for certain time without any yield then give up. At least this confirmed that DNS resolution was happening fine. So it was time to make certain educated guesses as to why the reply from the remote site would not reply!?&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;1)&lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial;&quot;&gt;DNS request initiated from my PC as a result of entering Web site address in the browser:&lt;/span&gt;&lt;/span&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      1 0.000000    192.168.x.y           218.248.255.139       DNS      Standard query A www.microsoft.com&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;2)&lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial;&quot;&gt;DNS response comes back with a list of IP addresses from where the site contents can be fetched. Notice it contains akamai.net Web cache&lt;/span&gt;&lt;br /&gt;&lt;ruler&gt;&lt;br /&gt;&lt;/ruler&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      2 0.011239    218.248.255.139       192.168.x.y           DNS      Standard query response CNAME toggle.www.ms.akadns.net CNAME g.www.ms.akadns.net CNAME &lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;lb1.www.ms.akadns.net A 207.46.193.254 A 207.46.19.190 A 207.46.19.254 A 207.46.192.254&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;3)From a list of IP addresses in the DNS response, my PC &lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;decides to initiate a TCP connection with one of the IP addresses&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      3 0.014299    192.168.x.y           207.46.193.254        TCP      rich-cp &amp;gt; http [SYN] Seq=0 Win=16384 Len=0 MSS=1460&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      4 0.444975    207.46.193.254        192.168.x.y           TCP      http &amp;gt; rich-cp [SYN, ACK] Seq=0 Ack=1 Win=8190 Len=0 MSS=1436&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      5 0.445056    192.168.x.y           207.46.193.254        TCP      rich-cp &amp;gt; http [ACK] Seq=1 Ack=1 Win=17232 Len=0&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;4)&lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;TCP/IP connection established. Now PC asks for HTTP data&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      6 0.445475    192.168.x.y           207.46.193.254        HTTP     GET / HTTP/1.1 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Internet Protocol, Src: 192.168.x.y (192.168.x.y), Dst: 207.46.193.254 (207.46.193.254)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Total Length: 451&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Protocol: TCP (0x06)&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Transmission Control Protocol, Src Port: rich-cp (2057), Dst Port: http (80), Seq: 1, Ack: 1, Len: 411&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;br /&gt;Hypertext Transfer Protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0030  43 50 5c b1 00 00 47 45 54 20 2f 20 48 54 54 50   CP\...GET / HTTP&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0040  2f 31 2e 31 0d 0a 48 6f 73 74 3a 20 77 77 77 2e   /1.1..Host: www.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0050  6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 0d 0a 55   microsoft.com..U&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;snip&gt;&lt;/snip&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;br /&gt;7 0.854522    207.46.193.254        192.168.x.y           HTTP     HTTP/1.1 302 Found  (text/html)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Internet Protocol, Src: 207.46.193.254 (207.46.193.254), Dst: 192.168.x.y (192.168.x.y)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Total Length: 553&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Time to live: 108&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;    Protocol: TCP (0x06)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Transmission Control Protocol, Src Port: http (80), Dst Port: rich-cp (2057), Seq: 1, Ack: 412, Len: 513&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Hypertext Transfer Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Line-based text data: text/html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      8 0.869677    192.168.x.y           207.46.193.254        HTTP     GET /en/us/default.aspx HTTP/1.1 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Internet Protocol, Src: 192.168.x.y (192.168.x.y), Dst: 207.46.193.254 (207.46.193.254)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Total Length: 469&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Time to live: 128&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;    Protocol: TCP (0x06)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Transmission Control Protocol, Src Port: rich-cp (2057), Dst Port: http (80), Seq: 412, Ack: 514, Len: 429&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Hypertext Transfer Protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0030  41 4f fa 75 00 00 47 45 54 20 2f 65 6e 2f 75 73   AO.u..GET /en/us&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0040  2f 64 65 66 61 75 6c 74 2e 61 73 70 78 20 48 54   /default.aspx HT&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0050  54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a 20 77 77   TP/1.1..Host: ww&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;0060  77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 0d   w.microsoft.com.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;snip&gt;&lt;/snip&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;5)&lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt; PC retries to fetch the previously asked data as it did not receive response for certain time&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;      9 3.600904    192.168.x.y           207.46.193.254        HTTP     &lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;[TCP Retransmission]&lt;/span&gt;&lt;/span&gt; GET /en/us/default.aspx HTTP/1.1 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Internet Protocol, Src: 192.168.x.y (192.168.x.y), Dst: 207.46.193.254 (207.46.193.254)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Time to live: 128&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;    Protocol: TCP (0x06)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Transmission Control Protocol, Src Port: rich-cp (2057), Dst Port: http (80), Seq: 412, &lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;Ack: 514&lt;/span&gt;&lt;/span&gt;, Len: 429&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Hypertext Transfer Protocol&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span style=&quot;color: #000099; font-family: arial; font-size: 85%;&quot;&gt;6)&lt;/span&gt;&lt;span style=&quot;font-size: 85%; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #000099;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt; Problem detected: the TCP sequence number of an eventual response coming from the remote host tells that my PC did not receive the intermediate frames that were sent by the remote site.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;No.     Time        Source                Destination           Protocol Info&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;     10 4.028862    207.46.193.254        192.168.x.y           TCP      &lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;[TCP Previous segment lost]&lt;/span&gt;&lt;/span&gt; http &amp;gt; rich-cp [ACK] &lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;Seq=4822&lt;/span&gt;&lt;/span&gt; Ack=841 Win=63430 Len=0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Internet Protocol, Src: 207.46.193.254 (207.46.193.254), Dst: 192.168.x.y (192.168.x.y)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Protocol: TCP (0x06)&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;Transmission Control Protocol, Src Port: http (80), Dst Port: rich-cp (2057), Seq: 4822, Ack: 841, Len: 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 130%; font-weight: bold;&quot;&gt;Conclusion!&lt;/span&gt;&lt;br /&gt;
So what could it be that did not deliver the missing TCP segments from the remote site? Probably the intermediate nodes between my router and the remote site. This hinted me at &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_transmission_unit&quot;&gt;MTU&lt;/a&gt; used by my router. Probably the ISP&#39;s intermediate forwarding IP nodes are not happy to receive bigger TCP segments sent by the remote site. The default MTU used by my Netgear router was 1492 (1500 max MTU of Ethernet minus 8 bytes for &lt;a href=&quot;http://en.wikipedia.org/wiki/Point-to-Point_Protocol_over_Ethernet&quot;&gt;PPPoE&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/Encapsulation_%28networking%29&quot;&gt;encapsulation&lt;/a&gt;). When I reduced the MTU to 1400 bytes, bingo! The problem sites opened up in a flash :-) I also noticed that the Web traffic response had improved compared to earlier sluggish feel.&lt;br /&gt;
&lt;br /&gt;
In case of microsoft.com noticed that after initial HTTP GET request, there was no response from the other side. After a retransmit only partial response was shown captured. That response contained TCP sequence number way beyond what my client was expecting and had acknowledged so far in the session. In other words the requester did not get the data it was expecting and the sender said I have sent all that to you. This hinted me at packet drops by&lt;br /&gt;
intermediate (ISP) nodes due to possibly oversize MTU. This did not happen with other sites because their server did not respond aggressively to cause the response packet drop due to an oversize MTU.&lt;br /&gt;
&lt;br /&gt;
Later I experimented further and found that MTU of 1460 (also seen as &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_segment_size&quot;&gt;MSS&lt;/a&gt; in the initial three-way handshake pasted above that happened with the Web server) is the maximum that can work. Now that I knew what the root cause was, searched Web and found that multiple users of the product and the ISP service &lt;a href=&quot;http://www.google.co.in/search?&amp;amp;q=dg834g+mtu+bsnl+dataone&amp;amp;btnG=Search&amp;amp;meta=&quot;&gt;have reported this issue&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Netgear knowledge base articles also address it (&lt;a href=&quot;http://kbserver.netgear.com/kb_web_files/n100603.asp&quot;&gt;article 1&lt;/a&gt;, &lt;a href=&quot;http://kb.netgear.com/app/answers/detail/a_id/1153&quot;&gt;article 2&lt;/a&gt;) in the context of AOL.&lt;br /&gt;
Another &lt;a href=&quot;http://www.netheaven.com/pmtu.html&quot;&gt;good description&lt;/a&gt; of the same issue with a formal name for it: &lt;a href=&quot;http://en.wikipedia.org/wiki/Path_MTU&quot;&gt;path MTU discovery&lt;/a&gt; (a.k.a. PMTU).&lt;br /&gt;
&lt;a href=&quot;http://www.netheaven.com/pmtulist.html&quot;&gt;List of servers&lt;/a&gt; with reportedly broken PMTU.&lt;br /&gt;
&lt;br /&gt;
:-)</content><link rel='replies' type='application/atom+xml' href='http://debugxp.blogspot.com/feeds/6305828076637104260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7979257544913463246/6305828076637104260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/6305828076637104260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7979257544913463246/posts/default/6305828076637104260'/><link rel='alternate' type='text/html' href='http://debugxp.blogspot.com/2008/06/netgear-dg834g-used-with-bsnl-dataone.html' title='Netgear DG834G used with BSNL DataOne as ISP would not open certain Web sites'/><author><name>Access</name><uri>http://www.blogger.com/profile/15332544912934407824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>