Network Core 2 ways of transferring data thru the core: a. Circuit Switching b. Packet Switching Circuit Switching : Dedicated resources per ‘call’. How do we divide resources? a. TDM b. FDM
Circuit Switching: FDM and TDM FDM frequency time TDM frequency time 4 users Example:
Packet Switching Resources shared as needed aka. Statistical multiplexing Advantages: 1. More users 2. Great for bursty traffic patterns Disadvantage: No guarantees. Congestion issues.
Packet-switching: store-and- forward Takes L/R seconds to transmit (push out) packet of L bits on to link or R bps Entire packet must arrive at router before it can be transmitted on next link: store and forward delay = 3L/R Example: L = 7.5 Mbits R = 1.5 Mbps delay = 15 sec R R R L
Network Taxonomy Telecommunication networks Circuit-switched networks FDM TDM Packet-switched networks Networks with VCs Datagram Networks Datagram network is not either connection-oriented or connectionless. Internet provides both connection-oriented (TCP) and connectionless services (UDP) to apps.
Access Networks and Physical Media Dialup ADSL – Asymmetric. Why? Still use phone line. Distance between ISP and user reduced. Coaxial cable LAN’s Wireless LAN’s
Physical Media Twisted Pair Coaxial Cable Fiber Radio ISP structuring model
Delays A B propagation transmission nodal processing queueing 1. nodal processing: –check bit errors –determine output link 2. queueing –time waiting at output link for transmission –depends on congestion level of router
3. Transmission delay: R=link bandwidth (bps) L=packet length (bits) time to send bits into link = L/R 4. Propagation delay: d = length of physical link s = propagation speed in medium (~2x10 8 m/sec) propagation delay = d/s Note: s and R are very different quantities! A B propagation transmission nodal processing queueing
Total delay d proc = processing delay –typically a few microsecs or less d queue = queuing delay –depends on congestion d trans = transmission delay –= L/R, significant for low-speed links d prop = propagation delay –a few microsecs to hundreds of msecs
Queuing delay traffic intensity = La/R La/R ~ 0: average queueing delay small La/R -> 1: delays become large La/R > 1: more “work” arriving than can be serviced, average delay infinite! R=link bandwidth (bps) L=packet length (bits) a=average packet arrival rate
Internet protocol stack application: supporting network applications –FTP, SMTP, STTP transport: host-host data transfer –TCP, UDP network: routing of datagrams from source to destination –IP, routing protocols link: data transfer between neighboring network elements –PPP, Ethernet physical: bits “on the wire” application transport network link physical
Architectures for Applications Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P
Socket Model process sends/receives messages to/from its socket socket analogous to door –sending process shoves message out door –sending process relies on transport infrastructure on other side of door which brings message to socket at receiving process Addressing needs: IP address (host) + Port (process)
Main services needed from Transport Layer Data Loss Timing Band Width
Internet transport protocols services TCP service: connection-oriented: setup required between client and server processes reliable transport between sending and receiving process flow control: sender won’t overwhelm receiver congestion control: throttle sender when network overloaded does not provide: timing, minimum bandwidth guarantees UDP service: unreliable data transfer between sending and receiving process does not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee Q: why bother? Why is there a UDP?
HTTP Non Persistent -At most one object is sent over a TCP connection. Persistent - Multiple objects can be sent over single TCP connection between client and server. Persistent without pipelining: client issues new request only when previous response has been received one RTT for each referenced object Persistent with pipelining: default in HTTP/1.1 client sends requests as soon as it encounters a referenced object as little as one RTT for all the referenced objects
Add ons Cookies Way of adding some ‘state’ Advantages? Disadvantages/Concerns?
Caching How to cache? Why should we cache? Caching issues. Keeping cache coherent? (Conditional GET) client Proxy server client HTTP request HTTP response HTTP request HTTP response origin server origin server
Email User agents Mail servers SMTP – steps, contrast with HTTP SMTP Headers MIME
Mail access protocols POP – download and keep POP – download and delete POP Is stateless across sessions IMAP – everything organized and stored at server. Keeps state across sessions
DNS Name -> IP address mapping What other services? Model: Distributed Hierarchical
Root DNS Servers com DNS servers org DNS serversedu DNS servers poly.edu DNS servers umass.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers Distributed, Hierarchical Database
Structure Root servers TLD servers Authoritative servers. Also, Local Name Server
Querying Iterative Recursive DNS caching, updating cache (TTL) gaia.cs.umass.edu root DNS server 1 2 3 4 5 6 7 8 TLD DNS server
P2P Centralized Directory – Napster Model Full y Distributed – Gnutella model Gnutella – Overlay network, limited flooding? How does a peer join/leave a distributed Network?
P2P Kazaa – Group leader model Distinguish between powerful/less powerful peers Graph model: Connected Dominating Set
Socket Programming Socket Programming with TCP Socket Programming with UDP