Berkeley Packet Filter

Wikipediasta
Siirry navigaatioon Siirry hakuun

Berkeley Packet Filter (BPF) on vuonna 1992 esitelty menetelmä käsitellä verkkopaketteja käyttäjätasolla Unixeissa ja Unixin kaltaisissa käyttöjärjestelmissä.[1] BPF:n kehittivät Steven McCanne ja Van Jacobson Lawrence Berkeley Laboratoryssa.[1][2] Kehittäjien paperin mukaan BPF on 10–150 kertaa nopeampi kuin SunOS:n NIT ja 1,5–20 kertaa nopeampi kuin CMU/Stanfordin pakettisuodatin CSPF.[1] Keskeisenä syynä nopeuserolle mainitaan rekisteripohjainen "suodatinkone", joka on tehokkaampi kuin muistipohjainen CSPF moderneilla suorittimilla.[1]

Ratkaisu on lisätty Linux-ytimeen alun perin ytimen versiossa 2.5 ja on laajennettu myöhemmin.[3][4][5] Laajennettu eBPF tukee rajattuja ohjelmia assemblyn tai C-kielen kaltaisella kielellä LLVM-kääntäjän avulla.[5] Tukea on myös laajennettu muihinkin kuin verkkorajapinnan paketteihin.[6] eBPF:n merkittäviä eroja aiempaan ovat 64-bittisten rekisterien hyödyntäminen ja rekisterien määrän kasvaminen kahdesta kymmeneen.[7]

Esimerkki käyttökohteesta on komentorivillä ajettava tcpdump-ohjelma.[1] BPF-toimintoa voidaan käyttää myös esimerkiksi tietokantakyselyiden suorituskyvyn analyysiin.[8]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. a b c d e Steven McCanne & Van Jacobson: The BSD Packet Filter: A New Architecture for User-level Packet Capture (PDF) tcpdump.org. 19.12.1992. Viitattu 27.11.2017.
  2. The BSD Packet Filter: A New Architecture for User-level Packet Capture (PDF) usenix.org. Viitattu 17.10.2019. (englanniksi) 
  3. Corbet, Jonathan: BPF: the universal in-kernel virtual machine 21.5.2014. LWN.net. Viitattu 27.11.2017.
  4. Linux Socket Filtering aka Berkeley Packet Filter (BPF) kernel.org. Viitattu 27.11.2017.
  5. a b Corbet, Jonathan: Attaching eBPF programs to sockets 10.12.2014. LWN.net. Viitattu 27.11.2017.
  6. Larabel, Michael: Understanding The Linux Kernel's BPF In-Kernel Virtual Machine 3.3.2015. Phoronix. Viitattu 27.11.2017.
  7. Matt Fleming: A thorough introduction to eBPF 2.12.2017. Lwn.net. Viitattu 18.10.2019. (englanniksi)
  8. Laracey, Kyle: What is BPF and why is it taking over Linux Performance Analysis? 16.8.2016. MemSQL. Viitattu 28.11.2017.
Tämä ohjelmistoon liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.