summaryrefslogtreecommitdiff
path: root/doc/handbook/images/tng.dot
blob: 14e72ee0453f739e99d8646835a94b98945f1856 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// house = application
// circle (default) = service
// box = daemon
// diamond = library
// black line = dependency
// blue line = extension via plugin
// red line = possibly useful
// dashed = in planning

// this is what we have...o
digraph tng {
  // splines = true;
  compound=true;
  subgraph cluster0 {
    label="Our peer";
    style=dashed;
    color=black;
  subgraph cluster1 {
    style=solid;
    color=black;
    tcp;
    udp;
    others [style=dotted];
    label="Communicators";
  }
  subgraph cluster2 {
    style=solid;
    color=black;
    dht;
    fs;
    cadet;
    label="Applications";
  }
  cadet -> core [ltail=cluster2,label="Communicate with peers"];
  dht -> transport [ltail=cluster2,label="Suggest connection to peer"];
  core -> transport [label="Send/receive messages via secure channel"];
  transport -> tcp [lhead=cluster1,dir=both,label="Offer connectivity/channel to other peer"];
  udp -> nat [label="Get addresses"];
  tcp -> nat;
  }
  subgraph cluster3 {
    rank = sink;
    style=dashed;
    color=black;
    peer3;
    peer1;
    peer2;
    label="Other peers";
  }


  tcp -> peer1 [dir=both];
  udp -> peer2;
  transport->peer1 [style=invis];
}