aboutsummaryrefslogtreecommitdiff
path: root/sem5/net/mm12/noter.md
blob: c60d913a4c0540ad7a76c6dc8a227e72c1b6ce2f (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
```
2020-10-15:s5/net/mm12/noter #6be5
```
# Sidste gang
## Konklusion af opgaver fra sidste gang

Fejl i TCP afhænger meget af hvilke pakker der bliver tabt.

## TCP wireless

TCP performance is very affected by wireless errors.
Solutions:

 -  Can use some special ACK which uses bitfields for acking multiple packets.
    Also called *SACK*, i think.

 -  Can Also terminate TCP in the middle and switch over to another protocol.
    Then move back to TCP at the other end of wireless.

 -  Modify layer 2 to work better with TCP.
     -  Can for example check if dupack and then drop it.

FEJL PÅ SLIDES: slide 31 "down-stream" skal være "up-stream".

# Fault tolerance

Dette er noter fra mm12.

How to handle faults in a network of services?

1.  Define a list of possible errors, with likelihood.
    Here errors can be prioritised based on likelihood and impact.

    Also called *Fault analysis*.

## Types of failures

 -  Crash
 -  Timing
 -  Assertive
 -  Arbitrary/Byzantine

## Metrics

**Availability** is the fraction of time the system is available.
For very reliable systems this should be $1-10^5$.

If there is **replication** the availability becomes $1-(1-A)^N$, where N is the
number of servers.

## Replication

> If availability is to low, just throw more servers at it. /s

Have multiple servers.
How to split traffic between servers:

 -  Just give a list of servers

    Means clients must do failover themselves.
    Sometimes this is not desirable.

 -  Have servers on the same ip address.
    So the client is unaware.

    This makes a constraint on the network, which must to load balancing.
    This could be done with a load balancer or with ARP.

 -  Have name servers which update depending on server availability.

TODO: Cluster framework.