2-Architecture and Principles Flashcards
What is networking today?
An eclectic mix of theory and practice
What is the ARPANET
Created in 1966 to connect big academic computers together. The first operational APRPANET nodes came on line in 1969 at UCLA, SRI, UCSB and Utah.
What is National Physical Laboratory or NPL Net?
Came online around 1969 as well in the UK (connected to ARPANET by) 1974
Fun fact about ARPANET
In 1971 there were about 20 ARPANET nodes and the first host to host protocol. There were 2 cross country links at 50 kbps.
There were other Networks
SAT net, Packet radio, Ethernet LAN
TCP/IP was standardized
1978-1981.
Flag Day
Jan 1, 1983 - ARPANET transitioned to TCP/IP
Domain Name System (DNS)
Rollout in 1982 replaced hosts.txt file
TCP congestion control
1988
NFS net and BGP
1989
Audio and video
1992
First major search engine
Alta Vista
What are the “Problems and growing pains” -> All issues would require changes to the basic infrastructure.
1) Running out of addresses -> only 2^32 addresses -> IPv4
2) Congestion Control -> insufficient dynamic range
3) Routing - No security, easily mis-configured, poor convergence, non-determinism
4) Security -> bad at key management, secure software deployment
5) Denial of Service -> too easy and common place
Internet original design principles
Design Philosophy of the DARPA Internet Protocols, Dave Clark 1988 (study notes on this paper)
Goal of internet?
“Multiplexed utilization of existing interconnected networks.” Sharing (statistical multiplexing/Packet switching) and interconnection (narrow waist)
Packet Switching
Information for forwarding traffic is contained in destination address of every data gram or packet. (Best effort Service) Sharing resources here. drawbacks are potential for delay or loss/dropped packets
Packet Switching vs Circuit Switching
PS: Variable delay
CS: Busy Signals
PS: Sharing of Network resources
CS: Dedicated resources between sender and receiver
Interconnection: achieved due to Narrow Waist
Goal: Interconnect many existing networks and to hide underlying technology from applications (IP is at the center - the network layer)
Narrow waist layers
Application layer -> http, smtp Transport layer -> tcp, udp 3) Network layer -> IP (Difficult to change at this level) 2) Link layer -> ethernet 1) Physical layer -> Soner
Design goal: Survivability
- Network works even if some devices fail
1) replication
2) fate sharing - acceptable to loose state info for entity if that entity itself is lost if that (easier to withstand complex failures - easier engineering)
Design goal: Heterogeneity
1) IP
2) “best effort” service model (makes debugging hard though)
Design goal: Distributed Management
Addressing (ARIN, RIPE, etc)
Naming(DNS)
Routing(BGP)
3 more design goals:
1) Cost
2) Ease of attachment
3) Accountability
What’s missing in Clark’s paper?
Security, Availability, Mobility and Scaling
Mentioned in Clark’s design goal paper
Heterogeneity, Interconnection and Sharing
End to End argument
Saltzer, Reed and Clark in 1988: In a system that includes communications, one usually draws a modular boundary around the communication subsystem and defines a firm interface between it and the rest of the system. When doing so, it becomes apparent that there is a list of functions each of which might be implemented in any of several ways: by the communication subsystem, by its client, as a joint venture, or perhaps redundantly, each doing its own version. In reasoning about this choice, the requirements of the application provide the basis for the following class of arguments: 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, and moreover, produces a performance penalty for all clients of the communication system. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement.)
Basically that the middle should be dumb and the endpoints should be intelligent
1) Error handling in file tranfer
2) end to end encryption
3) tcp/ip split in error handling
End to end argument violations
- Network Address Translators (NAT)
- VPN Tunnels
- TCP Splitting
- Spam (in some sense)
- p2p systems
- caches
- Routing
- multicast
- Qos
Violation NAT part
(private) Home network -> NAT -> (public) Internet
192. 168.0.0/16 68.211.6.120
Mapping IP address and port numbers from private to public