[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [idn] Canonicalization: [28] through [31]



At 9:22 AM -0400 6/28/00, J. William Semich wrote:
"The protocol MUST specify canonicalization. If canonicalization is done at
the server, the server should be able to recognize requests that have
already been canonicalized and should treat them as such."

Sorry to sound like a parrot here, but the requirements document has a *very* good picture of the relevant parts of the DNS; we should use the terminology from the picture.


To refresh people's memory, the picture is:

+---------------+                            +---------------------+
| Application   |                            | (Base data)         |
+---------------+                            +---------------------+
      |  Application service interface                 |
      |  For ex. GethostbyXXXX interface               | (no standard)
+---------------+                            +---------------------+
| Resolver      |                            | Auth DNS server     |
+---------------+                            +---------------------+
      |     <-----   DNS service interface   ----->    |
+------------------------------------------------------------------+
|  DNS service                                                     |
|  +-----------------------+         +--------------------+        |
|  | Forwarding DNS server |         | Caching DNS server |        |
|  +-----------------------+         +--------------------+        |
|                                                                  |
|                 +-------------------------+                      |
|                 | Parent-zone DNS servers |                      |
|                 +-------------------------+                      |
|                                                                  |
|                 +-------------------------+                      |
|                 | Root DNS servers        |                      |
|                 +-------------------------+                      |
|                                                                  |
+------------------------------------------------------------------+

Thus, the wording you are proposing would need to be changed to:

"The protocol MUST specify canonicalization. If canonicalization is done in any server within the DNS service, another server within the DNS service SHOULD be able to recognize requests that have already been canonicalized and SHOULD treat them as such."

I think that's what you meant; if not, please reword. And, if it is what you meant, I think you can start seeing some problems:

- You are now requiring the root servers to both check for canonicalization (more work) and possibly perform canonicalization (more work)

- Versioning for IDN within the DNS service box must be designed very carefully. We know that ISO 10646 gets updated about once a year. It would be pretty rude to say "those new characters can't be used for a few years until we update all this software". Putting the canonicalization above the DNS service interface avoids this.

I agree that specifying the solution in the requirements document is the wrong thing to do. In addition, underspecifying the requirements is also bad because it will lead to lax proposals for the protocol. We have already seen too many "solutions" to the problem that hand-wave over the hard issues and, in so doing, hurt all the users of those solutions. This is particularly harmful to Asians, who will have new significant characters added to ISO 10646 in the coming years.

Thus, how about the following wording:

"The protocol MUST specify canonicalization, it MUST specify exactly where in the DNS that canonicalization happens and does not happen, it MUST specify how additions to ISO 10646 will affect the stability of the DNS and the amount of work done on the root DNS servers."

--Paul Hoffman, Director
--Internet Mail Consortium