Transcript Part I: Introduction
Internet History
1961-1972: Early packet-switching principles
1961: Kleinrock - queueing theory shows effectiveness of packet switching 1964: Baran - packet switching in military nets 1967: ARPAnet conceived by Advanced Reearch Projects Agency 1969: first ARPAnet node operational 1972: ARPAnet demonstrated publicly NCP (Network Control Protocol) first host host protocol first e-mail program ARPAnet has 15 nodes 1: Introduction 1
Internet History
1972-1980: Internetworking, new and proprietary nets
1970: ALOHAnet satellite network in Hawaii 1973: Metcalfe’s PhD thesis proposes Ethernet 1974: Cerf and Kahn architecture for interconnecting networks late70’s: architectures: DECnet, SNA, XNA proprietary late 70’s: length packets (ATM precursor) switching fixed 1979: ARPAnet has 200 nodes Cerf and Kahn’s internetworking principles: minimalism, autonomy no internal changes required to interconnect networks best effort service model stateless routers decentralized control define today’s Internet architecture 1: Introduction 2
Internet History
1980-1990: new protocols, a proliferation of networks
1983: deployment of TCP/IP 1982: smtp e-mail protocol defined 1983: DNS defined for name-to-IP address translation 1985: ftp protocol defined 1988: TCP congestion control new national networks: Csnet, BITnet, NSFnet, Minitel 100,000 hosts connected to confederation of networks 1: Introduction 3
Internet History
1990’s: commercialization, the WWW
Early 1990’s: ARPAnet decomissioned 1991: NSF lifts restrictions on commercial use of NSFnet (decommissioned, 1995) early 1990s: WWW hypertext [Bush 1945, Nelson 1960’s] HTML, http: Berners-Lee 1994: Mosaic, later Netscape late 1990’s: commercialization WWW of the Late 1990’s: est. 50 million computers on Internet est. 100 million+ users backbone links runnning at 1 Gbps 1: Introduction 4
ATM: Asynchronous Transfer Mode nets
Internet: today’s de facto standard for global data networking 1980’s: telco’s develop ATM: competing network standard for carrying high-speed voice/data standards bodies: ATM Forum ITU ATM principles: small (48 byte payload, 5 byte header) fixed length cells (like packets) fast switching small size good for voice virtual-circuit network: switches maintain state for each “call” well-defined interface between “network” and “user” (think of telephone company) 1: Introduction 5
ATM layers
ATM Adaptation Layer (AAL): interface to upper layers end-system segmentation/rea ssembly ATM Layer: switching Physical cell application TCP/UDP IP AAL ATM physical application TCP/UDP IP AAL ATM physical Where’s the application?
ATM: lower layer functionality only IP-over ATM: later application TCP/UDP IP AAL ATM physical ATM physical application TCP/UDP IP AAL ATM physical 1: Introduction 6
Summary on Introduction
Covered a “ton” of material!
Internet overview what’s a protocol?
network edge, core, access network performance: loss, delay layering and service models backbones, NAPs, ISPs history ATM network You now hopefully have: context, overview, “feel” of networking more depth, detail later in course 1: Introduction 7
Application Layer
Goals: conceptual + implementation aspects of network application protocols client server paradigm service models learn about protocols by examining popular application-level protocols More goals specific protocols: http ftp smtp pop dns programming network applications socket programming 1: Introduction 8
Applications and application-layer protocols
Application: communicating, distributed processes running in network hosts in “user space” exchange messages to implement app e.g., email, file transfer, the Web Application-layer protocols one “piece” of an app define messages exchanged by apps and actions taken user services provided by lower layer protocols application transport network data link physical application transport network data link physical application transport network data link physical 1: Introduction 9
Client-server paradigm
Typical network app has two pieces:
client
and
server
Client: initiates contact with server (“speaks first”) typically requests service from server, e.g.: request WWW page, send email Server: provides requested service to client e.g., sends requested WWW page, receives/stores received email application transport network data link physical request reply application transport network data link physical 1: Introduction 10
Application-layer protocols (cont).
API: application programming interface defines interface between application and transport layer socket: Internet API two processes communicate by sending data into socket, reading data out of socket Q: how does a process “identify” the other process with which it wants to communicate?
IP address of host running other process “ port number ” - allows receiving host to determine to which local process the message should be delivered … lots more on this later.
1: Introduction 11
What transport service does an app need?
Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” other apps (“elastic apps”) make use of whatever bandwidth they get Timing some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” 1: Introduction 12
Transport service requirements of common apps
Application Data loss Bandwidth Time Sensitive
file transfer e-mail Web documents real-time audio/video no loss no loss no loss loss-tolerant stored audio/video interactive games financial apps loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no 1: Introduction 13
Internet apps: their protocols and transport protocols
Application Application layer protocol Underlying transport protocol
e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g. RealNetworks) NSF proprietary (e.g., Vocaltec) TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP 1: Introduction 14