Abstract: Programming network is a tedious task. High level abstractions have been proposed to facilitate programming and increase portability and reliability. In this talk, I will present a rule-based language, Netlog, to express distributed applications such as communication protocols or P2P applications in a relatively declarative manner. The language extends Datalog with communication primitives, as well as aggregation and non-deterministic constructs, standard in networking applications. Netlog admits a sound distributed fixpoint semantics, which takes explicitly into account the in-node behavior as well as the communication between nodes. Netlog allows very concise programming. The language runs over a virtual machine, Netquest, which relies on a DBMS, and is portable over any device which support an embedded DBMS (eg, smart phones, PDA, iMote, network simulators, etc.).