design principles of internet - nus computing - homeooiwt/cs5229/archives/0708s1/slides/... · b....

46
Design Principles of Internet

Upload: trankhanh

Post on 23-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Design Principles ofInternet

David D. Clark’s paper“The Design Philosophyof the DARPA Internet

Protocols” 1988

Why Internet isthe way it is?

Early Goals

Make disjoint networks talk toeach other effectively

Choices

A. Build a tightly integrated,unified network

B. Interconnect existingnetwork

Why ?

more practical. Networksrepresents separatelyadministered entities.

Choices

A. Packet SwitchingB. Circuit Switching

Why ?

The networks to be integrated arepacket switched network. Packet

switch is natural choice for theapplications at the time (remote

login).

More GoalsRobust - work despite failure of networks or gatewaysVersatile - support a variety of services and networksPermit distributed management of resourcesCost effectiveEasy to add new hostsPermit accounting of resources

Top Goal“Survivability in the Face of Failure”

Communication between two entities shouldcontinue after temporary disruption without

needing to reestablish connection states.

Or

Mask transient failure

Store connection states in

A. packet switching nodesB. end nodes

Why ?

Easier to implement thanreplication. Replication only

protects against finite numberof node failures.

Fate-Sharing

The only way the states arelost is the failure of end hosts.

Consequences

Stateless packet switchers.Need to trust end hosts.

Goal No. 2“Support a variety of services”

Services

Remote login - low delay, reliableFile transfer - delay not important,

reliableTeleconferencing - reliability not

important, low delay

Choice

A. Break into multipleprotocols.

Protocols

IP - datagram-based, best effortTCP - reliable service over IPUDP - unreliable service over IP

Compared to

X.25 - provides reliable services(that cannot be switched off!)

Goal No. 3“Support a variety of networks”

Make minimal assumptions

Can transport packetsBest effort delivery

AddressingMinimum packet size

Not assuming

ReliabilityOrdered delivery

Packet prioritizationBroadcast/multicast

Knowledge of network stats

GoalsRobust - work despite failure of networks or gatewaysVersatile - support a variety of services and networksPermit distributed management of resourcesCost effectiveEasy to add new hostsPermit accounting of resources

Another David D. Clark’spaper

“End-to-End Arguments inSystem Design” 1984

(with Saltzer and Reed)

E2E Argument

A tool to guide designers:which layer to implement a

given functionality?

Example

Reliable file transfer betweenhost A and host B

Steps

1. A reads file from disk2. A transmits file as packets3. Network delivers packets4. B receives packets5. B write data to disk

Possible Errors

1. Disk failure2. Software bugs3. Packet loss4. Processor/Memory errors5. OS crashes

Choices

A. Make sure every step isreliable

B. End-to-end check andretry (compare checksum,resend if error)

The Argument

To achieve careful file transfer,the transfer application must

apply application-specific, end-to-end reliability guarantee.

”“

The Argument

The end-to-end check of the filetransfer application must still be

implemented no matter howreliable the communication

system becomes.

Conclusion

No need to provide reliabilityguarantee at lower level (e.g.

network, OS, hardware)

Actually,

Lower level reliability canimprove performance.

To implement atlow-level?

Additional cost for applications thatdo not require the feature.

Less information than the “end”, lessefficient.

Other Example:Data Encryption

Choices

A. Encrypt at the network-level

B. Encrypt in the application

Why?

Intercept before reaching the networkNeed to trust the networkStill need to authenticate

Other Example:RISC

The Argument

Any attempt by the computerdesigner to anticipate the client’srequirements will probably missthe target and the client will endup re-implementing it anyway.

The End Point?

Applications?Users?Hosts?

The end-point is atrustworthy entity.

Example

Reliable file transfer betweenhost A and host B

If I don’t trust the filetransfer application, I needto check for error myself.

“E2E Argument

The function in question can completely andcorrectly be implemented only with theknowledge and help of the application standingat the endpoints of the communication system.Therefore, providing the questioned function asa feature of the communication system itself isnot possible. (Sometimes an incomplete versionof the function provided by the communicationsystem may be useful as a performanceenhancement)