<?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>danielmiessler.com &#187; Protocols</title>
	<atom:link href="http://danielmiessler.com/categories/protocols/feed" rel="self" type="application/rss+xml" />
	<link>http://danielmiessler.com</link>
	<description>grep understanding</description>
	<lastBuildDate>Thu, 24 May 2012 04:36:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Eliminating &#8220;www&#8221; [Part 2]</title>
		<link>http://danielmiessler.com/blog/eliminating-www-part-2</link>
		<comments>http://danielmiessler.com/blog/eliminating-www-part-2#comments</comments>
		<pubDate>Thu, 26 Jul 2007 14:58:51 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://dmiessler.com/standards/eliminating-www-part-2</guid>
		<description><![CDATA[I posted recently about why we no longer need to enter &#8220;www&#8221; when visiting websites in a browser. The topic is evidently an emotional one as I&#8217;ve received a ton of feedback on the matter. For those that missed it, here&#8217;s the basic argument: The reason for using the “www” hostname prefix when entering websites [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dmiessler.com/standards/its-time-to-drop-the-www">I posted recently</a> about why we no longer need to enter &#8220;www&#8221; when visiting websites in a browser. The topic is evidently an emotional one as I&#8217;ve received a <em>ton</em> of feedback on the matter. For those that missed it, here&#8217;s the basic argument:</p>

<blockquote>The reason for using the “www” hostname prefix when entering websites is now a matter of history. It’s old. Deprecated. Outdated. Antiquated. Like websites that only work in Internet Explorer, sites that break when you use the domain alone should be firmly encouraged to join the 21st century. It&#8217;s wasteful to type, and it&#8217;s cumbersome to pronounce. Consider that it takes <strong>nine</strong> syllables to properly enunciate <strong>three</strong> characters.

Some argue that there is still a good reason to separate traffic destined to web servers from that destined to the domain itself. I think this is precisely the idea that&#8217;s become obsolete. The reason for that differentiation in the past was that the other protocols were as prolific (or even more prolific) than HTTP at the time.  HTTP was just one of many, so it made no sense at the time to give any type of traffic a preference by pointing the root of a given domain to the system that hosted that content.

Things are different now. HTTP is utterly dominant. Any site interacting with the public on any serious scale does so via a web server, so making this the default is a matter of obvious practicality. This doesn&#8217;t mean we should abolish the use of hostnames. Hostnames are excellent tools for separating traffic and making meaningful associations with users. The argument here is simply for having the root point to the web content.</blockquote>

<h4>Compatibility</h4>

<p>There are four basic levels of no-www compatibility:</p>

<ol>
    <li>Your site is available via www.domain.tld only. If you use the domain alone your request will fail.</li>
    <li>Your site is available via both www.domain.tld and domain.tld, but www.domain.tld does <strong>not</strong> redirect to domain.tld.</li>
    <li>Your site is available via both www.domain.tld and domain.tld, and www.domain.tld <strong>does</strong> redirect to domain.tld.</li>
    <li>Your site is available only via domain.tld and www.domain.tld will break.</li>
</ol>

<p>I personally recommend webmasters implement #3, and don&#8217;t advise #4 for any reason. The discussion here is about improving usability through simplification, not breaking things for the satisfaction of being pedantic.:</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/its-time-to-drop-the-www" rel="bookmark" class="crp_title">It&#8217;s Time to Drop the &#8220;www&#8221;</a></li><li><a href="http://danielmiessler.com/blog/no-more-www" rel="bookmark" class="crp_title">No More &#8220;www&#8221;</a></li><li><a href="http://danielmiessler.com/blog/www-stands-for-worthless3" rel="bookmark" class="crp_title">WWW Stands For Worthless<sup>3</sup></a></li><li><a href="http://danielmiessler.com/blog/a-new-domain-possibly" rel="bookmark" class="crp_title">A New Domain &#8212; Possibly</a></li><li><a href="http://danielmiessler.com/blog/rsnakes-fierce-domain-scanner" rel="bookmark" class="crp_title">RSnake&#8217;s Fierce Domain Scanner</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/eliminating-www-part-2/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Time to Drop the &#8220;www&#8221;</title>
		<link>http://danielmiessler.com/blog/its-time-to-drop-the-www</link>
		<comments>http://danielmiessler.com/blog/its-time-to-drop-the-www#comments</comments>
		<pubDate>Tue, 24 Jul 2007 20:38:08 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1471</guid>
		<description><![CDATA[It&#8217;s no longer necessary to use &#8220;www&#8221; when referring to websites. It&#8217;s a waste of storage, a waste of ink, and it takes 2-5 times as long to pronounce as saying the domain by itself. Enter no-www. No-www is an initiative to make all websites accessible from both the http://www.example.com/ and http://example.com/ forms of their [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no longer necessary to use &#8220;www&#8221; when referring to websites. It&#8217;s a waste of storage, a waste of ink, and it takes 2-5 times as long to pronounce as saying the domain by itself. Enter <a href="http://en.wikipedia.org/wiki/No-www">no-www</a>.</p>

<blockquote><img src="http://no-www.org/images/blog-button.gif" alt="no-www" />

No-www is an initiative to make all websites accessible from both the http://www.example.com/ and http://example.com/ forms of their names. The reason behind it is to standardize domain names providing web content and to avoid typing unnecessary letters. &#8212; Wikipedia</blockquote>

<p>The reason for using the “www” hostname prefix when entering websites is now a matter of history. It’s old. Deprecated. Outdated. Antiquated. Like websites that only work in Internet Explorer, sites that break when you use the domain alone should be firmly encouraged to join the 21st century. It’s wasteful to type, and it’s cumbersome to pronounce. Consider that it takes <strong>nine</strong> syllables to properly enunciate <strong>three</strong> characters.</p>

<p align="center">Some argue that there is still a good reason to separate traffic destined to web servers from that destined to the domain itself. <strong>I think this is precisely the idea that’s become obsolete.</strong> The reason for that differentiation in the past was that the other protocols were as prolific (or even more prolific) than HTTP at the time. HTTP was just one of many options, so it made no sense to give any type of traffic a preference by pointing the root of a given domain to the system that hosted that content.</p>

<p><strong>Things are different now. HTTP is utterly dominant.</strong> Sites interacting with the public on any serious scale does so via a web server, so making this the default is a matter of obvious practicality. <strong>This doesn’t mean we should abolish the use of hostnames.</strong> Hostnames are excellent tools for separating traffic and making meaningful associations with users. The argument here is simply for having the root point to the web content as a matter of convention.</p>

<p>As for people who include it when speaking, there&#8217;s no need to be rude when correcting them. Just kindly inform them that it&#8217;s faster if they just go to the domain itself, and that the &#8220;www&#8221; isn&#8217;t needed.</p>

<p>For more information, check out <a href="http://no-www.org/faq.php">the no-www FAQ</a>, and feel free to fly <a href="http://no-www.org/images/blog-button.gif">their sitecon</a> seen above.:</p>

<p>[Edited 07.27.07]</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/no-more-www" rel="bookmark" class="crp_title">No More &#8220;www&#8221;</a></li><li><a href="http://danielmiessler.com/blog/eliminating-www-part-2" rel="bookmark" class="crp_title">Eliminating &#8220;www&#8221; [Part 2]</a></li><li><a href="http://danielmiessler.com/blog/saying-no-to-www-a-fortune-50-company-analysis" rel="bookmark" class="crp_title">Saying No To &#8220;www&#8221;: A Fortune 50 Company Analysis</a></li><li><a href="http://danielmiessler.com/blog/www-stands-for-worthless3" rel="bookmark" class="crp_title">WWW Stands For Worthless<sup>3</sup></a></li><li><a href="http://danielmiessler.com/blog/this-link-could-have-been-anything-reddit-spam-issue" rel="bookmark" class="crp_title">This Link Could Have Been Anything [Reddit Spam Issue]</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/its-time-to-drop-the-www/feed</wfw:commentRss>
		<slash:comments>267</slash:comments>
		</item>
		<item>
		<title>A Definition of Web 2.0 [Video]</title>
		<link>http://danielmiessler.com/blog/a-definition-of-web-20-video</link>
		<comments>http://danielmiessler.com/blog/a-definition-of-web-20-video#comments</comments>
		<pubDate>Sat, 14 Jul 2007 21:19:51 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1456</guid>
		<description><![CDATA[Related ContentA Condensed, Illustrated Argument Against Religion by Christopher HitchensThe Laughing Baby CollectionHilarious Pro-Christian Video (No, Really)Free HugsRead a Book: The Video You Never Thought BET Would Show]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/6gmP4nk0EOE"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/6gmP4nk0EOE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/a-condensed-illustrated-argument-against-religion-by-christopher-hitchens" rel="bookmark" class="crp_title">A Condensed, Illustrated Argument Against Religion by Christopher Hitchens</a></li><li><a href="http://danielmiessler.com/blog/the-laughing-baby-collection" rel="bookmark" class="crp_title">The Laughing Baby Collection</a></li><li><a href="http://danielmiessler.com/blog/hilarious-pro-christian-video-no-really" rel="bookmark" class="crp_title">Hilarious Pro-Christian Video (No, Really)</a></li><li><a href="http://danielmiessler.com/blog/free-hugs" rel="bookmark" class="crp_title">Free Hugs</a></li><li><a href="http://danielmiessler.com/blog/read-a-book-the-video-you-never-thought-bet-would-show" rel="bookmark" class="crp_title">Read a Book: The Video You Never Thought BET Would Show</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/a-definition-of-web-20-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Introduction To IMAP IDLE: Why Yahoo!&#8217;s iPhone Push System Isn&#8217;t Working So Well</title>
		<link>http://danielmiessler.com/blog/an-introduction-to-imap-idle-why-yahoos-iphone-push-system-isnt-working-so-well</link>
		<comments>http://danielmiessler.com/blog/an-introduction-to-imap-idle-why-yahoos-iphone-push-system-isnt-working-so-well#comments</comments>
		<pubDate>Tue, 03 Jul 2007 04:08:26 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1435</guid>
		<description><![CDATA[I just finished a short write-up on IMAP IDLE &#8212; a system that&#8217;s often called an email &#8220;push&#8221; technology. Here are a couple of excerpts: IDLE is not &#8212; according to my definition above &#8212; a true push technology. IDLE actually requires an active connection in order to work, and that connection cannot be initiated [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished a short write-up on <a href="http://www.ietf.org/rfc/rfc2177.txt">IMAP IDLE</a> &#8212; a system that&#8217;s often called an email &#8220;push&#8221; technology. Here are a couple of excerpts:</p>

<blockquote>IDLE is not &#8212; according to my definition above &#8212; a true push technology. IDLE actually requires an active connection in order to work, and that connection cannot be initiated by the server.</blockquote>

<p>[Update]: Yahoo! uses P-IMAP, not IDLE to implement &#8220;push&#8221;&#8230;[ Link: <a href="http://dmiessler.com/study/imap_idle/">An Introduction to IMAP IDLE</a> ]</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/hidden-leopard-features-mailapp-imap-idle-support-screenshot" rel="bookmark" class="crp_title">Hidden Leopard Features: Mail.app IMAP IDLE Support [Screenshot]</a></li><li><a href="http://danielmiessler.com/blog/mailapp-is-imap-retarded" rel="bookmark" class="crp_title">Mail.app is IMAP-Retarded</a></li><li><a href="http://danielmiessler.com/blog/postfix-courier-imap-mailapp-and-certificates" rel="bookmark" class="crp_title">Postfix, Courier-Imap, Mail.app, and Certificates</a></li><li><a href="http://danielmiessler.com/blog/how-to-migrate-your-custom-domains-email-to-google-and-maintain-your-addresses" rel="bookmark" class="crp_title">How to Migrate Your Custom Domain&#8217;s Email to Google (And Maintain Your Addresses)</a></li><li><a href="http://danielmiessler.com/blog/linux-good-community-good-distro" rel="bookmark" class="crp_title">Linux: Good Community = Good Distro</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/an-introduction-to-imap-idle-why-yahoos-iphone-push-system-isnt-working-so-well/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The Beauty of the Diffie-Hellman Protocol</title>
		<link>http://danielmiessler.com/blog/the-beauty-of-the-diffie-hellman-protocol</link>
		<comments>http://danielmiessler.com/blog/the-beauty-of-the-diffie-hellman-protocol#comments</comments>
		<pubDate>Fri, 02 Mar 2007 03:20:02 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1182</guid>
		<description><![CDATA[The Beauty of the Diffie-Hellman Protocol Related ContentUnderstanding The Diffie-Hellman ProtocolDiffie-HellmanProtocols: Diffie-Hellman ExplainedExtracting Meaning from EmptinessThe Pubsubhubub Protocol]]></description>
			<content:encoded><![CDATA[<p><a href="http://dmiessler.com/study/diffiehellman/">The Beauty of the Diffie-Hellman Protocol</a></p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/understanding-the-diffie-hellman-protocol" rel="bookmark" class="crp_title">Understanding The Diffie-Hellman Protocol</a></li><li><a href="http://danielmiessler.com/blog/diffie-hellman" rel="bookmark" class="crp_title">Diffie-Hellman</a></li><li><a href="http://danielmiessler.com/blog/protocols-diffie-hellman-explained" rel="bookmark" class="crp_title">Protocols: Diffie-Hellman Explained</a></li><li><a href="http://danielmiessler.com/blog/extracting-meaning-from-emptiness" rel="bookmark" class="crp_title">Extracting Meaning from Emptiness</a></li><li><a href="http://danielmiessler.com/blog/the-pubsubhubub-protocol" rel="bookmark" class="crp_title">The Pubsubhubub Protocol</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/the-beauty-of-the-diffie-hellman-protocol/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security + Language = Shibboleth</title>
		<link>http://danielmiessler.com/blog/security-language-shibboleth</link>
		<comments>http://danielmiessler.com/blog/security-language-shibboleth#comments</comments>
		<pubDate>Tue, 06 Feb 2007 07:32:47 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Language]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1108</guid>
		<description><![CDATA[While listening to an academic debate on Atheism the other day I came across one of the coolest words I&#8217;d seen in years: Shibboleth. Shibboleth is the Hebrew word that literally means &#8220;ear of wheat&#8221;. In the Hebrew Bible, pronunciation of this word was used to distinguish members of a group whose dialect lacked a [...]]]></description>
			<content:encoded><![CDATA[<p>While listening to an academic debate on Atheism the other day I came across one of the coolest words I&#8217;d seen in years: <strong><a href="http://en.wikipedia.org/wiki/Shibboleth">Shibboleth</a></strong>.</p>

<blockquote>Shibboleth is the Hebrew word that literally means &#8220;ear of wheat&#8221;. In the Hebrew Bible, pronunciation of this word was used to distinguish members of a group whose dialect lacked a &#8220;sh&#8221; sound from members of a group whose dialect included such a sound. The consequences of getting it wrong were fatal: Today, &#8220;shibboleth&#8221; refers to words and phrases that can be used in a similar way—to distinguish members of a group from outsiders.</blockquote>

<p>So basically, a Shibboleth is something that you prompt for, and based on the way the response is given you can tell whether the person is part of the secret club or not. The cool part about it is that, at least in the traditional sense, <em>the person being tested was <strong>not physically able</strong> to say the password correctly.</em></p>

<p>Very cool stuff.</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/almost-a-shibboleth" rel="bookmark" class="crp_title">Almost a Shibboleth</a></li><li><a href="http://danielmiessler.com/blog/shibboleths-and-logical-fallacies" rel="bookmark" class="crp_title">Shibboleths and Logical Fallacies</a></li><li><a href="http://danielmiessler.com/blog/ashkenazi-jews-wikipedia" rel="bookmark" class="crp_title">Ashkenazi Jews | Wikipedia</a></li><li><a href="http://danielmiessler.com/blog/instant-messaging-kills-babies" rel="bookmark" class="crp_title">Instant Messaging Kills Babies</a></li><li><a href="http://danielmiessler.com/blog/why-atheism-isnt-a-belief" rel="bookmark" class="crp_title">The Definition Of Atheism, And Why It Is *NOT* A Belief</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/security-language-shibboleth/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>An ICMP Reference</title>
		<link>http://danielmiessler.com/blog/an-icmp-reference</link>
		<comments>http://danielmiessler.com/blog/an-icmp-reference#comments</comments>
		<pubDate>Fri, 02 Feb 2007 17:41:38 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[ICMP]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/1104</guid>
		<description><![CDATA[I&#8217;ve just added a brief ICMP primer to my /study area. &#62; An ICMP Primer  Related ContentAn Nmap Primerdanielmiessler.com/study/subnettingA Character Mapping and Encoding PrimerDaniel&#8217;s Information Security Concepts PrimerA Tcpdump Primer]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just added <a href="http://dmiessler.com/study/icmp/">a brief ICMP primer</a> to <a href="http://dmiessler.com/study/">my /study area</a>.</p>

<p><a href="http://dmiessler.com/study/icmp/">&gt; An ICMP Primer </a></p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/an-nmap-primer" rel="bookmark" class="crp_title">An Nmap Primer</a></li><li><a href="http://danielmiessler.com/blog/dmiesslercomstudysubnetting" rel="bookmark" class="crp_title">danielmiessler.com/study/subnetting</a></li><li><a href="http://danielmiessler.com/blog/a-character-mapping-and-encoding-primer" rel="bookmark" class="crp_title">A Character Mapping and Encoding Primer</a></li><li><a href="http://danielmiessler.com/blog/daniels-information-security-concepts-primer" rel="bookmark" class="crp_title">Daniel&#8217;s Information Security Concepts Primer</a></li><li><a href="http://danielmiessler.com/blog/a-tcpdump-primer" rel="bookmark" class="crp_title">A Tcpdump Primer</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/an-icmp-reference/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To Remember Your TCP Flags</title>
		<link>http://danielmiessler.com/blog/how-to-remember-your-tcp-flags</link>
		<comments>http://danielmiessler.com/blog/how-to-remember-your-tcp-flags#comments</comments>
		<pubDate>Mon, 29 Aug 2005 15:52:06 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://dmiessler.com/?p=479</guid>
		<description><![CDATA[Many people are familiar with the concept of a mnemonic [nəˈmɑnɪk] &#8212; a memory device that uses a phrase based on the first letter of words in a list. Perhaps the most popular of these in the field of networking is the one for the OSI Model. The mnemonic is: All People Seem To Need [...]]]></description>
			<content:encoded><![CDATA[<p>Many people are familiar with the concept of a <a href="http://en.wikipedia.org/wiki/Mnemonic">mnemonic</a> [nəˈmɑnɪk] &#8212; a memory device that uses a phrase based on the first letter of words in a list. Perhaps the most popular of these in the field of networking is the one for the <a href="http://en.wikipedia.org/wiki/OSI_model">OSI Model</a>. The mnemonic is:</p>

<p><em><strong>A</strong>ll <strong>P</strong>eople <strong>S</strong>eem <strong>T</strong>o <strong>N</strong>eed <strong>D</strong>ata <strong>P</strong>rocessing.</em></p>

<p>Well, for those that deal with <a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol">TCP </a>a lot, I thought it might be helpful to have a mnemonic for the TCP flags as well. What I&#8217;ve come up with is:</p>

<p><em><strong>U</strong>nskilled <strong>A</strong>ttackers <strong>P</strong>ester <strong>R</strong>eal <strong>S</strong>ecurity <strong>F</strong>olks</em></p>

<p>Unskilled = URG
Attackers = ACK
Pester = PSH
Real = RST
Security = SYN
Folks = FIN</p>

<p>The way this helps me the most is when isolating traffic to capture using <a href="http://en.wikipedia.org/wiki/Tcpdump">Tcpdump</a>. It&#8217;s possible, for example, to capture only SYNs (new connection requests), only RSTs (immediate session teardowns), or <em>any</em> combination of the six flags really. As noted in <a href="http://dmiessler.com/study/tcpdump">my own little Tcpdump tutorial</a>, you can capture these various flags like so:</p>

<p><strong>Find all SYN packets</strong>
<code>tcpdump 'tcp[13] &amp; 2 != 0'</code></p>

<p><strong>Find all RST packets</strong>
<code>tcpdump 'tcp[13] &amp; 4 != 0'</code></p>

<p><strong>Find all ACK packets</strong>
<code>tcpdump 'tcp[13] &amp; 16 != 0'</code></p>

<p>Notice the SYN example has the number 2 in it, the RST the number 4, and the ACK the number 16. These numbers correspond to where the TCP flags fall on the binary scale. So when you write out:</p>

<p><strong>U A P R S F</strong></p>

<p>&#8230;that corresponds to:</p>

<p><strong>32 16 8 4 2 1</strong></p>

<p>So as you read the SYN capture <code>tcpdump 'tcp[<strong>13</strong>] &amp; <strong>2</strong> != 0'</code>, you&#8217;re saying find the <strong>13th</strong> byte in the TCP header, and only grab packets where the flag in the <strong>2</strong>nd bit is not zero. Well if you go from right to left in the UAPRSF string, you see that the spot where 2 falls is where the S is, and that&#8217;s how why you&#8217;re capturing only SYN packets when you apply that filter.</p>

<p>Remembering these flags and how to isolate them can go a long way in helping low-level network troubleshooting/security work by isolating what it is you want to see and/or capture. And of course the more you can isolate what you want to see, the faster you can solve the problem. I encourage anyone not making use of this powerful feature already to go ahead and add it to their repertoire.</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/english-precision-matters" rel="bookmark" class="crp_title">English: Precision Matters</a></li><li><a href="http://danielmiessler.com/blog/character-encoding-which-schemes-encode-to-which-sizes" rel="bookmark" class="crp_title">Character Encoding: Which Schemes Encode to Which Sizes?</a></li><li><a href="http://danielmiessler.com/blog/linux-xargs-vs-exec" rel="bookmark" class="crp_title">Linux: <code>xargs</code> vs. <code>exec {}</code></a></li><li><a href="http://danielmiessler.com/blog/7-relatively-unknown-but-very-powerful-vim-features" rel="bookmark" class="crp_title">7 Relatively Unknown But Very Powerful Vim Features</a></li><li><a href="http://danielmiessler.com/blog/never-argue-again-about-the-pronunciation-of-os-x-proof-included" rel="bookmark" class="crp_title">Never Argue Again About The Pronunciation Of &#8220;OS X&#8221; (Proof Included)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/how-to-remember-your-tcp-flags/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>An Illustrated Guide to IPSec</title>
		<link>http://danielmiessler.com/blog/an-illustrated-guide-to-ipsec</link>
		<comments>http://danielmiessler.com/blog/an-illustrated-guide-to-ipsec#comments</comments>
		<pubDate>Wed, 24 Aug 2005 22:05:43 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Protocols]]></category>

		<guid isPermaLink="false">http://dmiessler.com/?p=475</guid>
		<description><![CDATA[An Illustrated Guide to IPSec For a customer project, I had to dive into the IPSec protocols at a very low level, and it was a real learning experience for me. I&#8217;d been using IPSec to set up network-to-network VPNs for a long time,&#8230; (Source: Steve Friedl) Related ContentPrivacy: Clueless CompaniesCryptographic Hashes In The NewsUSPS [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.unixwiz.net/archives/2005/08/an_illustrated.html">An Illustrated Guide to IPSec</a></p>

<blockquote>For a customer project, I had to dive into the IPSec protocols at a very low level, and it was a real learning experience for me. I&#8217;d been using IPSec to set up network-to-network VPNs for a long time,&#8230;</blockquote>

<p>(Source: <a href="http://www.unixwiz.net/blog/">Steve Friedl</a>)</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/privacy-clueless-companies" rel="bookmark" class="crp_title">Privacy: Clueless Companies</a></li><li><a href="http://danielmiessler.com/blog/cryptographic-hashes-in-the-news" rel="bookmark" class="crp_title">Cryptographic Hashes In The News</a></li><li><a href="http://danielmiessler.com/blog/usps-vulnerability" rel="bookmark" class="crp_title">USPS Vulnerability</a></li><li><a href="http://danielmiessler.com/blog/using-posfix-to-reject-spam-the-helo-technique" rel="bookmark" class="crp_title">Using Posfix To Reject Spam: The HELO Technique</a></li><li><a href="http://danielmiessler.com/blog/the-procrastination-uberpost" rel="bookmark" class="crp_title">The Procrastination Uberpost</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/an-illustrated-guide-to-ipsec/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking A Peek At Google Talk Authentication</title>
		<link>http://danielmiessler.com/blog/taking-a-peek-at-google-talk-authentication</link>
		<comments>http://danielmiessler.com/blog/taking-a-peek-at-google-talk-authentication#comments</comments>
		<pubDate>Wed, 24 Aug 2005 14:54:37 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://dmiessler.com/?p=474</guid>
		<description><![CDATA[So as per my previous post on the matter, and the buzz in general, I decided to go ahead and give the official client a whirl. I started using the new service via iChat and Adium last night, but wanted to see how the actual Google client looked and take a peek at how it [...]]]></description>
			<content:encoded><![CDATA[<p>So as per <a href="http://dmiessler.com/archives/472">my previous post</a> on the matter, and <a href="http://www.cnn.com/2005/TECH/internet/08/24/google.messaging.reut/index.html">the buzz</a> in general, I decided to go ahead and give <a href="http://www.google.com/talk">the official client</a> a whirl. I started using the new service via <a href="http://www.apple.com/ichat">iChat</a> and <a href="http://www.google.com/url?sa=t&#038;ct=res&#038;cd=1&#038;url=http%3A//www.adiumx.com/&#038;ei=u38MQ-_KBLn84AHz-OGZAg&#038;sig2=tD_MKIviuebeiJuNwOQS2w">Adium </a>last night, but wanted to see how the actual Google client looked and take a peek at how it works.</p>

<p>As you&#8217;ve probably heard, the system is based on the <a href="http://www.jabber.org/about/overview.shtml">Jabber </a>protocol &#8212; which is basically a set of standards built on streaming XML. <a href="http://www.jabber.org/protocol/">Here are some details</a> if you&#8217;re interested.</p>

<p>Anyway, my curiousity is focused around the authentication piece, so I fired up a sniffer and watched myself login. My side first sent an &#8220;auth xmlns&#8221; that included an X-GOOGLE-TOKEN (I can&#8217;t include the actual content since WordPress is eating the XML) which consisted of a very long alphanumeric string. The server then responded with a &#8220;success xmlns&#8221; response. After that the exchange of information ensued.</p>

<p>One key piece of information here is the fact that Google&#8217;s Jabber implementation doesn&#8217;t currently support encryption. From their website:</p>

<blockquote>Google Talk currently does not encrypt chats or calls. But we are working hard to make many improvements to Google Talk while it is in beta, and we plan to fully support encryption of chats and calls before our official release.</blockquote>

<p>No big deal &#8212; it&#8217;s still beta.</p>

<p>Anyway, I have to get back to work but I&#8217;ll be looking more into this later&#8230;</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/google-im-vs-skype" rel="bookmark" class="crp_title">Google IM vs. Skype</a></li><li><a href="http://danielmiessler.com/blog/a-google-talk-botnet" rel="bookmark" class="crp_title">A Google Talk Botnet?</a></li><li><a href="http://danielmiessler.com/blog/google-voice-available-for-iphone" rel="bookmark" class="crp_title">Google Voice Available for iPhone</a></li><li><a href="http://danielmiessler.com/blog/google-talk-contact-list-problems" rel="bookmark" class="crp_title">Google Talk Contact List Problems</a></li><li><a href="http://danielmiessler.com/blog/a-list-of-googles-dns-servers" rel="bookmark" class="crp_title">A List of Google&#8217;s DNS Servers</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/taking-a-peek-at-google-talk-authentication/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Protocols: Diffie-Hellman Explained</title>
		<link>http://danielmiessler.com/blog/protocols-diffie-hellman-explained</link>
		<comments>http://danielmiessler.com/blog/protocols-diffie-hellman-explained#comments</comments>
		<pubDate>Wed, 10 Aug 2005 05:24:13 +0000</pubDate>
		<dc:creator>Daniel Miessler</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Protocols]]></category>

		<guid isPermaLink="false">http://dmiessler.com/archives/437</guid>
		<description><![CDATA[Diffie-Hellman is a key agreement protocol, and was developed by Diffie and Hellman (imagine that) in 1976. The entire purpose of Diffie-Hellman is to allow two entities to exchange a secret over a public medium without having anything shared beforehand. Here is how it works: Two values, called &#8220;Diffie-Hellman parameters&#8221;, are at the core of [...]]]></description>
			<content:encoded><![CDATA[<p><A HREF="http://en.wikipedia.org/wiki/Diffie-Hellman">Diffie-Hellman</A> is a key agreement protocol, and was developed by Diffie and Hellman (imagine that) in 1976. <EM>The entire purpose of Diffie-Hellman is to allow two entities to exchange a secret over a public medium without having anything shared beforehand.</EM> Here is how it works:</p>

<p>Two values, called &#8220;Diffie-Hellman parameters&#8221;, are at the core of this protocol, and they consist of a very large prime number &#8216;p&#8217;, and a second related &#8220;generator&#8221; number that is smaller than &#8216;p&#8217;, called &#8216;g&#8217;. The value for &#8216;g&#8217; is tied very strongly to its associated &#8216;p&#8217; value. The nature of this relationship is that for each number &#8216;n&#8217;, there is a power &#8216;k&#8217; of &#8216;g&#8217; such that n = g^k % p. Each host must agree on these two parameters (&#8216;p&#8217; and &#8216;g&#8217;) in order for the protocol to work. Finally, a third and private value, called &#8216;x&#8217; is also generated for each host. This value, unlike &#8216;p&#8217; and &#8216;g&#8217;, is not shared.</p>

<p>Public keys (to be exchanged with each other) are then generated with this function:
<code>
y = g^x % p</code></p>

<p>&#8230;or in other words, take value &#8216;g&#8217; and raise it to the power of value &#8216;x&#8217;, divide that by &#8216;p&#8217;, and your remainder is your public value &#8216;y&#8217;.</p>

<p>Then, the two parties exchange their y&#8217;s with each other and the exchanged numbers are used to create the shared secret &#8216;z&#8217; as follows:
<code>
z = y^x % p</code></p>

<p>&#8230;or in other words, take the exchanged public key &#8216;y&#8217; and raise it to the power of your private key &#8216;x&#8217;, and divide that by the shared value &#8216;p&#8217;. The shared secret, &#8216;z&#8217;, is the remainder of that operation.</p>

<p><b>The beauty of Diffie-Hellman is that both parties will end up with the same value for &#8216;z&#8217;!</b> And &#8216;z&#8217; makes an outstanding key for whatever encryption algorithm they decide on using for the rest of their communication.</p>

<p>This works because:
<code>
z = (g^x % p)^x' % p = (g^x' % p)^x % p</code></p>

<p>The key concept here is that the portion of the equation above in parenthesis is <EM>the other host&#8217;s <em>public</em> key.</EM> Notice that it has the other host&#8217;s private value in it. That&#8217;s what makes the attainment of a mutual secret possible mathematically.</p>

<p><em>The magic of Diffie-Hellman is that you not only end up with a shared secret, but the secret is never sent over the wire. Each side comes up with it independently, and that&#8217;s what makes the protocol so beautiful.</em>:</p>
<div id="crp_related"><h3>Related Content</h3><ul><li><a href="http://danielmiessler.com/blog/understanding-the-diffie-hellman-protocol" rel="bookmark" class="crp_title">Understanding The Diffie-Hellman Protocol</a></li><li><a href="http://danielmiessler.com/blog/diffie-hellman" rel="bookmark" class="crp_title">Diffie-Hellman</a></li><li><a href="http://danielmiessler.com/blog/the-beauty-of-the-diffie-hellman-protocol" rel="bookmark" class="crp_title">The Beauty of the Diffie-Hellman Protocol</a></li><li><a href="http://danielmiessler.com/blog/dmzs-nating-vs-using-public-addresses" rel="bookmark" class="crp_title">DMZs: NATing vs. Using Public Addresses</a></li><li><a href="http://danielmiessler.com/blog/do-a-google-search-for-ip-and-get-your-ip-address" rel="bookmark" class="crp_title">Do a Google Search for &#8216;ip&#8217; and Get Your IP Address</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://danielmiessler.com/blog/protocols-diffie-hellman-explained/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

