分享
 
 
 

RFC1151 - Version 2 of the Reliable Data Protocol (RDP)

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

Network Working Group C. Partridge

Request for Comments: 1151 BBN Systems and Technologies

Updates: RFC908 R. Hinden

BBN Communications Corp.

April 1990

Version 2 of the Reliable Data Protocol (RDP)

Status of this Memo

This RFCsuggests several updates to the specification of the

Reliable Data Protocol (RDP) in RFC-908 based on eXPerience with the

protocol. This revised version of the protocol is experimental.

Distribution of this memo is unlimited.

IntrodUCtion

Experiments in 1986 and 1987 turned up some ambiguities and problems

with the RDP specification. At the time, it was hoped that the

authors might find the time to revise the entire RDP specification to

fix these problems, however given the limited demand for RDP

implementations, the authors were never able to justify the time

involved in revising the spec. This document lists the changes that

we believe are appropriate to make to RDP version 1.

Readers are expected to be familiar with RFC-908.

Changes To The Protocol Header

There are three changes to the protocol header: the checksum

algorithm has been changed, the port size increased, and the version

number incremented. The new header format is shown in Figure 1.

The major discovery during the testing of the protocol is that cost

of computing the the RDP checksum proved surprisingly variable; its

performance was more heavily affected by the host's data

representation than anticipated. Optimized checksum implementations

on two comparable hardware bases gave performance that differed by a

factor of five. Since the speed of the checksum is a key factor in

the performance of the protocol itself, this variation caused a

noticeable difference in throughput.

The wide variation in performance on comparable machines was felt to

be undesirable, so the checksum has been changed. RDP now uses the

16-bit TCP checksum, which is specified on page 16 of RFC-793.

The 8-bit port size is probably too small to support a large range of

applications. Accordingly, the port size is now 16-bits. Port

numbers less than 1024 are reserved for well-defined applications.

Allocable ports begin at port number 1024.

Finally, because the checksum and port size have been changed, the

version number has been increased to 2.

0 0 0 1 1

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

+-+-+-+-+-+-+---+---------------+

SAERN Ver Header

0 YCASU0No. Length

NKKTL

+-+-+-+-+-+-+---+---------------+

1 Source Port

+---------------+---------------+

2 Destination Port

+---------------+---------------+

3 Data Length

+---------------+---------------+

4

+--- Sequence Number ---+

5

+---------------+---------------+

6

+--- Acknowledgement Number ---+

7

+---------------+---------------+

8 Checksum

+---------------+---------------+

9 Variable Header Area

. .

. .

+---------------+---------------+

RDP Header Format

Figure 1

Minor Errors and Ambiguities

Some ambiguities and minor errors have been found in RFC-908. They

are corrected in this section.

The value of the state variable, SND.UNA is treated inconsistently in

the pseudo-code on pages 21-29. On page 12, SND.UNA is defined as

"the sequence number of the oldest unacknowledged segment", and on

page 21 it is appropriately set to the initial sequence number when

the connection is opened. But on page 28, when an acknowledgement is

received, SND.UNA is set to SEG.ACK, the sequence number being

acknowledged, instead of SEG.ACK+1. A similar inconsistency occurs

on page 26. The proper fix is to always set SND.UNA to SEG.ACK+1.

The pseudo-code on page 25 for the SYN-SENT state is incorrect. The

first few lines cause all packets with the ACK bit set to be

discarded, but later lines test the ACK bit. The test for the ACK

bit should be placed after all the other tests. Also note that if

the ACK bit is set, a RST segment is sent to reset the remote peer,

but the local peer is left half-open. There is a similar problem in

the SYN-RCVD state. The local peer should deallocate the connection

record and close.

On page 24, the pseudo-code indicates that if non-data packets are

received in the CLOSED state, a RST segment with SEG.ACK set to

RCV.CUR should be sent. RCV.CUR is not defined in the CLOSED state.

SEG.ACK should be set to SEG.SEG.

There is some inconsistency about how to handle a RST packet in the

CLOSE-WAIT state. On page 24, the pseudo-code shows that a RST

should cause the connection state to become CLOSED. Text on page 13

and the state diagram on page 10 suggest the connection state should

stay in CLOSE-WAIT. The implementation should stay in CLOSE-WAIT.

On page 29, the pseudo-code for the OPEN state suggests that if a

data packet is received in sequence, the acknowledgement packet

should not contain EACKs. This is misleading. Implementations may

include EACKs in the acknowledgement.

On page 18, it is possible to interpret the right edge as being

either inside or outside the window. This results in a one segment

difference in the window size. The proper interpretation is that the

right edge is outside the window. In other Words, the right edge is

the first sequence number that cannot be sent or received and the

total window size is 2*X, where X is the maximum number of

outstanding segments.

One final problem is that RDP's flow control scheme does not allow

the receiver to close the sender's window. As a result, if the

receiver acknowledges segments when they are received the sender can

easily send more data than the receiver is prepared to buffer. A

solution to this problem (suggested by members of the End-2-End

Research Group) is to only acknowledge a segment after it has been

delivered to the application. This scheme, however, has not be

tested.

Security Considerations

Security issues are not addressed in this memo.

Authors' Addresses

Craig Partridge

Bolt Beranek and Newman Inc.

50 Moulton Street

Cambridge, MA 02138

Phone: (617) 873-2459

EMail: craig@BBN.COM

Robert Hinden

Bolt Beranek and Newman Inc.

50 Moulton Street

Cambridge, MA 02238

Phone: (617) 873-3757

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有