RFC 1278
A string encoding of Presentation Address
RFC 1278: A string encoding of Presentation Address π
okay bestie, the title block tea first β
- Network Working Group πΈ
- Author: S.E. Hardcastle-Kille, University College London π«
- Date: November 1991 π
- Category/status: this is an informational doc, so it provides information for the Internet community and does not specify an Internet standard π
- Obsoletes/Updates: this doc doesn't say it obsoletes or updates any other RFC π
Status of this Memo π
This memo provides information for the Internet community. It does not specify an Internet standard. Distribution of this memo is unlimited.
Abstract π¦
There are a bunch of environments where a simple string encoding of Presentation Address is super desirable π«Ά This spec defines exactly that kind of representation.
1. Introduction π§
okay so OSI Application Entities use presentation addresses to talk to other Application Entities π The model for this lives in [ISO87b]. Presentation addresses get stored in the OSI Directory using an ASN.1 representation that the OSI Directory defines [CCI88]. Logically, a presentation address has:
- A presentation selector
- A session selector
- A transport selector
- A set of network addresses
The selectors are all octet strings, but they often have IA5 character representations. The format of network addresses is defined in [ISO87a].
There's a need to show presentation addresses as strings in a bunch of different contexts β¨ This Internet Draft defines a format for use on the Internet. It's for display to human users, and its use is RECOMMENDED whenever you need to display one π Typically that'll be system managers rather than end users. It is not meant for internal storage π ββοΈ
This Internet Draft was first published as UCL Research Note RN/89/14 [Kil89]. It got agreed as a unified syntax for the THORN and ISODE projects, and it's used all over ISODE π₯ Christian Huitema of Inria and Marshall Rose of PSI Inc. gave a lot of really useful input to this doc π
2. Requirements π
The main requirements are:
- MUST be able to specify any legal value. π
- SHOULD be clean in the common case where the presentation address contains network addresses and no selectors. β¨
- MUST deal with selectors in the following encodings:
- IA5
- Decimal digits encoded as IA5 (this is the most common syntax in Europe, since it's required by X.400(84), and it SHOULD receive a straightforward encoding)
- Numeric encoded as a 16 bit unsigned integer (US GOSIP). This is mapped onto two octets, with the first octet being the high order byte of the integer.
- General Hexadecimal
- SHOULD give special encodings for the ad hoc encoding proposed in βAn interim approach to use of Network Addressesβ [HK91] π
- X.25(80) Networks
- TCP/IP Networks
- SHOULD be extensible for additional forms. π
- SHOULD provide a reasonably compact representation. π
3. Format π§©
The BNF is given in Figure 1 π
<digit> ::= [0-9]
<other> ::= [0-9a-zA-Z+-.]
<domainchar> ::= [0-9a-zA-Z-.]
<hexdigit> ::= [0-9a-fA-F]
<hexoctet> ::= <hexdigit> <hexdigit>
<decimaloctet> ::= <digit> | <digit> <digit>
| <digit> <digit> <digit>
<digitstring> ::= <digit> <digitstring> 10
| <digit>
<otherstring> ::= <other> <otherstring>
| <other>
<domainstring> ::= <domainchar> <otherstring>
| <domainchar>
<hexstring> ::= <hexoctet> <hexstring> | <hexoctet>
<dotstring> ::= <decimaloctet> "." <dotstring>
| <decimaloctet> "." <decimaloctet>
20
<dothexstring> ::= <dotstring> | <hexstring>
<presentation-address> ::=
[[[ <psel> "/" ] <ssel> "/" ] <tsel> "/" ]
<network-address-list>
<network-address-list> ::= <network-address> "_" <network-address-list>30
| <network-address>
<psel> ::= <selector>
<ssel> ::= <selector>
<tsel> ::= <selector>
<selector> ::= '"' <otherstring> '"' -- IA5
-- For chars not in this
-- string use hex
| "#" <digitstring> -- US GOSIP 40
| "'" <hexstring> "'H" -- Hex
| "" -- Empty but present
<network-address> ::= "NS" "+" <dothexstring>
-- Concrete Binary Representation
-- This is the compact encoding
| <afi> "+" <idi> [ "+" <dsp> ]
-- A user oriented form
| <idp> "+" <hexstring>
-- ISO 8348 Compatability 50
<idp> ::= <digitstring> -
<dsp> ::=
| "d" <digitstring> -- Abstract Decimal
| "x" <dothexstring> -- Abstract Binary
| "l" <otherstring> -- IA5: local form only
| "RFC-1006" "+" <prefix> "+" <ip>
[ "+" <port> [ "+" <tset> ]]
| "X.25(80)" "+" <prefix> "+" <dte> 60
[ "+" <cudf-or-pid> "+" <hexstring> ]
| "ECMA-117-Binary" "+" <hexstring> "+" <hexstring>
"+" <hexstring>
| "ECMA-117-Decimal" "+" <digitstring> "+"
<digitstring> "+" <digitstring>
<idi> ::= <digitstring>
<afi> ::= "X121" | "DCC" | "TELEX" | "PSTN" | "ISDN"
| "ICD" | "LOCAL"
70
<prefix> ::= <digit> <digit>
<ip> ::= <domainstring>
-- dotted decimal form (e.g., 10.0.0.6)
-- or domain (e.g., twg.com)
<port> ::= <digitstring>
<tset> ::= <digitstring>
<dte> ::= <digitstring>
<cudf-or-pid> ::= "CUDF" | "PID" 80
Figure 1: String BNF π§
Here are four examples π
"256"/NS+a433bb93c1_NS+aa3106
#63/#41/#12/X121+234219200300
'3a'H/TELEX+00728722+X.25(80)+02+00002340555+CUDF+"892796"
TELEX+00728722+RFC-1006+03+10.0.0.6
okay listen, the RFC 1006 encoding lets you use either a DNS Domain Name or an IP address π€ The former is mainly for ease of entry. If that DNS Domain Name maps onto multiple IP addresses, then multiple network addresses SHOULD be generated. The DNS Domain Name form is for convenient input. When mapping from an encoded address to string form, the IP address form SHOULD always be used. π
4. Encoding π
Selectors are represented in a way that can be easily encoded. In the NS notation, the concrete binary form of the network address is given. Otherwise, this string notation gives you a mechanism for representing the Abstract Syntax of a Network Address. This MUST be encoded according to Addendum 2 of ISO 8348 [ISO87a] π₯
5. Macros πͺ
There are often common addresses that want a cleaner representation, and that's what Macros are for β¨ If a <network-address> can be parsed as:
<otherstring> "=" *( any )
then the leading string is taken as a Macro, and it gets substituted. This can be applied recursively. When presenting a Network Address to humans, the longest available substitution SHOULD be used. For example:
________________________
|_Macro_|Value__________ |
| UK.AC |DCC+826+d110000 |
|_Leeds_|UK.AC=120______ |
So Leeds=22 would expand to DCC+826+d11000012022 π
6. Standard Macros π
No Macros SHOULD ever be relied on. However, the following are suggested as standard πΈ
________________________________________________
|_Macro_____________|Value______________________ |
| Int-X25(80) |TELEX+00728722+X25(80)+01+ |
| Janet-X25(80) |TELEX+00728722+X25(80)+02+ |
| Internet-RFC-1006 |TELEX+00728722+RFC-1006+03+ |
|_IXI_______________|TELEX+00728722+RFC-1006+06+_|
7. References π
- [CCI88] The Directory --- overview of concepts, models and services, December 1988. CCITT X.500 Series Recommendations.
- [HK91] S.E. Hardcastle-Kille. Encoding network addresses to support operation over non-osi lower layers. Request for Comments RFC 1277, Department of Computer Science, University College London, November 1991.
- [ISO87a] Information processing systems - data communications - network services definition: Addendum 2 - network layer addressing, March 1987. ISO TC 97/SC 6.
- [ISO87b] ISO DIS 7498-3 on naming and addressing, May 1987. ISO/IEC/JTC-1/SC 21.
- [Kil89] S.E. Kille. A string encoding of presentation address. Research Note RN/89/14, Department of Computer Science, University College London, February 1989.
8. Security Considerations π±
Plot twist: this memo does not discuss security considerations at all. Security considerations are not discussed in this memo π
9. Author's Address π
Steve Hardcastle-Kille
Department of Computer Science
University College London
Gower Street
WC1E 6BT
England
Phone: +44-71-380-7294
EMail: S.Kille@CS.UCL.AC.UK
that's the whole spec, bestie ππ
π¦ where this page comes from
- ietf: rfc1278 1991-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms