分享
 
 
 

RFC1958 - Architectural Principles of the Internet

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

Network Working Group B. Carpenter, Editor

Request for Comments: 1958 IAB

Category: Informational June 1996

Architectural Principles of the Internet

Status of This Memo

This memo provides information for the Internet community. This memo

does not specify an Internet standard of any kind. Distribution of

this memo is unlimited.

Abstract

The Internet and its architecture have grown in evolutionary fashion

from modest beginnings, rather than from a Grand Plan. While this

process of evolution is one of the main reasons for the technology's

sUCcess, it nevertheless seems useful to record a snapshot of the

current principles of the Internet architecture. This is intended for

general guidance and general interest, and is in no way intended to

be a formal or invariant reference model.

Table of Contents

1. Constant Change..............................................1

2. Is there an Internet Architecture?...........................2

3. General Design Issues........................................4

4. Name and address issues......................................5

5. External Issues..............................................6

6. Related to Confidentiality and Authentication................6

Acknowledgements................................................7

References......................................................7

Security Considerations.........................................8

Editor's Address................................................8

1. Constant Change

In searching for Internet architectural principles, we must remember

that technical change is continuous in the information technology

industry. The Internet reflects this. Over the 25 years since the

ARPANET started, various measures of the size of the Internet have

increased by factors between 1000 (backbone speed) and 1000000

(number of hosts). In this environment, some architectural principles

inevitably change. Principles that seemed inviolable a few years ago

are deprecated today. Principles that seem sacred today will be

deprecated tomorrow. The principle of constant change is perhaps the

only principle of the Internet that should survive indefinitely.

The purpose of this document is not, therefore, to lay down dogma

about how Internet protocols should be designed, or even about how

they should fit together. Rather, it is to convey various guidelines

that have been found useful in the past, and that may be useful to

those designing new protocols or evaluating such designs.

A good analogy for the development of the Internet is that of

constantly renewing the individual streets and buildings of a city,

rather than razing the city and rebuilding it. The architectural

principles therefore aim to provide a framework for creating

cooperation and standards, as a small "spanning set" of rules that

generates a large, varied and evolving space of technology.

Some current technical triggers for change include the limits to the

scaling of IPv4, the fact that gigabit/second networks and multimedia

present fundamentally new challenges, and the need for quality of

service and security guarantees in the commercial Internet.

As Lord Kelvin stated in 1895, "Heavier-than-air flying machines are

impossible." We would be foolish to imagine that the principles

listed below are more than a snapshot of our current understanding.

2. Is there an Internet Architecture?

2.1 Many members of the Internet community would argue that there is

no architecture, but only a tradition, which was not written down for

the first 25 years (or at least not by the IAB). However, in very

general terms, the community believes that the goal is connectivity,

the tool is the Internet Protocol, and the intelligence is end to end

rather than hidden in the network.

The current eXPonential growth of the network seems to show that

connectivity is its own reward, and is more valuable than any

individual application such as mail or the World-Wide Web. This

connectivity requires technical cooperation between service

providers, and flourishes in the increasingly liberal and competitive

commercial telecommunications environment.

The key to global connectivity is the inter-networking layer. The

key to exploiting this layer over diverse hardware providing global

connectivity is the "end to end argument".

2.2 It is generally felt that in an ideal situation there should be

one, and only one, protocol at the Internet level. This allows for

uniform and relatively seamless operations in a competitive, multi-

vendor, multi-provider public network. There can of course be

multiple protocols to satisfy different requirements at other levels,

and there are many successful examples of large private networks with

multiple network layer protocols in use.

In practice, there are at least two reasons why more than one network

layer protocol might be in use on the public Internet. Firstly, there

can be a need for gradual transition from one version of IP to

another. Secondly, fundamentally new requirements might lead to a

fundamentally new protocol.

The Internet level protocol must be independent of the hardware

medium and hardware addressing. This approach allows the Internet to

exploit any new digital transmission technology of any kind, and to

decouple its addressing mechanisms from the hardware. It allows the

Internet to be the easy way to interconect fundamentally different

transmission media, and to offer a single platform for a wide variety

of Information Infrastructure applications and services. There is a

good exposition of this model, and other important fundemental

issues, in [Clark].

2.3 It is also generally felt that end-to-end functions can best be

realised by end-to-end protocols.

The end-to-end argument is discussed in depth in [Saltzer]. The

basic argument is that, as a first principle, certain required end-

to-end functions can only be performed correctly by the end-systems

themselves. A specific case is that any network, however carefully

designed, will be subject to failures of transmission at some

statistically determined rate. The best way to cope with this is to

accept it, and give responsibility for the integrity of communication

to the end systems. Another specific case is end-to-end security.

To quote from [Saltzer], "The function in question can completely and

correctly be implemented only with the knowledge and help of the

application standing at the endpoints of the communication system.

Therefore, providing that questioned function as a feature of the

communication system itself is not possible. (Sometimes an incomplete

version of the function provided by the communication system may be

useful as a performance enhancement.")

This principle has important consequences if we require applications

to survive partial network failures. An end-to-end protocol design

should not rely on the maintenance of state (i.e. information about

the state of the end-to-end communication) inside the network. Such

state should be maintained only in the endpoints, in such a way that

the state can only be destroyed when the endpoint itself breaks

(known as fate-sharing). An immediate consequence of this is that

datagrams are better than classical virtual circuits. The network's

job is to transmit datagrams as efficiently and flexibly as possible.

Everything else should be done at the fringes.

To perform its services, the network maintains some state

information: routes, QoS guarantees that it makes, session

information where that is used in header compression, compression

histories for data compression, and the like. This state must be

self-healing; adaptive procedures or protocols must exist to derive

and maintain that state, and change it when the topology or activity

of the network changes. The volume of this state must be minimized,

and the loss of the state must not result in more than a temporary

denial of service given that connectivity exists. Manually

configured state must be kept to an absolute minimum.

2.4 Fortunately, nobody owns the Internet, there is no centralized

control, and nobody can turn it off. Its evolution depends on rough

consensus about technical proposals, and on running code.

Engineering feed-back from real implementations is more important

than any architectural principles.

3. General Design Issues

3.1 Heterogeneity is inevitable and must be supported by design.

Multiple types of hardware must be allowed for, e.g. transmission

speeds differing by at least 7 orders of magnitude, various computer

Word lengths, and hosts ranging from memory-starved microprocessors

up to massively parallel supercomputers. Multiple types of

application protocol must be allowed for, ranging from the simplest

such as remote login up to the most complex such as distributed

databases.

3.2 If there are several ways of doing the same thing, choose one.

If a previous design, in the Internet context or elsewhere, has

successfully solved the same problem, choose the same solution unless

there is a good technical reason not to. Duplication of the same

protocol functionality should be avoided as far as possible, without

of course using this argument to reject improvements.

3.3 All designs must scale readily to very many nodes per site and to

many millions of sites.

3.4 Performance and cost must be considered as well as functionality.

3.5 Keep it simple. When in douBT during design, choose the simplest

solution.

3.6 Modularity is good. If you can keep things separate, do so.

3.7 In many cases it is better to adopt an almost complete solution

now, rather than to wait until a perfect solution can be found.

3.8 Avoid options and parameters whenever possible. Any options and

parameters should be configured or negotiated dynamically rather than

manually.

3.9 Be strict when sending and tolerant when receiving.

Implementations must follow specifications precisely when sending to

the network, and tolerate faulty input from the network. When in

doubt, discard faulty input silently, without returning an error

message unless this is required by the specification.

3.10 Be parsimonious with unsolicited packets, especially multicasts

and broadcasts.

3.11 Circular dependencies must be avoided.

For example, routing must not depend on look-ups in the Domain

Name System (DNS), since the updating of DNS servers depends on

successful routing.

3.12 Objects should be self decribing (include type and size), within

reasonable limits. Only type codes and other magic numbers assigned

by the Internet Assigned Numbers Authority (IANA) may be used.

3.13 All specifications should use the same terminology and notation,

and the same bit- and byte-order convention.

3.14 And perhaps most important: Nothing gets standardised until

there are multiple instances of running code.

4. Name and address issues

4.1 Avoid any design that requires addresses to be hard coded or

stored on non-volatile storage (except of course where this is an

essential requirement as in a name server or configuration server).

In general, user applications should use names rather than addresses.

4.2 A single naming structure should be used.

4.3 Public (i.e. widely visible) names should be in case-independent

ASCII. Specifically, this refers to DNS names, and to protocol

elements that are transmitted in text format.

4.4 Addresses must be unambiguous (unique within any scope where they

may appear).

4.5 Upper layer protocols must be able to identify end-points

unambiguously. In practice today, this means that addresses must be

the same at start and finish of transmission.

5. External Issues

5.1 Prefer unpatented technology, but if the best technology is

patented and is available to all at reasonable terms, then

incorporation of patented technology is acceptable.

5.2 The existence of export controls on some ASPects of Internet

technology is only of secondary importance in choosing which

technology to adopt into the standards. All of the technology

required to implement Internet standards can be fabricated in each

country, so world wide deployment of Internet technology does not

depend on its exportability from any particular country or countries.

5.3 Any implementation which does not include all of the required

components cannot claim conformance with the standard.

5.4 Designs should be fully international, with support for

localisation (adaptation to local character sets). In particular,

there should be a uniform approach to character set tagging for

information content.

6. Related to Confidentiality and Authentication

6.1 All designs must fit into the IP security architecture.

6.2 It is highly desirable that Internet carriers protect the privacy

and authenticity of all traffic, but this is not a requirement of the

architecture. Confidentiality and authentication are the

responsibility of end users and must be implemented in the protocols

used by the end users. Endpoints should not depend on the

confidentiality or integrity of the carriers. Carriers may choose to

provide some level of protection, but this is secondary to the

primary responsibility of the end users to protect themselves.

6.3 Wherever a cryptographic algorithm is called for in a protocol,

the protocol should be designed to permit alternative algorithms to

be used and the specific algorithm employed in a particular

implementation should be explicitly labeled. Official labels for

algorithms are to be recorded by the IANA.

(It can be argued that this principle could be generalised beyond the

security area.)

6.4 In choosing algorithms, the algorithm should be one which is

widely regarded as strong enough to serve the purpose. Among

alternatives all of which are strong enough, preference should be

given to algorithms which have stood the test of time and which are

not unnecessarily inefficient.

6.5 To ensure interoperation between endpoints making use of security

services, one algorithm (or suite of algorithms) should be mandated

to ensure the ability to negotiate a secure context between

implementations. Without this, implementations might otherwise not

have an algorithm in common and not be able to communicate securely.

Acknowledgements

This document is a collective work of the Internet community,

published by the Internet Architecture Board. Special thanks to Fred

Baker, Noel Chiappa, Donald Eastlake, Frank Kastenholz, Neal

McBurnett, Masataka Ohta, Jeff Schiller and Lansing Sloan.

References

Note that the references have been deliberately limited to two

fundamental papers on the Internet architecture.

[Clark] The Design Philosophy of the DARPA Internet Protocols,

D.D.Clark, Proc SIGCOMM 88, ACM CCR Vol 18, Number 4, August 1988,

pages 106-114 (reprinted in ACM CCR Vol 25, Number 1, January 1995,

pages 102-111).

[Saltzer] End-To-End Arguments in System Design, J.H. Saltzer,

D.P.Reed, D.D.Clark, ACM TOCS, Vol 2, Number 4, November 1984, pp

277-288.

Security Considerations

Security issues are discussed throughout this memo.

Editor's Address

Brian E. Carpenter

Group Leader, Communications Systems

Computing and Networks Division

CERN

European Laboratory for Particle Physics

1211 Geneva 23, Switzerland

Phone: +41 22 767-4967

Fax: +41 22 767-7155

EMail:

brian@dxcoms.cern.ch

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