分享
 
 
 

RFC1025 - TCP and IP bake off

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

Network Working Group J. Postel

Request for Comments: 1025 ISI

September 1987

TCP AND IP BAKE OFF

Status of This Memo

This memo describes some of the procedures, scoring, and tests used

in the TCP and IP bake offs held in the early development of these

protocols. These procedures and tests may still be of use in testing

newly implemented TCP and IP modules. Distribution of this memo is

unlimited.

IntrodUCtion

In the early days of the development of TCP and IP, when there were

very few implementations and the specifications were still evolving,

the only way to determine if an implementation was "correct" was to

test it against other implementations and argue that the results

showed your own implementation to have done the right thing. These

tests and discussions could, in those early days, as likely change

the specification as change the implementation.

There were a few times when this testing was focused, bringing

together all known implementations and running through a set of tests

in hopes of demonstrating the N squared connectivity and correct

implementation of the various tricky cases. These events were called

"Bake Offs".

An early version of the list of tests included here appears in IEN-69

of October 1978. A demonstration of four TCP implementations was

held at the Defense Communication Engineering Center in Reston,

Virginia on 4 December 1978, and reported in IEN-70 of December 1978.

A bake off of six implementations was held 27-28 January 1979 at

USC-Information Sciences Institute in Marina del Rey, California and

reported in IEN-77 of February 1979. And a distributed bake off was

held in April 1980 over the network and reported in IEN-145 of May

1980.

The following section reproduces (with very slight editing) the

procedure, tests, and scoring of the April 1980 Bake Off.

Procedure

This is the procedure for the TCP and IP Bake Off. Each implementor

of a TCP and IP is to perform the following tests and to report the

results. In general, this is done by using a test program or user

Telnet program to open connections to your own or other TCP

implementations.

Some test are made more interesting by the use of a "flakeway". A

flakeway is a purposely flakey gateway. It should have control

parameters that can be adjusted while it is running to specify a

percentage of datagrams to be dropped, a percentage of datagrams to

be corrupted and passed on, and a percentage of datagrams to be

reordered so that they arrive in a different order than sent.

Many of the following apply for each distinct TCP contacted (for

example, in the Middleweight Division there is a possibility of 20

points for each other TCP in the Bake Off).

Note Bene: Checksums must be enforced. No points will be awarded if

the checksum test is disabled.

Featherweight Division

1 point for talking to yourself (opening a connection).

1 point for saying something to yourself (sending and receiving

data).

1 point for gracefully ending the conversation (closing the

connection without crashing).

2 points for repeating the above without reinitializing the

TCP.

5 points for a complete conversation via the testing gateway.

Middleweight Division

2 points for talking to someone else (opening a connection).

2 points for saying something to someone else (sending and

receiving data).

2 points for gracefully ending the conversation (closing the

connection without crashing).

4 points for repeating the above without reinitializing the

TCP.

10 points for a complete conversation via the testing gateway.

Heavyweight Division

10 points for being able to talk to more than one other TCP at

the same time (multiple connections open and active

simultaneously with different TCPs).

10 points for correctly handling urgent data.

10 points for correctly handling sequence number wraparound.

10 points for correctly being able to process a "Kamikaze"

packet (AKA nastygram, christmas tree packet, lamp test

segment, et al.). That is, correctly handle a segment with the

maximum combination of features at once (e.g., a SYN URG PUSH

FIN segment with options and data).

30 points for KOing your opponent with legal blows. (That is,

operate a connection until one TCP or the other crashes, the

surviving TCP has KOed the other. Legal blows are segments

that meet the requirements of the specification.)

20 points for KOing your opponent with dirty blows. (Dirty

blows are segments that violate the requirements of the

specification.)

10 points for showing your opponents checksum test is faulty or

disabled.

Host & Gateway IP Division

25 points for doing fragmentation and reassembly.

15 points for doing loose source route option.

15 points for doing strict source route option.

10 points for doing return route option.

10 points for using source quench messages.

10 points for using routing advice messages.

5 points for doing something with the type of service.

5 points for doing something with the security option.

5 points for doing something with the timestamp option.

5 points for showing that a gateway forwards datagrams without

decreasing the time to live (showing a gateway is faulty).

5 points for showing that a gateway forwards datagrams with the

time to live equal zero (showing a gateway is faulty).

10 points for showing that a gateway or hosts checksum test is

faulty or disabled (showing a gateway is faulty).

Bonus Points

10 points for the best excuse.

20 points for the fewest excuses.

30 points for the longest conversation.

40 points for the most simultaneous connections.

50 points for the most simultaneous connections with distinct

TCPs.

Tests

The following tests have been identified for checking the

capabilities of a TCP implementation. These may be useful in

attempting to KO an opponent.

1. Single connection. Open & close a single connection many

times.

2. Multi connections. Open several connections

simultaneously. Two connections to the same socket

(i.e., a-b and a-c) check proper separation of data.

3. Half Open Connection. Open a connection, crash local TCP

and attempt to open same connection again.

4. Piggy-back Loop. Open connections via Telnet.

user telnet--->TCP--->IP--->net--->IP--->TCP--->server telnet

V

server telnet<---TCP<---IP<---net<---IP<---TCP<---user telnet

V

user telnet--->...

5. Maximum connections. Open connections between a pair of

TCP until refused or worse.

6. Refused connection. Open a connection to a non-accepting

socket, does it get refused?

7. Zero Window. Try to send data to a TCP that is presenting

a zero window.

8. Fire Hose. Make many connections to data source ports, or

connections to a data sink and send as fast as you can.

9. Urgent Test. Try to send data to a user program that only

receives data when in urgent mode.

10. Kamikazi Segment. Send and receive nastygrams. A

nastygram is a segment with SYN, EOL, URG, and FIN on and

carrying one octet of data.

11. Sequence Wraparound. Test proper functioning when sequence

numbers (a) pass 2**31 (i.e., go from plus to "minus") and

(b) pass 2**32 (i.e., go from 2**32-1 to 0).

12. Buffer size. With buffer size not equal to one, send data

in segments of various sizes, use urgent occasionally.

13. Send a nastygram into a half open connection when the

sequence number is about to wrap around.

New Ideas

The above tests check for basic operation and handling of some of the

tricky cases. They do not consider performance in any way, or check

to see if some of the recently developed ideas have been implemented.

New Mechanisms

1. The John Nagel Procedures (RFC-896).

2. The Van Jacobson Procedures (slow start, RTT measurements,

etc).

3. The SQuID Procedures (RFC-1016).

Performance Tests

Performance tests are difficult to specify because the results

depend so much on the state of the environment of the test.

Here are a few possibilities:

1. FTP Throughput: Send a 1 megabyte file to a locally nearby

machine on an Ethernet measuring the elapsed time.

2. FTP Throughput: Send a 1 megabyte file to a locally nearby

machine on an ARPANET measuring the elapsed time.

3. NETBLT Throughput: Send a 1 megabyte file to a locally

nearby machine on an Ethernet measuring the elapsed time.

4. NETBLT Throughput: Send a 1 megabyte file to a locally

nearby machine on an ARPANET measuring the elapsed time.

5. Character Test: Use a test program to send a character via

TCP to the Echo Server (RFC-862), time the round trip (from

the time the character is sent until the echo is returned

to the test program).

Appendix

For History Buffs Only:

The following item was in the original 1980 tests, but has been

moved to this appendix since it no longer applies.

10 points for correctly handling rubber baby buffer bumpers in

both directions (End of Letter sequence number adjustments).

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