summaryrefslogtreecommitdiff
path: root/docs/network/README
blob: edfacb2f058c23e7ccb8147c80bc17a5dfb179cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Goals:
- text-based protocols, telnetish, TCP/IPish
- comminucate over sockets (requests to services), both in client-
  (connect) and server-mode (bind,listen,accept)
- there should be no difference whether we talk to sockets, pipes
  of an external process or a file
- how events are colleted (select,poll,kqueue,/dev/poll,epoll,etc.)
  should be abstracted
- should be usable in single- and multithreaded environment
- we should scale, but not in the webserver-style (which would be
  optimization done too early in the wrong direction!)
- protocols should be designable like a Russian Nested Doll for being
  fast in business layer to device new protocols suiting the problem
- reach the 100MBit/s sustained transfer rate (yes I know, there are
  Gigabits/s NICs out there, but their speed is almost impossible to
  reach)

Links:
- Boost ASIO: on design
- POCO Net classes: on design
- http://www.kegel.com/rn/: an epoll/kqueue abstraction interface in C,
  good for idea hunting
- http://www.kegel.com/c10k.html: how to get more than 10k clients on a
  machine, a lot of useful links
- http://www.bullopensource.org/posix: POSIX effort to normalize
  asynchronous I/O interfaces
- Boinc: http://boinc.berkeley.edu: some ideas around protocol FSMs in
  networking