<?xml version="1.0"?>
<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd">
<abiword xmlns="http://www.abisource.com/awml.dtd" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.0.2" fileformat="1.0" styles="unlocked">
<!-- =====================================================================  -->
<!-- This file is an AbiWord document.                                      -->
<!-- AbiWord is a free, Open Source word processor.                         -->
<!-- You may obtain more information about AbiWord at www.abisource.com     -->
<!-- You should not edit this file by hand.                                 -->
<!-- =====================================================================  -->

<styles>
<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; font-variant:normal; margin-left:0pt; text-indent:0in; widows:2; font-style:normal; font-weight:normal; text-decoration:none; color:000000; line-height:1.0; text-align:left; margin-bottom:0pt; text-position:normal; margin-right:0pt; bgcolor:transparent; font-size:12pt; font-stretch:normal"/>
</styles>
<lists>
<l id="1247676751" parentid="0" type="0" start-value="1" list-delim="%L." list-decimal="."/>
</lists>
<pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
<section>
<p style="Normal"><c props="font-weight:bold; lang:en-US">Some notes on RFC1034</c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
<p style="Normal"><c props="lang:en-US">I have recently gone through RFC1034 again, now that I have implemented a working DNS server and have a pretty good idea of how DNS works.  I notice that some things are proposed which are unworkable in the real world:</c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
<p style="Normal"><c props="lang:en-US">Section 3.1 (case sensitivity):</c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
<p style="Normal" props="margin-left:10.0mm"><c props="lang:en-US">When you receive a domain name or label, you should preserver its case. The rationale for this choice is that we may someday need to add full binary domain names for new services; existing services would not be changed.</c></p>
<p style="Normal" props="margin-left:0.0mm"><c props="lang:en-US"></c></p>
<p style="Normal" props="margin-left:0.0mm"><c props="lang:en-US">This is not how to do case-sensitivity in the real world.  If DNS is going to be extended to support case sensitivity, it has to be done as follows:</c></p>
<p style="Normal" props="margin-left:0.0mm"><c props="lang:en-US"></c></p>
<p level="1" listid="1247676751" parentid="0" style="Normal" props="start-value:1; text-indent:-0.3000in; list-style:Numbered List; field-font:NULL; margin-left:0.5000in"><c props="list-tag:784260401; lang:en-US"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Preserve the case if the label in your cache (or authoritative data) is the same case as what they asked for.</c></p>
<p level="1" listid="1247676751" parentid="0" style="Normal" props="start-value:1; text-indent:-0.3000in; list-style:Numbered List; field-font:NULL; margin-left:0.5000in"><c type="list_label" props="width:0in; list-tag:290213746; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Do not preserve the case if the label in your cache (or authoritative data) is not the same case as what they ask for.  This lets the recursive server know that you are changed the case of their question.</c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal">Anyway, the root servers do not follow this.</c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal">Section 4.3.1 (recursion):</c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:10.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal">Note that the name server should never perform recursive service unless asked via RD, since this interferes with trouble shooting of name servers and their databases.</c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal">The real reason one does not want to do this is because it prevents loops.</c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal" props="text-indent:0in; margin-left:0.0mm"><c props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; color:000000; bgcolor:transparent; text-decoration:none; font-size:12pt; height:0in; text-position:normal"></c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
</section>
</abiword>
