Applications IETF December 1998 Notes

Personal notes from mainly applications area sessions during the IETF meeting in Orlando, December 1998

By Professor Jacob Palme,
Stockholm University and KTH Technical University

Abstract

  Here are my personal notes from the IETF meeting in Orlando, Florida, December 1998. Opinions in these notes are not always my own, but rather things I heard people say during the meeting. The selection of what to report is based on my personal interests, and are mostly from meetings in the applications area.  

Table of contents

   

General Issues

 

There was more new and interesting issues in the applications area than ever before. More difficult to have time to go to all interesting group meetings.

The IETF language

  • Access
  • Appropriate
  • Architecture
  • Bandwagon
  • BOF (meeting which does not have an IETF working group)
  • Client
  • Common area
  • Definition
  • Existing practice versus new development
  • Focus on
  • Framework
  • Goals and milestones
  • Infrastructure
  • IRTF (Internet Research Task Force, in IETF used as a label of things you want to get rid of, because it is too advanced)
  • Primarily
  • Process
  • Proprietary protocols
  • Rathole (= issue so controversial that no rough consensus can be expected)
  • Requirements and problems
  • Restrict
  • Server
  • Service level
  • Terminology
  • Tool
  • Transaction
  • Transparent
  • Vendors
  • Working group

Applications Area Open Plenary

 

Recent new working groups: LDAP application, Instant messaging, Webdav searching, Message tracking.

May soon become working groups: Mailcap (find capabilities of a certain e-mail recipient), enum (finding phone number given an e-mail address), web replication and caching, Kermit over telnet, use of LDAP for routing inside a local domain, domain registry protocol, human-friendly naming.

HTTP Next Generation has been put into the Transport area, not the Applications area, since it has a large impact on the transport protocols. Whether it really should be labeled HTTP is not clear.

Winding down working groups: It is important to get rid of finished working groups, since they occupy the AREA directors' time.

New mailing lists: Finding volunteers to review papers by joining three lists, web@apps.ietf.org, messaging@apps.ietf.org, directory@apps.ietf.org, usual request procedure to sign up.

XML bandwagon: People tend to use XML for everything, and even standards which are not based on XML, are developing XML ways of conveying their information.

Internationalization: General guidelines needed. For example, casing is not so simple in all languages as it is in ASCII. String comparisons and sorting are related issues. Question: How can we get the ISO 10646 specification available on-line? Answer: License the Unicode specs, and hope that ISO 10646 will adopt what Unicode has done. ISO 10646 costs hundreds of dollars, Unicode about 70 dollars. IETF should decide whether to reference 10646 or Unicode. Go to "unicode.org" to find the Unicode working documents. A mailing list will be started and announced on the IETF list.

Organizational issues: Split the APPS area? Or add more area directors? An area director does not really have time to handle more than 7-8 ongoing working groups. Should IETF be more restrictive on which new tasks to accept for working groups?

Authentication: Some people talked above a method called DIGEST, which was said to provide a less advanced security than using public key encryption.

Authorization: People tend to assume that once authentication is ready, authorization does not require much thought. This is not true, and authorization is sometimes not discussed enough.

 

 

HTTP Next Generation BOF

 

Why? HTTP/1.1 is very complex, and is used for many specialized application which do not require this complexity.
    HTTP-NG will be modular, extensible, including "mandatory" extensions (=extensions which an implementation which do not understand them will be required to reject), scalability, network efficiency and transport flexibility.

There will be three layers:

  1. Transport (of opaque messages)
  2. Remote invocation
  3. The Web application

Transition: Start with a pair of a few popular kinds of WWW agents:

  • origin server and high-level proxy
  • browser and low-level proxy
  • high- and low-level proxy

There were many people who asked questions like "is this really needed", and "do we need yet another version of HTTP" and "will you get people to use this new version of HTTP?".
    Charter: Collect experience from HTTP and how it is used, including proxies, caching, firewalls, layering, modularity. The different pieces will be defined, in bottom-to-top order. Not in charter: Language mappings, advancing web applications, replacing TCP.

People commenting in the discussion:
    "Too much, too many people with good experience of remote applications will want their ideas into it, so that you will never finish."
   "Why are you only looking at the web application if you want to develop a general remote procedure call protocol?"
   "Why are people using HTTP for so many applications? Because it is a way to get through firewalls. You want to stop this, but people will just hide their application high enough to subvert the firewalls anyway."

 

Web Replication and Caching

 

Charter: http://www.terena.nl/tech/wrec

Structures of proxies can be complex, some of them have old, other new versions of a resource

Primary tasks of this working group

  1. Client-Proxy communication
  2. Inter-Cache communication
  3. Caching/replication infrastructure
  4. Cache-Network Device communication
PAC
Script for proxy configuration
WPAD
Finding the script (PAC)
CARP
Clustered proxies

How to handle peer-master structure

Inter-Cache communication

ICPv2
Inter Cache Protocol, documented in RFC 2186, 2187: Protocol to check whether a cache has an object or not.
WCCPv1
HTPC HyperText Caching Protocol draft-vixie.htcp.proto-03, an improvement on ICP, can handle HTTP headers.
CARP
draft-vinod-carp-v1.03
Cache Digest
work in progress
Various other protocols
CRIPS, Relais, LSAM, AWC

The area manager, Keith Moore, strongly advocated that the group must decide whether it wants to document existing practice, or develop new protocols, and that both cannot be done in the same group. To combine both in the same group does not work well, he said.

 

Process for Organization of Internet Standards

 
 

Poisson working group: I only went to the first of two meetings with this group, so much more was probably said during the second meeting.

List posting restrictions

Trying to find consensus on which postings are acceptable and not acceptable to the IETF mailing list, and in which cases the moderator can restrict postings from people who often break these rules. Committee to decide whether a certain person should be removed from the list?
    Not acceptable: Promotion, solicitation, private issues.
    Acceptable: IETF policies.
    Special topics: Should normally be discussed in special working groups, but if the working group wants wider comments on some issue, they can take it up on the general list.

RFC series

This diagram shows the increase in the first RFC number each year. For 1988, the data is only for the first 10 months.

Should it be allowed to post documents which are not approved by IETF as RFCs? Example: When people get their standards proposals rejected by IETF, they sometimes publish them as RFCs, and then refer to these RFCs in marketing of their products, as if they had been approved. Should anyone be allowed to publish whatever they want as an RFC?
    Someone proposed that we should have a separate series of "harmful" or "not recommended" proposals. Someone else said that it was enough to publish an additional RFC explaining why another RFC is harmful.

 

LDAP Extension BOF

 

Agenda

  • Draft progress: MTI (authentication method, digest, TLS)
  • Language tags, dynamic, simple proposal
  • Access control
  • Should each application use its own access control methods? Should there be a standard way to set up an encrypted session? The Open group has developed a requirements document for authentication APIs.

  • C API
  • Draft has been around for a long time, and is widely deployed. There is a tradeoff between compatibility and perfection, there is pressure from both sides. Current draft is useful and has many interworking implementations, so it is difficult to change it even if the ideal API should be different.
        Threading and TLS will be handled through the extension mechanism. This mechanism is almost ready .Reformat client control should be addressed now. SASL API can be handled later. Rebind callback should be addressed now. LDAP session options has a number of small problems, but generally works well.
       Which C version should it be based on? ISO C (the current accepted standard) is stable and well-defined, but some implementations are not compatible with that standard.

  • Signed directory operations
  • Referrals & KRS
  • Duplicate entries/sorting
  • If you display a list, such as an address book, how should you sort if the sorting key is multi-valued? Proposal: Sort it into all the places, i.e. split the entry.

  • "Related attributes" = "collections of attributes" = "compound attributes"
  • If you have multiple addresses, and multiple attributes, how do you know which of the multiple attributes is paired with which of the multiple addresses?
        Solution 1: Nested attributes, each nest level is called a compound attribute or an attribute group.
        Solution 2: Families of entries in the directory tree. This solution requires two new object classes, parent and child.
        Each of these solution has different pros and cons.
        Example: Filtering should fail, if it matches only combination of values in different groups.
        A straw vote seemed to indicate that the families of entries solution was mostly liked by those present at the meeting.

  • X.500 2000

      New features which are expected:
    • There is in reality today no global namespace.
    • How can X.500 be run over TCP/IP?
    • Support for F.520
    • Multi-master replication
       
  • Java API
  • Persistent/triggered search
  • AOB

An issue, that was mentioned at many of the agenda items above, was whether various issues should be solved by the IETF LDAP group, or by the ITU/ISO X.500 group.

 

Revision of the basic e-mail standards

 

The drums documents are now very close to final publication. They will be sent for working group last call in December, aiming at submitting them for IESG last call on January 8, 1999.

Some late issues:

Unclear text in the SMTP document on whether you are allowed to bounce a message because it seems to be a spam.
    Text about when Message-ID should be changed can be misunderstood, and will be clarified, but without specifying exactly when the Message-ID should be changed and not changed.
    Text about "Re: " should more clearly indicate that translations of "Re: " to other languages is not recommended.
    Changes at this late date will only be considered if supported by at least four people (a compromise between three and five which were suggested at the meeting).

Future work on e-mail standards

We discussed whether there is other future work on e-mail standards. The issue of most interest seems to be mailcap, a way of using directory systems to find out the capabilities of a receiver's e-mailer (like fax, color resolution, language, charset, PGP-support, public key, voice capability). Other issues mentioned:

  • Revision of Delivery Status Notifications. (Why does so few clients support it? Are positive notifications really needed?)
  • Routing slips (=circulation lists, workflow applications)
  • 821 recipient list extension (allow more than 100 recipients in one line)
  • Server authentication
  • Loop control
  • How to get DSN implemented and used
  • Security for executable code sent in e-mail
  • Filtering
  • Administration of mailing lists including the possible use of LDAP
  • Mailing lists (a rathole!)

No decision was taken except that mailcap which has a mailing list (write to mailcap-request@cs.utk.edu to subscribe).

 

DAV (Distributed Authoring and Versioning),
DASL, Searching and Locating WG

 

Web page: http://lists.w3.org/archives/Public/www-webdav-dasl/

Queries and results in DAV are expressed in XML. This simplifies the use of character sets. All XML is in Unicode format, or is transformed to Unicode format before doing operations on it.

Current documents:
draft-henderson-dasl-scenairos
draft-davis-dasl-requirements
draft-reddy-dasl-protocol

Requirements:

These are requirements of what the language defined must support, not what each implementation MUST support. So a MUST requirement here can become an OPTIONAL function in the protocol. SHOULD means that the group might not include it in the standard if they cannot find a good way of specifying it. (An interesting use of the words SHOULD and MUST in a standards-requirement document. Is it priority categories?) This is not the definition of SHOULD and MUST in RFC 2119. There was a very long discussion on this. We should not mix use of SHOULD and MUST in this meaning with the RFC 2119 use of the words, otherwise the document will be completely incomprehensible. Some people wanted us to remove the words MUST and SHOULD from the requirements document.

  1. It MUST be possible to specify at least one resource in the scope. It SHOULD be possible to specify a set of distinct, unrelated resources in the scope.
  2. It MUST be possible to specify a WebDAV collection as a scope.
  3. It SHOULD be possible to specify other types of resources in a scope.
  4. When the scope is a collection, it MUST be possible to specify the depth.
    Criteria:
  5. It MUST be possible to search properties in a query. It MUST be possible to search both DAV-defined and application-defined properties.
  6. It MUST be possible to search content in a query.
  7. It MUST be possible to search both properties and content in a single query.
  8. It MUST be possible to combine criteria using Boolean operators.
  9. It must be possible to include undefined properties in a query without error.
  10. It MUST be possible to test whether a property is defined.
  11. It MUST be possible to compare property values.
  12. It SHOULD be possible to compare property values to other properties of other resources.
  13. It SHOULD be possible to compare property values to results of expressions.
  14. It MUST be possible to match property values with pattern matching, at a minimum, string-ending wildcards. More powerful patterns, such as defined by the SQL "like" operator or Unix regular expressions, are desirable. For example, "text/*" to search on the media type.
  15. It MUST be possible to use equality operators.
  16. It MUST be possible to use relative operators.
  17. It MUST be possible to specify case sensitivity.
  18. It MUST/SHOULD be possible to specify language-specific definitions for string comparison and sorting.

    This caused a long discussion. Do all languages have a sort order? Is there a need for sorting algorithm specification standards? Do such standards exist? Should sorting algorithm be specified by saying "France French sorting order" or "use sort algorithm A" or "use the sort algorithm described by the string 'XYZ' in the ABC sort algorithm specification language". All this applies to both sorting and comparison.

  19. It MUST be possible to search content of any text media type. "Searching content" means locating sequences of character in the contents of a resource.

    Search is done on the content, not the transfer-encoded text. Systems which store text in encoded format must index them in uncoded format or allow on-the-fly-un-encoding when searching.

  20. It SHOULD be possible to search for words that are within a specified number of words of each other.

    Many people wanted this changed to MUST.

  21. It SHOULD be possible to search for words that occur within the same grammatical context, e.g. same phrase, sentence, or paragraph.
  22. It SHOULD be possible for a client to control whether content searches does or does not use a stemming comparison.
  23. Phonetic similarity,
  24. keywords,
  25. sort specification,
  26. set of properties to be returned (not all properties),
  27. limits on resources consumed in creating or transmitting in the result set.
  28. Limit the number of records in the result set.
  29. Return fewer result records than match the criteria.
  30. Request paged results.
  31. Multiple query language grammars.
  32. MUST be possible to extend the basic grammar defined by DASL.
  33. MUST be possible for the server to redirect a query.
  34. SHOULD be possible for the client to request hit highlighting.

Extensibility: Allowing future standards to extend, or allow implementors to extend without IETF approval?

Query Grammar Discovery Example

Request

OPTIONS / HTTP/1.1
HOST: www.myserver.com

Response

HTTP/1.1 200 UK
PUBLIC: GET, PUT, HEAD, SEARCH, ...
DASL: <DAV:basic search>
DASL: <http://foo.bar.com/mysearch>

Basic Search Syntax

Query components:

  • select
  • from
  • where
  • orderly

Example: Retrieve the content length values for all resources located under the "/container1/" URI namespaces whose length exceeds 10000. Example of a short part of the translation of this to the query language:

<where>
 <gt> 
    <prop><Getcontentlength/></prop>
     <literal>10000</literal>

"where" Expressions

Uses three-valued logic (includes null)

Operators:

  • eq, gt, gte, lt, lte
  • and, or, not
  • literal (for constants)
  • isdefined (tests whether property is defined)
  • like (simple wildcard, Example: "image%")
  • contains (full text search)

Contains is intentionally underspecified. Does not define exactly what is meant by full text search. For example, truncation, case-insenstive search, name interpretation, stemming, thesaurus expansion, near constraints, phonetic comparison is not yet defined.

Range Requests

Not in protocol spec - Proposal on list

   SEARCH /container/ HTTP/1.1
   Range: rows=20-30

Or

   SEARCH /container/ HTTP/1.1
   Range: rows=20-end

Structured Property Query

"There are umpteen numbers of proposals for XML query languages, XQL is one of them."

Complicated issue, DAV already defines several structured properties:

   DAV:resourcetype
   DAV:lockdiscovery

XML query is a current work area of W3C. They are doing important work which we should use if possible.

 

Message Tracking Protocol

 
 

A more complete description of these issues can be found in my notes from the previous IETF meeting in Chicago.
    This working group meeting started 19 minutes late, because no chairman or other person was present representing the people behind the proposal. The meeting was started by one of the area directors, Keith Moore, who said that since we are here, we could have some discussion of these topics anyway.
    The DSN standard allows the sender of a message can request a notification if the message was delivered or not delivered to its final recipient. The Message Tracking Protocol is a proposal for doing more detailed tracking of what happens when messages are forwarded. This would be an aid to administrators of mail systems in order to investigate problems with messages.
    One feature was putting a cookie in a message, which you can later on use to authenticate that you was the sender of this message. This might solve some of the security problems with the proposal in the Chicago meeting.
    The intention was not only to ask for tracking of a new message, but also to be able to track afterwards what has happened to an already sent message.

Three alternative methods:

  1. Trusted third party stores trace reports from all MTAs passed. Has scalability problems.
  2. DSN-style reporting, i.e. messages sent back to the sender at each hop.

  3. MTA queries, i.e. you can ask an MTA what has happened with a message. This requires a data base in each MTA of which messages have passed it. Such a data base might also be used for loop control.
    • chaining, sender queries the first MTA, which then queries the next MTA.
    • referral, sender queries the first MTA, which tells the sender which is the next MTA, so that the sender can query that server.

To reduce cost, one might let senders mark messages as traceable, and only save trace information for messages marked in that way.
    There are cryptographic methods for ensuring that only the original sender can trace his message, including facilities for a user to delegate this authority to other people. These methods are discussed in the usefor group, which is planning to use them to check that only authorized people can cancel articles.

 

Human-Friendly Names/Identifiers BOF

  Note: This presentation is ideas from various drafts, not final solutions

Problem space description

Larry Masinter: What problems can we solve? The URL syntax is unfriendly for non-experts. Internationalization: Exact match doesn't work for non-English, Élan=élan=Elan.

Services with collections of names: Titles of books, names of medical conditions, trade names.

Software for name entry: Browsers, address books. Simple, unsatisfactory first attempts: Search engine interpret "ibm" as "http://www.ibm.com". More advanced features in new browsers.

Search engines: Searching content, name matching.

The above services are sometimes combined.

Defining uniqueness: Impossible, user type in so short names that they cannot be unique.

Creating authorities: Avoid political winds.

Registration mechanism: May wary between name spaces.

One operational model:

  • user types something in native language
  • some kind of matching with choices
        cannot be standardized yet today, open to innovation
  • choices are unique but still friendly
  • choice is mapped to a URN
  • the URN is mapped to a URL
  • the resource is accessed

Summary:

  • We can solve some real problems
  • Systems exist, interface standardization needed
  • Stick to what's common, leave open the parts that are not
  • Avoid politics

Presentation of identifiers

Presentation of existing drafts, draft-mealling-human-friendly-identifier-req-00.txt.

Requirements document: Users (what are they willing to accept, people like you, me or your grandmother), Marketing (advertising interest), Trademark (like users, but have more lawyers).

Justification: HTTP URLs and domain names are not viable identifiers for unsophisticated users, and the unsophisticated users far outnumber the sophisticated users. Marketing, trademark and user communities attempt to force URLs and domain name systems into what they want, but what may not work so well on the net.

Ratholes: Do not develop a generic directory service, do not become a trademark enforcement activity.

General requirements: The names should be as short as possible, they should be fully internationalized, the names will be non-unique, a single name can match a multiple of separate resources.

Matching time: 1-2 seconds maximum.

Matching semantics: Must allow substrings. User should be able to specify geographic limitations.

Openness: Open way of inserting your own names, quality of name registration, user should be able to understand how much vetting is done.

Architecture

Components: Root is a flat namespace, so someplace for the names to reside is needed.

Registrars: Can write qualified entries into the root. You can input unvetted names, but qualified names are listed first in result listings.

Content servers: Data outside the root.

Local servers: Just like in DNS, a user can use a local server for locally scoped names. Client: Can maintain context information.

The "go" URI scheme; examples:

  • go:Nike
  • go:IETF
  • go:Martin%20J.%20D%C3%BCrts (not what user sees, but what is sent on the wire)

The RealName system:
An example of a human-friendly-name system

(Centraal corporation) A real name is a company name (example: "Walt Disney"), or a brand name (example: "M&M"), or an advertising slogan (example: "just do it"). These are names, which marketing has spent a lot of effort on getting people to know.
    Can we use URLs? Can we use URNs? Not quite.
    Some companies are highly persistent, but not all companies are persistent. Persistence might be promised for a certain time, for example one year.
    Services are emerging, for example "smart browsing" from Netscape.

(Dunn & Bradstreet) Plug-in exists for Internet Explorer. Problems is that people want to use abbreviations, and not the full name, like for example "IBM" instead of "International Business Machines".

Advice: Do not design complex protocols which people cannot use. Avoid showing the URLs to the users.

Discussion

Why did you not use my protocol? Answer: We tried LDAP, it was too slow. How can different services with separate real name data bases cooperate? Is there anything which needs standardization here? Or should we leave this to the market?
    One speaker: People claim that the DNS cannot be used because it does not allow international characters. That is wrong. The limitation on character set only applies to domain names. If you use the DNS for other things than domain names, you can use any 8-bit string. You can even implement fuzzy matching, even though typical DNS servers today do not support fuzzy matching.
    Who will pay for this?

A new IETF working group?

This was on the last hours of the IETF meeting, so many people did not come, there was only about 30 people present, but about 10 of these wanted to do work on standards in this area, so a new IETF working group will probably be formed.