I’m currently evaluating some alternatives for network simulations with virtual machines in Linux.
So far, the best solution available would be Xen, but other good solutions would be OpenVZ and Linux VRF. Linux VRT provides separate networks profiles for processes, so that one process can have some interfaces, firewall rules and routing table, while other [...]
Archive for the 'Networking' Category
The Problem with select()
04Aug07select() is a relatively expensive operation. Well, it is never described as such in operating system courses, but it is in fact, specially when you design programs that handle a lot of file descriptors. Let’s see why.
Most servers work in the following way. When a new client connects and a session starts, the server establishes [...]
Tendencies in P2P
10May07I was reading an article about P2P the other day when I realized that users preferences in this field have changed in the last couple of years. This is the graph that you can get from Google Trends about the most important P2P clients available:
kazza - bittorrent - emule - ares
The first noticeable thing is [...]
Implementing negotiations (3)
12Sep06A most radical alternative would be to forget the whole idea of listeners and to serialize everything. With this approach, the gap between the dispatcher and the session negotiator would be very narrow, and the system design would be made around the idea of a composed state machine where negotiators are decomposed in several layers.
Figure [...]
Implementing negotiations (2)
11Sep06While the state and observer patterns combination is a quite effective solution, the problem is now in the way listeners’s actions are perfomed.
- On one hand, listener’s action can be started asynchronously (usually as a new threads). This is a very convenient approach when there is low interaction between listeners, but it can increase the [...]


