The packer filter: an efficient mechanism for user-level network code

  • Authors:
  • J. Mogul;R. Rashid;M. Accetta

  • Affiliations:
  • Digital Equipment Corp. Western Research Lab.;Carnegie Mellon Univ., Pittsburgh, Pa;Carnegie Mellon Univ., Pittsburgh, PA

  • Venue:
  • SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

Code to implement network protocols can be either inside the kernel of an operating system or in user-level processes. Kernel-resident code is hard to develop, debug, and maintain, but user-level implementations typically incur significant overhead and perform poorly.The performance of user-level network code depends on the mechanism used to demultiplex received packets. Demultiplexing in a user-level process increases the rate of context switches and system calls, resulting in poor performance. Demultiplexing in the kernel eliminates unnecessary overhead.This paper describes the packet filter, a kernel-resident, protocol-independent packet demultiplexer. Individual user processes have great flexibility in selecting which packets they will receive. Protocol implementations using the packet filter perform quite well, and have been in production use for several years.