MOPDを調べようとしたら、BPFが使われているので、横道にそれてしまうようですが、BPFを理解するのを先に済ませることにしました。マニュアル「BPF(4)」を読むことも必要かと思いますが、そもそもBPFって結局何なのかを知るには大元となる論文を読むのがよさそうです。それは、1993年のWinter USENIXにおける「The BSD Packet Filter: A New Architecture for User-level Packet Capture」(Steven McCanne and Van Jacobson)との事なので、読んでみました。
論文の中に次のような記述がありました。
A packet filter is simply a boolean valued function on a packet. If the value of the function is true he kernel copies the packet for the application: if it is false the packet is ignored.
これを読んで、成程そういう事かと思いました。BPFについて調べはじめた当初、Webを検索すると、何かというと「仮想マシン」の話が出てきました。何故BPFと仮想マシンが結びつくのだろうと思いましたが、論文を読んで納得しました。
BPFについて何を理解したら「わかった」という事になるのかという点では、いろいろと意見が別れるところだと思います。しかしMOPDを理解するためのBPFという意味では、「わかった」という事にしても構わないと思います。
0 件のコメント:
コメントを投稿