分享
 
 
 

RFC1249 - DIXIE Protocol Specification

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group T. Howes

Request for Comments: 1249 M. Smith

B. Beecher

University of Michigan

August 1991

DIXIE Protocol Specification

Status of this Memo

This RFCdefines a mechanism by which TCP/UDP based clients can

Access OSI Directory Service without the overhead of the ISO

transport and presentation protocols required to implement full-blown

DAP. This memo provides information for the Internet community. It

does not specify any standard. Distribution of this memo is

unlimited.

Table of Contents

1. IntrodUCtion .............................................. 2

1.1 History .................................................. 2

2. Protocol .................................................. 2

2.1 Header ................................................... 3

2.2 Operations ............................................... 4

2.2.1 Read ................................................... 4

2.2.1.1 Read Request ......................................... 4

2.2.1.2 Read Reply ........................................... 4

2.2.2 Search ................................................. 5

2.2.2.1 Search Request ....................................... 5

2.2.2.2 Search Reply ......................................... 5

2.2.3 List ................................................... 5

2.2.3.1 List Request ......................................... 5

2.2.3.2 List Reply ........................................... 5

2.2.4 Modify ................................................. 5

2.2.4.1 Modify Request ....................................... 6

2.2.4.2 Modify Reply ......................................... 6

2.2.5 Modify RDN ............................................. 6

2.2.5.1 Modify RDN Request ................................... 6

2.2.5.2 Modify RDN Reply ..................................... 6

2.2.6 Add .................................................... 6

2.2.6.1 Add Request .......................................... 7

2.2.6.2 Add Reply ............................................ 7

2.2.7 Remove ................................................. 7

2.2.7.1 Remove Request ....................................... 7

2.2.7.2 Remove Reply ......................................... 7

2.2.8 Bind ................................................... 7

2.2.8.1 Bind Request ......................................... 7

2.2.8.2 Bind Reply ........................................... 8

2.3 Operation Code Summary ................................... 8

2.4 Return Code Summary ...................................... 8

3. References ................................................ 9

4. Available Implementations ................................. 9

5. Security Considerations.................................... 9

6. Authors' Addresses ........................................ 10

1. Introduction

OSI Directory Service defines a powerful mechanism for storing and

retrieving information about objects, and for arranging those objects

in a hierarchical structure. Many types of objects and information

can be stored in The Directory, including white pages information,

application information, service information, etc. The OSI protocol

defined to allow access to this information is the Directory Access

Protocol (DAP). The DAP, being an OSI application-layer program, is

fairly heavy-weight and requires a substantial amount of computing

power and coding investment to implement.

The DIXIE protocol is designed for use by smaller hosts (e.g.,

Macintoshes and PCs) that do not have the computing power or

necessary software to implement a full OSI protocol stack. The DIXIE

protocol is also useful for any Internet application that wants a

simple interface to X.500 that requires very little coding

investment.

The basic idea behind DIXIE is the same as that described in RFC1202

for the Directory Assistance Protocol. DIXIE offers both UDP and TCP

access to The Directory. While the Directory Assistance Protocol

eXPorts something of a user interface, DIXIE provides a more direct

protocol translation.

1.1 History

The DIXIE protocol has evolved over time, slowly growing into the

protocol described by this document. Without an understanding of the

circumstances surrounding this evolution, the wisdom of some of the

DIXIE design decisions may not be apparent.

2. Protocol

This section describes the DIXIE protocol in detail. DIXIE follows a

client-server request and response paradigm. Clients send request

packets to a DIXIE server, and the server sends reply packets in

return. Communication may be over UDP or TCP, depending upon the

needs of the client. All modification operations (ADD, REMOVE,

MODIFY, MODIFYRDN) must be performed over a TCP connection, which

provides some level of authentication.

Whichever method of communication is used, the general packet format

is the same. Each packet consists of a sixteen octet header followed

by some data. The format of the header and data for each kind of

request is described below.

The representation used for all X.500 data passed between the server

and the client is the QUIPU EDB format. So, for example, a

Distinguished Name might look something like "c=US@o=University of

Michigan". For a complete description of this format, see volume 5

of the ISODE Manual.

The DIXIE server listens on port 96 for both UDP packets and TCP

connections.

2.1 Header

The DIXIE packet header is sixteen octets long. For requests, the

header is described by the following:

Start Length Description

0 1 An opcode specifying one of the operations

described below. (see section 2.3 for a summary)

1 2 A request identifier to be included in the reply.

This number should be unique to a request.

3 4 The total length of the request packet, excluding

the header.

7 2 Unused.

9 1 Options. Currently, there are only three options.

If bit 0 is set, "large" attributes will be

included in the response. The choice of what

constitutes large is up to the implementation.

If bit 1 is set, the dereference aliases service

control will be set for the X.500 operation. If

bit 2 is set, aliases will NOT be dereferenced and

searched during a search operation.

10 1 Protocol version. The current version is 1.

11 1 For the search operation, this byte specifies the

scope of the search. (see section 2.2.2.1)

12 2 Timelimit in seconds for the operation.

14 2 Sizelimit for the operation (search and list).

For replies, the header is described by the following:

Start Length Description

0 1 A return code specifying either success or

describing any error that occurred. (see

section 2.4 for a description of each code)

1 2 The identifier included in the corresponding

request packet.

3 4 The total length of the response packet, excluding

the header.

7 3 Unused.

10 1 Protocol version. The current version is 1.

11 5 Unused.

All unused fields should be set to null octets and are reserved for

future expansion.

2.2 Operations

This section describes the DIXIE operations, which closely parallel

the X.500 DAP operations.

2.2.1 Read

The DIXIE read operation corresponds to an X.500 DAP READ operation.

2.2.1.1 Read Request

The header opcode should be set to 0x01. The data portion of the

packet consists of the DN of the entry to read, a null octet, and

then a null-octet separated list of attributes whose values are to be

returned from the read. If no attributes to return are listed, all

attributes are returned. The packet is terminated by two null octets

in a row.

2.2.1.2 Read Reply

The reply data for the read operation consists of the entry read,

followed by a null octet. An entry consists of the DN of the entry,

followed by the octet 0x02, followed by a 0x02-octet separated list

of attribute values. An attribute value consists of an attribute

type, followed by the octet 0x01, followed by a 0x01-octet separated

list of values. Each attribute type, attribute value and

distinguished name has the form defined by the QUIPU EDB format.

2.2.2 Search

The DIXIE search operation corresponds to an X.500 DAP SEARCH

operation.

2.2.2.1 Search Request

The header opcode should be set to 0x0f. Octet 11 in the header

should be set to 0x01, 0x02, or 0x03, for a search scope of base

object, one level, or whole suBTree, respectively. The data portion

of the packet consists of the DN of the entry from which to start the

search, a null octet, a string containing the search filter (dish-

style), a null-octet, and then a null-octet separated list of

attributes whose values are to be returned from the search. If no

attributes to return are listed, all attributes are returned. The

packet is terminated by two null octets in a row.

2.2.2.2 Search Reply

The reply data to the search operation consists of two octets in

network byte order specifying the number of matches returned. Next

comes this number of sequences of the form: one 0x03 octet followed

by one entry. Each entry is as described above in section 2.2.1.2.

2.2.3 List

The DIXIE list operation corresponds to an X.500 DAP LIST operation.

2.2.3.1 List Request

The header opcode should be set to 0x10. The data portion of the

packet consists of the DN of the entry on which to perform the list,

followed by a null octet.

2.2.3.2 List Reply

The reply data to the list operation consists of two octets in

network byte order specifying the number of subordinates returned,

followed by this number of sequences of the form: one 0x03 octet

followed by a Relative Distinguished Name of a subordinate.

2.2.4 Modify

The DIXIE modify operation corresponds to an X.500 DAP MODIFY

operation.

2.2.4.1 Modify Request

The header opcode should be set to 0x02. The data portion of the

packet consists of the DN of the entry to modify, followed by a null

octet, followed by a null-separated list of modify operations to

perform. Each modify operation is one of the following:

type remove attribute type

type=value make value the sole value for attribute type

type+=value add value to attribute type

type-=value remove value from attribute type

The second form will see to it that existing values (if any) are

deleted before the new ones are added. The third form will add the

attribute type if it does not already exist. Note that the QUIPU EDB

format, used to specify value, allows multiple values to be specified

separated by the "&" character. This operation is only allowed over

TCP.

2.2.4.2 Modify Reply

There is no reply data for the modify operation. The only indication

of success or failure is the return code in the header.

2.2.5 Modify RDN

The DIXIE modify RDN operation corresponds to an X.500 DAP MODIFYRDN

operation.

2.2.5.1 Modify RDN Request

The header opcode should be set to 0x13. The data portion of the

packet consists of the DN of the entry to modify, followed by a null

octet, followed by the new RDN the entry should have, followed by a

final null octet. The old value of the RDN is never kept as an

attribute of the entry. This operation is only allowed over TCP.

2.2.5.2 Modify RDN Reply

There is no reply data to the modify RDN operation. The only

indication of success or failure is the return code in the header.

2.2.6 Add

The DIXIE add operation corresponds to an X.500 DAP ADD operation.

2.2.6.1 Add Request

The header opcode should be set to 0x11. The data portion of the

packet consists of the DN of the entry to add, followed by a null

octet, followed by a null-separated list of the entry's attributes.

Each attribute in this list has the form:

type=value

where value can consist of a single value, or multiple values

separated by the "&" character. The request is terminated by two

null octets in a row. This operation is only allowed over TCP.

2.2.6.2 Add Reply

There is no reply data to the add operation. The only indication of

success or failure is the return code in the header.

2.2.7 Remove

The DIXIE remove operation corresponds to an X.500 DAP REMOVE

operation.

2.2.7.1 Remove Request

The header opcode should be set to 0x12. The data portion of the

packet consists of the DN of the entry to remove, followed by a null

octet. This operation is only allowed over TCP.

2.2.7.2 Remove Reply

There is no reply data for the remove operation. The only indication

of success or failure is the return code in the header.

2.2.8 Bind

The DIXIE bind operation corresponds to an X.500 DAP BIND operation

using simple authentication as defined in Recommendation X.509.

2.2.8.1 Bind Request

The header opcode should be set to 0x04. The data portion of the

packet consists of the DN of the entry as which to bind, followed by

a null octet, followed by the passWord of the entry as which to bind,

followed by a final null octet. A null DN corresponds causes a bind

as NULLDN to occur.

2.2.8.2 Bind Reply

The format of the bind reply packet depends on whether the operation

was invoked over TCP or UDP. If the operation was invoked over TCP,

there is no reply data. Success or failure of the operation is

indicated by the return code in the packet header.

If the bind operation was invoked over UDP, the data portion of the

reply packet consists of an Internet address in standard dot

notation, followed by a 0x01 octet, followed by a decimal number (in

text form), followed by a null octet. The address and number should

be taken to be the IP address and port number to which the client

should connect to obtain an authenticated TCP connection, bound as

the entity specified in the request packet.

2.3 Operation Code Summary

This section describes the possible values for the DIXIE header

operation code. There are currently 8 possible values:

0x01 Read

0x02 Modify

0x04 Bind

0x0f Search

0x10 List

0x11 Add

0x12 Remove

0x13 Modify RDN

2.4 Return Code Summary

This section describes the possible values for the the DIXIE header

return code. There are currently 17 possible values:

0x01 The request was successful.

0x02 The search did not find any matches.

0x03 Some unknown, generic DIXIE error has occurred.

0x04 The DIXIE opcode was not recognized by the DIXIE server.

0x05 Insufficient access to perform a modification.

0x06 A malformed DN was supplied.

0x07 Some time limit or size limit was reached.

Partial results will be returned.

0x08 A modify was attempted before a bind.

0x09 A fragment requested was not found.

0x0a An attribute type specified is invalid.

0x0b An attribute specified does not exist in the entry.

0x0c An attribute value specification is invalid.

0x0d An attribute value does not exist (as for removal of the

value).

0x0e A modification of an entry's RDN was attempted via a modify

operation. This is not allowed (use modrdn instead).

0x0f A supplied DN references an invalid portion of the tree.

0x10 The DSA has passed back a referral to another DSA (as for a

modification to a non-local entry), and the DIXIE server was

unable to follow it.

0x11 The DSA is down or unreachable.

3. References

[1] Information Processing - Open Systems Interconnection - The

Directory, International Organization for Standardization,

International Standard 9594, 1988.

[2] Kille, S., Robbins, C., Roe, M., and A. Turland, "The ISO

Development Environment: User's Manual", Volume 5: QUIPU,

Performance Systems International, January 1990.

[3] Rose, M., "Directory Assistance Service", RFC1202, Performance

Systems International, February 1991.

4. Available Implementations

This section is not meant as an endorsement of any

implementation, it is provided merely as information for the

Internet community. A full Un*x-based implementation of the

DIXIE protocol in the form of a DIXIE server and DIXIE

application library is freely available for anonymous FTP from

the host terminator.cc.umich.edu in the ~ftp/x500 directory.

Un*x and Macintosh clients that use the DIXIE protocol have also

been implemented and are available from the same location.

There is also a discussion list for DIXIE-related topics called

dixie@terminator.cc.umich.edu. To join, send mail to dixie-

request@terminator.cc.umich.edu.

5. Security Considerations

Security issues are not discussed in this memo.

6. Authors' Addresses

Tim Howes

University of Michigan

Information Technology Division

535 West William St.

Ann Arbor, MI 48103-4943

Phone: +1 313 764-2278

EMail: tim@umich.edu

Mark Smith

University of Michigan

Information Technology Division

535 West William St.

Ann Arbor, MI 48103-4943

Phone: +1 313 764-2277

EMail: mcs@umich.edu

Bryan Beecher

University of Michigan

Information Technology Division

535 West William St.

Ann Arbor, MI 48103-4943

Phone: +1 313 764-4050

EMail:

bryan@umich.edu

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有