alf ilp n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ALF-ILP PowerPoint Presentation
Download Presentation
ALF-ILP

Loading in 2 Seconds...

play fullscreen
1 / 17

ALF-ILP - PowerPoint PPT Presentation


  • 146 Views
  • Uploaded on

ALF-ILP. Based on Slides by Anthony D. Joseph. ALF and ILP. Clark and Tennenhouse, 1990 Application Level Framing (ALF) ALF solves problems with strictly-layered architecture Integrated Layer Processing (ILP) ILP solves problems with layered impl’n ALF a mainstream concept, major impact

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ALF-ILP' - freya


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
alf ilp

ALF-ILP

Based on Slides by Anthony D. Joseph

alf and ilp
ALF and ILP
  • Clark and Tennenhouse, 1990
    • Application Level Framing (ALF)
      • ALF solves problems with strictly-layered architecture
    • Integrated Layer Processing (ILP)
      • ILP solves problems with layered impl’n
  • ALF a mainstream concept, major impact
    • basis for Real-time Transport Protocol
  • ILP still in research stage
    • Hard problem, e.g., HIPPARCH project
slide3

Application

Application

packets

packets

mux

demux

ALF
  • Basic idea:
    • Express application's semantics in the design of its network protocol.
  • “One size fits all” often inadequate
alf cont d
ALF (cont’d)
  • ”In the case of layered architectures, practical experience provides strong support for alternative engineering design”.
  • Not obvious
    • Streaming A/V on web (via TCP)
    • XPhone system (A/V over TCP)
alf cont d1
ALF (cont’d)
  • Key architectural principle is: FLEXIBLE DECOMPOSITION
  • Defer engineering decisions to implementor
  • Avoid inessential constraints
more alf
More ALF
  • Examples:
    • Real-time Transport Protocol
    • LBL whiteboard / reliable multicast
  • But isn't TCP “one size fits all”?
    • Hasn't this worked really well?
    • (e.g., telnet, ftp, email, web/http)
  • Yes, however, even these can be improved in certain environments:
    • Slogin (add encryption)
    • multicast mail exploder (avoid duplication)
application data units
Application Data Units
  • Notion of “application data unit” (ADU) explicit in the network/application interface.
  • Example:
    • “Intelligent” framing of compressed video
    • Bit-oriented JPEG video stream
    • Frame bit-stream into ADUs/packets for … …
video framing

Frame N-1

Frame N

Frame N+1

“JPEG” Video Sequence

Hdr B0 B1 … BN

Hdr B0 B1 … BN

Hdr B0 B1 … BN

Hdr BL

BL+1 BM

BM+1 BN

Hdr BL

H* BL

H* BL

Hdr BL

H* BL

BL+1 BM

BL+1 BM

H*BL+1BM

H*BL+1BM

H*BL+1BM

BM+1 BN

H*BM+1BN

H*BM+1BN

H*BM+1BN

BM+1 BN

Naïve Framing

Intelligent Framing

Video Framing
  • Add header (H*) to each packet to make “idempotent”; independently “processable”
  • Allows receiver to:
    • Proceed in the presence of loss
    • Selectively decide which data to retransmit (if at all)
protocol functions
Protocol Functions
  • Performance issues: separation of control and “data manipulation”
  • Data manipulation (touching / moving)
    • Move to/from net
    • Error detection
    • Buffering for retransmission
    • Encryption
    • Moving to/from app address space
    • Presentation formatting
more protocol functions
More Protocol Functions
  • Control transfer
    • Flow / congestion control
    • Detecting network transmission problems: loss, duplication, re-ordering
    • Acknowledgement
    • Multiplexing
    • Timestamping
    • Framing
more details
More Details
  • Simple measurements and argument to say: data manipulation is bottleneck
  • But control semantics place constraints on implementation, leads to layered implementations.
consider tcp
Consider TCP
  • What happens when data is reordered?(actually: how does data get reordered?)
    • TCP stalls system to wait for retransmission  lost packet stalls “presentation conversion”
  • Instead: let application process misordered data:
    • App might accept less than perfect delivery, merely continue
    • Sending app can provide missing data (rather than keeping buffered copy in transport layer)
    • App might want to retransmit new not old data to fix consequence of original loss
how can we do this
How can we do this?
  • TCP doesn't work (API wrong, reliable byte stream)
  • Instead: Application Data Unit (ADU)
    • Unit of manipulation
    • ADUs processed in any order
    • ADU boundaries replace packet boundaries (for data manipulation functions like error detection)
    • Lost piece of ADU  lost ADU
discussion questions
Discussion questions
  • How to name ADUs?
    • Sequence numbers?
  • Why not make ADU = packet?
  • Why not make ADU >> packet?
  • Does ALF imply a user-level protocol?
integrated layer processing
Integrated Layer Processing
  • Layering: + Design / - Implementation
  • Naive implementation  sequential processing at each layer
  • Clark/Tennenhouse argue that layering is not fundamental; rather, it's just one design option.
  • Alternative engineering principle: Integrated Layer Processing
slide16
ILP
  • Motivation: ever-widening memory / CPU bottleneck
  • ”Integrated processing loop”
    • Loop over bytes in packet
    • Touch each byte at most once
    • Massive integrated loop w/ all steps in-line
    • Trivial example: bcopy + checksum
  • Architecture must minimize precedence/ordering constraints, e.g.,
    • Some steps needs ordering (DES/CBC, decompression?)
    • Many steps need per/app state (wait for demux)
discussion questions1
Discussion Questions
  • How to implement ILP?
    • By hand?
    • Automatic synthesis?
    • How? compiler? formal language?
    • Protocol implementations typically ad hoc, and thus difficult to transform.
    • Formal techniques haven't panned out (yet...?)
  • Where are bottlenecks? where is most opportunity?
    • I claim at application! Then this is no longer really a networking problem; it's a really a compiler/application problem... (Example: encrypted/compressed video)