ESE250: Digital Audio Basics - PowerPoint PPT Presentation

1 / 76
About This Presentation
Title:

ESE250: Digital Audio Basics

Description:

From one process on a computer. To any other process on any other computer ... By a set of participating computers which route data. Abstraction ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 77
Provided by: andre576
Category:

less

Transcript and Presenter's Notes

Title: ESE250: Digital Audio Basics


1
ESE250Digital Audio Basics
  • Week 12 December 1, 2009
  • Networking

2
Networked Systems
  • Today
  • We expect our computers to be networked
  • Google, wikipedia, Email, IM,
  • Can work stand alone
  • Airplane mode?
  • But, are crippled when not connected
  • Phone isnt a phone unless its networked

3
Course Map
Numbers correspond to course weeks
4
Outline
  • Communicating between machines
  • Technology and Costs
  • Layering
  • Transport
  • Network
  • Routing and what can go wrong and what to do
    about it
  • Physical
  • physical layer independence
  • What can go wrong and what to do about it
  • Running simulation will punctuate points
  • (no interlude)

5
Communicating between Machines
6
Minimal Setup
  • Have two computers
  • think raw processors for the moment
  • Want them to communicate
  • Send an mp3 file

7
Physical Connection
  • Place an IO peripheral in each computer
  • String wire between computers
  • E.g. one wire from A?B, another B?A

8
Signaling
  • Communicate with Voltage pulses
  • A pulls line low
  • B senses low line
  • Encode data as series of pulses or voltages on
    the line

9
Communication
  • Start program on B to receive data (file)
  • Start program on A to send data (file)
  • B waits for valid characters
  • A sends data
  • B receives
  • A sends out-of-band signal to indicate end of data

10
Multiple Tasks
  • Could have a separate interface/wire for each
    application
  • Process allocates hardware when needs to
    communicate
  • Holds exclusive access during transfer

11
Connect to Multiple Machines
  • Add interface/wire for every machine want to talk
    to
  • Talk to machine through its dedicated wire

12
Scalability
  • Do we like where this is going?
  • How many machines are there?
  • July 2008 570M
  • http//www.ciolek.com/GLOBAL/2000ten.html

13
How many connections?
  • What machines do you connect to regularly?
  • E-mail server
  • Eniac
  • Web servers?
  • Yahoo, cnn, google, YouTube, facebook
  • iTunes
  • How many friends do you IM?

14
Technology and Costs
15
Wires
  • How fast can I send data over a wire?
  • Consider a Category-5 ethernet cable
  • Bandwidth (bits/s)
  • 100Mbits/s 100Base-T (100Mb ethernet)
  • 1Gbit/s 1000Base-T (Gigabit ethernet)
  • Latency/transit time (distance/time)
  • 0.64 c cspeed of light 3108 m/s
  • 0.192 m/ns or roughly 5ns/m

16
Comparison computer parts
  • Transit time to back of room?
  • 5m ? 25ns
  • 3GHz processor ? 75 machine instructions
  • Hard Solid-State Disk Bandwidth
  • 1.52 Gbits/s

17
Comparison Audio
  • Real-Time, single-channel Audio
  • 44KHz _at_ 16b 504Kbits/s
  • How many can share 1Gbit/s link?
  • 1Gbits/s / 0.5Mbist/s 2000
  • Real-Time single-channel MP3
  • 64Kbist/s
  • How many can share 1Gbit/s link?
  • 1Gbits/s / 64Kbits/s 16,000

18
Comparison Video
  • HDTV (uncompressed)
  • 1920x1080 2M pixel 316b/pixel
  • 100Mb/frame
  • 30 frames/second
  • 3Gbits/second
  • HDTV compressed
  • Around 36Mbits/s
  • 1Gbits/s / 36Mbits/s 30

19
Costs
  • Cat 5e per foot 0.20/foot
  • Say 0.6/m
  • Raw wire
  • Ignoring handling to run
  • Ignoring rent/lease/buy land to run
  • Philly ? San Francisco 4,000km
  • 2.4M for wire run

20
Implications?
  • Todays wire bandwidth exceeds the throughput
    needs of any real-time single-stream data
  • Can afford to share the wire
  • Wires not cheap
  • Cannot afford not to share the wire

21
Sharing (Virtualizing) Connections
22
Sharing Link
  • Idea Tag data with target
  • this is for process 34
  • this is for process 45
  • Have transport layer deal with
  • Mixing data from separate streams
  • Separating data out into individual streams
  • Delivering to individual processes

23
Packet
  • Begin to form a packet
  • Header says where to go
  • Data payload the data to send
  • Header
  • Added, consumed by network handling in routing
  • Data payload
  • Only thing seen by the application processes

24
Packets
25
Transport Layer
  • Call this the Transport Layer
  • responsible for delivering data to the individual
    application process on the computer

26
Possible Role Assignment
SA1
SA2
SA3
SA4
T1
T3
N2
N1
R1
W1/R2
R3
T2
N2
N4
T4
27
Simulation 1
SA1
SA2
  • Send 4 verses or digits from each
  • from song-server-app, p-server-app
  • to song-listener-app, p-consumer

T1
W1
T2
CA1
CA2
28
Virtualize Physical Wires
29
Start Simple
  • Add more computers to same pair of wires
  • Like the memory bus
  • How do I know who the message is for?

30
Extended Packet
  • Extend our packet header
  • Destination computer
  • Process on destination computer
  • Sending computer
  • Process on sending computer

31
Network Layer
  • responsible for end-to-end (source to
    destination) packet delivery

32
Virtualization Effect
  • Each pair of processes on different computers
  • Has the view of a point-to-point connection

33
(No Transcript)
34
Simulation 2
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients

35
Simulation 2
N1
N3
W1
N2
N4
T4
CA3
CA4
36
Simulation 2
N1
N3
W1
N2
N4
T4
CA3
CA4
37
Extending the Virtual Link
38
Indirect Connections
  • A and B are connected
  • B and C are connected
  • How get message from A to C?

39
Indirect Connection
  • Run process on B to forward messages from A to C

40
Routing
  • B runs a general program
  • If packet destined for B, takes it
  • Otherwise, sends on to (toward) destination
  • Extension of the network handling process that is
    sorting data to processes

41
Routing
42
Reachability
  • If everyone plays along
  • Can communicate with any computer reachable
    transitively from my computer
  • Dont need direct connections

43
Routing ? Route Tables
  • To make efficient
  • Each computer should route close to destination
  • and not route in circles
  • E.g. compute all-pairs shortest paths
  • Store result, each machines knows where to send
    packet next
  • How much storage?
  • Cleverness to compress/summarize
  • What happens when links break, new computers
    added?
  • Cleverness to incrementally recompute

44
Network Layer
  • responsible for end-to-end (source to
    destination) packet delivery including routing
    through intermediate hosts

45
Simulation 3
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients

46
Sim 3
R1
R2
N2
N4
T4
CA3
CA4
47
Simulation 4
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients
  • Roles
  • 4 server apps
  • Network Interface for each of 2 servers
  • 3 routers ???
  • Network Interface for each of 2 clients
  • 4 client apps

48
Sim 4
R1
R2
R3
N2
N4
T4
CA3
CA4
49
Where are we now?
  • Can communicate
  • From one process on a computer
  • To any other process on any other computer
  • If the two are transitively connected
  • By a set of participating computers which route
    data
  • Abstraction
  • Processes just see streams of data between the
    endpoints

50
Layers
(abstraction)
51
Protocols
  • Mostly sketched key buildings blocks and
    functionality of IP
  • IP Internet Protocol
  • Delivery to process (rather than hosts) UDP
  • UDP Unreliable Datagram Protocol

52
Simulation 5
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients

53
Sim 5
R1
R2
R3
R3 delayed
N2
N4
T4
CA3
CA4
54
What can go wrong?
  • Packets arrive out of order
  • Solution?
  • Add a sequence number

55
Simulation 6
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients

56
Sim 6
R1
R2
R3
R3 delayed
N2
N4
T4
CA3
CA4
57
Abstracting Physical Layer
  • Application, transport, network
  • Dont really care how the bits are moved from
    machine-to-machine
  • What are other ways we send bits?
  • Optically
  • RF/wireless
  • Pneumatic tubes, passing paper notes, SMS Text
    messages

58
Simulation 7
  • Send 4 verses or digits from each
  • from song-server serving 2 songs
  • And digit-server serving 2 fundamental constants
  • To two clients
  • Roles
  • 4 server apps
  • Network Interface for each of 2 servers
  • 3 routers, connect to both servers and endpoints
  • One link is via text messaging
  • Network Interface for each of 2 clients
  • 4 client apps

59
Sim 7
R1
wireless
R2
R3
N2
N4
T4
CA3
CA4
60
What else can go wrong?
  • Bits get corrupted
  • Intermediate machines holding messages can crash
  • Messages can get misrouted

61
(No Transcript)
62
Data Corruption
  • How do we deal with data corruption?
  • Use redundancy
  • Two strategies
  • Use enough redundancy to correct
  • Use just enough redundancy to detect it
  • Have the sender resend

63
Data Corruption
  • Relatively uncommon
  • Most packets are fine
  • We have efficient (low overhead) ways to detect
  • Compute a hash of the message data
  • Highly unlikely one (few) message bit errors will
    result in same hash
  • ? checksum

64
Revised Packet
  • Header
  • Data payload
  • Checksum

65
Lost Packet
  • How can we deal with lost packets?

66
Lost Packet Strategy
  • Sender sends packet
  • But keeps a copy
  • Receiver gets packet
  • Checks checksum
  • OK, uses packet and sends ACK
  • got your last packet in tact
  • Not ok, discard packet
  • Sender
  • Receives ACK, can discard packet and send next
  • No ACK (after timeout), resend packet

67
Retransmission Discipline
  • Dont depend on receiver to request
    retransmission
  • Why?
  • Header may be corrupted
  • Not deliver to receiver
  • Only know receiver got it when it says it got it

68
Corrupted ACK
  • What if the ack is lost?
  • Sender resends
  • Receiver receives a second copy
  • Oops, dont want that to be interpreted as new
    data
  • i.e. send rm cd ..\n
  • Receive rm cd ..\n rm cd ..\n

69
Avoid Duplication
  • How can we avoid duplication?

70
Accommodating Duplication
  • Use packet sequence number
  • Keep track of last packet received
  • If receive packet again,
  • Discard the packet

71
Sequence Numbers
72
TCP
  • TCP Transmission Control Protocol
  • Provides Reliable delivery
  • Deals with
  • Retransmission
  • Duplication
  • Out of sequence / resequence / reconstruction

73
Transport Layer
  • Call this the Transport Layer
  • responsible for reliably delivering data to the
    individual application process on the computer

74
Layers
75
Learn More
  • Online reading/pointers
  • Courses
  • ESE404 Intro Networks and Protocols
  • ESE575 Intro to Wireless Systems

76
Big Ideas
  • Sharing Network interface, wires
  • Virtualization datastream abstracts physical
    point-to-point link
  • Layering
  • Divide-and-conquer functionality
  • Implementation hiding/technology independence
  • Reliable communication link from unreliable
    elements
Write a Comment
User Comments (0)
About PowerShow.com