# SK
## Zad1

**1**
```
/8
10.0.0.0 - pierwszy adres
10.255.255.255 - ostatni adres
10.1.2.3.4 - adres komputera
10.5.6.7 - jakis inny adres
```
**2**
```
/16
156.17.0.0 - adres sieci
156.17.255.255 - rozgloszeniowy
156.17.152.46 - adres jakiegos komputera
```
**3**
```
/27
99.99.99.99 - komputera
01100011 - 99
99.99.99.96 - adres sieci
99.99.99.177 - adres rozgloszeniowy
```
**4**
```
/30
156.17.64.4 - adres sieci
156.17.64.7 - adres rozgloszeniowy
156.17.64.5 - adres komputera
```
**5**
```
/32
123.123.123.123 - wszystko naraz
(rozgloszeniowy, komputera, sieci)
```
## Zad2

```
sieć 10.10.0.0/16 czyli
10.10.0.0 do 10.10.255.255
1. 10.10.{111...}.0/19
2. 10.10.{101...}.0/19
3. 10.10.{110...}.0/19
4. 10.10.{100...}.0/19
5. 10.10.{0...}.0/17 (2^15 mozliwosci)
1. 10.10.{1...}.0/17 - najwieksza mozliwa i dzielimy ciagle na pol
2. 10.10.{01...}.0/18
3. 10.10.{001...}.0/19
4. 10.10.{0001...}.0/20
5. 10.10.{0000...}.0/20- minimalny rozmiar podsieci
(2^12 mozliwosci)
Skoro inne stworzyliśmy tworząc jak największe to ta ostatnia będzie minimalna
```
## Zad3

```
Do routera A zakres 0.0.0.0 - 255.255.255.255
Do routera B zakres 10.0.0.0 - 10.0.1.255
Do routera B zakres 10.0.2.0 - 10.0.2.255
Do routera B zakres 10.0.3.0 - 10.0.3.255
Do routera C zakres 10.0.1.0 - 10.0.1.255
Do routera B zakres 10.0.0.128 - 10.0.0.255
Do routera B zakres 10.0.1.8 - 10.0.1.15
Do routera B zakres 10.0.1.16 - 10.0.1.23
Do routera B zakres 10.0.1.24 - 10.0.1.31
10.0.{000000.}.0 /23
10.0.{0000010}.0(2) /24
10.0.{0000011}.0(3) 24
Tutaj wspólny bit 23 dla 10.0.{2|3}.0/24, a z 10.0.0.0/23
mogą stworzyć sieć 10.0.0.0/22
10.0.{00000..}(0)
10.0.{0000001}(1)
10.0.0.{1...}(128)
10.0.1.{00001000}(8)
10.0.1.{00010000}(16)/29
10.0.1.{00011000}(24)/29
10.0.1.{16|24}/29 -
wspolny 28 bitow i 29 rozni sie 0 a 1 więc cala przestrzen adresow 10.0.1.16/28
Redukujemy
10.0.1.16/29 i 10.0.1.24/29 do 10.0.1.16/28
Uproszczone:
Do routera A zakres 0.0.0.0 - 255.255.255.255 (0.0.0.0/0)
Do routera B zakres 10.0.0.0 - 10.0.3.255 (10.0.0.0/22)
Do routera C zakres 10.0.1.0 - 10.0.1.255 (10.0.1.0/24)
Do routera B zakres 10.0.1.8 - 10.0.1.15 (10.0.1.8/29)
Do routera B zakres 10.0.1.16 - 10.0.1.31 (10.0.1.16/28)
```
## Zad4

```
10.3.0.{001...}(32)
10.3.0.{010...}(64)
10.3.0.{011...}(96)
10.3.0.{96|64} - wspólny 26 bit i nastepny rozni sie 0 a 1
a więc z 10.3.0.64/27 i 10.3.0.96/27 otrzymujemy
10.3.0.64/26
Po jednym uproszczeniu:
A 0.0.0.0 - 255.255.255.255 0.0.0./0
B 10.0.0.0 - 10.255.255.255 10.0.0/8
C 10.3.0.0 - 10.3.0.255 10.3.0.0/24
B 10.3.0.32 - 10.3.0.63 10.3.32/26
B 10.3.0.64 - 10.3.0.127 10.3.0.64/27
Można zauważyć, że jesteśmy w stanie "zbudować" dwie takie nowe podsieci:
10.3.0.0/27 10.3.0.0 - 10.3.0.31
10.3.0.128/25 10.3.0.128 - 10.3.0.255
które są podsieciami C i nie zawierają adresów z puli 10.3.0.32/26
Możemy tak zrobić, gdyż 26 > 24 więc B łapie adresy
10.3.0.32/26 będące również w puli adresów 10.3.0.0/24
Dzięki temu adresy 10.3.0.32/26 będą łapane przez
10.0.0.0/8.
Uproszczone:
A 0.0.0.0/0
B 10.0.0.0/8
C 10.3.0.0/27
C 10.3.0.128/25
```
## Zad5

Ustawiamy wpisy w tablicy od tych z największą długością maski bitowej do tych z najmniejszą maską. Te z taką samą ustawiamy w losowy sposób.
Załóżmy nie wprost, że pierwszy co wybraliśmy X z maską długości N nie jest najlepiej dopasowany, ale to oznacza, że poniżej jego znajduje się lepsze dopasowanie Y z maską długości M.(bo jakby bylo wyzej to zostaloby wybrane)
Jeśli M = N To Y nie może być lepiej dopasowany gdyż ma pierwsze M bitów różne od X, a jeden adres nie może pasować do dwóch sieci z maską bitową takiej samej długości, a więc sprzeczność
Druga opcja to M < N, ale to w takim razie X jest lepiej dopasowany. Sprzeczność.
Trzecia opcja M > N, ale to też sprzeczność, bo Y jest niżej w tablicy niż X, a jakby był wyżej to wzięlibyśmy go.
W takim razie pierwszy pasujący odpowiada wyborowi pierwszy pasujący.
## Zad6
Stan zostanie osiągnięty w 3 krokach.


## Zad7

Będzie trzeba zaktualizować tablice, gdyż powstaną nowe krótsze odległości
