<?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>mm &#187; web servers</title>
	<atom:link href="http://markmaunder.com/tag/web-servers/feed/" rel="self" type="application/rss+xml" />
	<link>http://markmaunder.com</link>
	<description></description>
	<lastBuildDate>Thu, 02 Feb 2012 14:24:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Routers treat HTTPS and HTTP traffic differently</title>
		<link>http://markmaunder.com/2009/10/20/routers-treat-https-and-http-traffic-differently/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://markmaunder.com/2009/10/20/routers-treat-https-and-http-traffic-differently/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 18:50:36 +0000</pubDate>
		<dc:creator>mark</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[firewalls]]></category>
		<category><![CDATA[routers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web servers]]></category>

		<guid isPermaLink="false">http://markmaunder.com/?p=313</guid>
		<description><![CDATA[Well the title says it all. Internet routers live at Layer 3 [the Network Layer] of the OSI model which I&#8217;ve included to the left. HTTP and HTTPS live at Layer 7 (Application layer) of the OSI model, although some &#8230; <a href="http://markmaunder.com/2009/10/20/routers-treat-https-and-http-traffic-differently/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a style="border-width: 0px;" href="http://markmaunder.com/wp-content/uploads/2009/10/Osi-model-jb1.png"><img class="alignleft size-full wp-image-314" style="border: 0pt none;" title="OSI Network Model" src="http://markmaunder.com/wp-content/uploads/2009/10/Osi-model-jb1.png" alt="OSI Network Model" width="404" height="467" /></a></p>
<p>Well the title says it all. Internet routers live at Layer 3 [the Network Layer] of the OSI model which I&#8217;ve included to the left. HTTP and HTTP<span style="color: #ff0000;">S</span> live at Layer 7 (Application layer) of the OSI model, although some may argue HTTP<span style="color: #ff0000;">S</span> lives at Layer 6.</p>
<p>So how is it that Layer 3 devices like routers treat HTTP<span style="color: #ff0000;">S</span> traffic differently?</p>
<p>Because HTTP<span style="color: #ff0000;">S</span> servers set the DF or Do Not Fragment IP flag on packets and regular HTTP servers do not.</p>
<p>This matters because HTTP and HTTP<span style="color: #ff0000;">S</span> usually transfer a lot of data. That means that the packets are usually quite large and are often the maximum allowed size.</p>
<p>So if a server sends out a very big HTTP packet and it goes through a route on the network that does not allow packets that size, then the router in question simply breaks the packet up.</p>
<p>But if a server sends out a big HTTP<span style="color: #ff0000;">S</span> packet and it hits a route that doesn&#8217;t allow packets that size, the routers on that route can&#8217;t break the packet up. So they drop the packet and send back an ICMP message telling the machine that sent the big packet to adjust it&#8217;s MTU (maximum transfer unit) size and resend the packet. This is called <a href="http://en.wikipedia.org/wiki/Path_MTU_discovery">Path MTU Discovery</a>.</p>
<p>This can create some interesting problems that don&#8217;t exist with plain HTTP. For example, if your ops team has gotten a little overzealous with security and decided to filter out all ICMP traffic, your web server won&#8217;t receive any of those ICMP messages I&#8217;ve described above telling it to break up it&#8217;s packets and resend them. So large secure packets that usually are sent halfway through a secure HTTP<span style="color: #ff0000;">S</span> connection will just be dropped. So visitors to your website who are across network paths that need to have their packets broken up into smaller pieces will see half-loaded pages from the secure part of your site.</p>
<p>If you have the problem I&#8217;ve described above there are two solutions: If you&#8217;re a webmaster, make sure your web server can receive ICMP messages [You need to allow ICMP code 4 "Fragmentation needed and DF bit set"]. If you&#8217;re a web surfer (client) and are trying to access a secure site that has ICMP disabled, adjust your network card&#8217;s MTU to be smaller than the default (usually the default is 1500 for ethernet).</p>
<p>But the bottom line is that if everything else is working fine and you are having a problem sending or receiving HTTP<span style="color: #ff0000;">S</span> traffic, know that the big difference with HTTP<span style="color: #ff0000;">S</span> traffic over regular web traffic is that the packets can&#8217;t be broken up.</p>
]]></content:encoded>
			<wfw:commentRss>http://markmaunder.com/2009/10/20/routers-treat-https-and-http-traffic-differently/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

