ECE 697J Advanced Topics Advanced Topics ECE 697J in Computer - - PowerPoint PPT Presentation

ece 697j advanced topics advanced topics ece 697j in
SMART_READER_LITE
LIVE PREVIEW

ECE 697J Advanced Topics Advanced Topics ECE 697J in Computer - - PowerPoint PPT Presentation

ECE 697J Advanced Topics Advanced Topics ECE 697J in Computer Networks in Computer Networks Packet Processing Algorithms and Data Structures 9/16/03 Tilman Wolf 1 Packet Processing Packet Processing Software processing of


slide-1
SLIDE 1

Tilman Wolf 1

ECE 697J ECE 697J – – Advanced Topics Advanced Topics in Computer Networks in Computer Networks

Packet Processing Algorithms and Data Structures 9/16/03

slide-2
SLIDE 2

Tilman Wolf 2

Packet Processing Packet Processing

  • Software processing of packets
  • Issues:

– System goals – Buffer management – Network byte order – Bridge algorithm – Table lookups and hashing – IP fragmentation and reassembly – IP forwarding – TCP connection recognition – TCP splicing

slide-3
SLIDE 3

Tilman Wolf 3

System Goals System Goals

  • “To allow it to run arbitrarily long, a network system must

be designed with limits on all resources and the limits must be fixed independent of arriving traffic; designs that violate this principle will not be considered”

  • Examples?
  • Related statement: “Network systems should be

designed to handle worst case traffic.”

  • How is this different from a general workstation?
slide-4
SLIDE 4

Tilman Wolf 4

Packet Buffers Packet Buffers

  • How many packet buffers should be available?

– Many to avoid loss – Few to avoid delay

  • Variable-size buffer allocation

can lead to fragmentation

– Example?

  • Buffer copying is expensive

– Why? – What can be done to reduce buffer copies?

  • What size should buffers be?

– Max IP packet size is 64kB

slide-5
SLIDE 5

Tilman Wolf 5

Packet Sizes Packet Sizes

  • From caida.org:
slide-6
SLIDE 6

Tilman Wolf 6

Packet Sizes Packet Sizes

  • From caida.org:
slide-7
SLIDE 7

Tilman Wolf 7

Buffer Sizes Buffer Sizes

  • Many packets are very small
  • Almost no packets larger than 1500 bytes
  • Buffer allocation schemes:

– Large buffer – Linked list

  • What are the pros and cons?
  • Example implementation of buffer mechanism:

– “mbufs” in BSD Unix operating system

slide-8
SLIDE 8

Tilman Wolf 8

mbufs mbufs

  • Unix BSD packet mbufs:
  • Also allows for large buffer
slide-9
SLIDE 9

Tilman Wolf 9

Byte Order Byte Order

  • Networks connect to heterogeneous end-systems
  • Different end-systems implement things differently
  • Byte order: arrangement of bytes that make up word

– Little endian: – Big endian:

  • Which systems implement what order?

– Intel architecture: little endian – Network byte order: big endian

slide-10
SLIDE 10

Tilman Wolf 10

Byte Order Conversion Byte Order Conversion

  • Typical OS functions to adjust byte order:
  • This is a major source of programming errors!
  • Side note: What are other annoying system convention

that cause interoperability problems?

slide-11
SLIDE 11

Tilman Wolf 11

Next Class Next Class

  • Ramu will present:

– Packet classification – Scheduling – Read chapters 6 & 9

  • Next Tuesday:

– IP lookup paper (everybody read the paper!) – Protocol software on conventional processor (chapter 7)

  • Other issue:

– Presentation evaluation form