---
# System prepended metadata

title: SO - Lista 9
tags: [SO]

---

# SO - Lista 9
###### tags: `SO`


## Zadanie 1

![](https://i.imgur.com/IDZdiq5.png)

### Warstwy:

- łącza - Usługi świadczone przez warstwę łącza zależą od określonego protokołu warstwy łącza, który jest używany w łączu. Na przykład niektóre protokoły warstwy łącza zapewniają niezawodne dostarczanie z węzła nadawczego przez jedno łącze do węzła odbiorczego. Należy zauważyć, że ta niezawodna usługa dostarczania różni się od niezawodnej usługi dostarczania protokołu TCP, która zapewnia niezawodne dostarczanie z jednego systemu końcowego do drugiego. Przykłady protokołów warstwy łącza obejmują Ethernet, WiFi i protokół DOCSIS sieci kablowej.
- siecowa - Warstwa sieciowa Internetu obejmuje słynny protokół IP, który definiuje sposób, w jaki systemy końcowe i routery działają na tych polach. Warstwa sieciowa Internetu zawiera również protokoły routingu, które określają trasy, jakie pokonują datagramy między źródłami a miejscami docelowymi.
- transportowa - Jej głównym zadaniem jest sprawna obsługa komunikacji pomiędzy urządzeniami. W warstwie tej dane dzielone są na mniejsze części, następnie opatrywane są dodatkowymi informacjami pozwalającymi zarówno przydzielić je do właściwej aplikacji na urządzeniu docelowym, jak i pozwalającymi złożyć je na urządzeniu docelowym w odpowiedniej kolejności.
    
Kapsułkowanie - "Jak mamy pakiet to w danych znowu może być jakiś pakiet składający się z nagłówka i danych".

## Zadanie 2

![](https://i.imgur.com/8upzvw7.png)

TCP good control, UDP no control
Komunikacja dupleksowa oznacza możliwość równoległego przesyłu danych w obu kierunkach (klient-serwer, serwer-klient)

" Jezeli klient zakończy strumień wejściowy to wywołamy close, które skoordynuje zamknięcie połączenia sieciowego, czyli wyśle jakiś specjalny pakiet(dla nas niewidoczny - chyba że odpalimy jakieś specjalne oprogramowanie).
Ta informacja ląduje w jądrze po stronie serwera. Jądro informuje proces który przetwarzał dane na deskryptorze, że nastąpiła terminacja strumienia wejściowego i w wyniku tego otrzymamy z reada EOF i zostanie zamknięte połączenie. Możemy teraz przejśc do następnego połączenia"


## Zadanie 3

![](https://i.imgur.com/go367fq.png)

![](https://i.imgur.com/6nS0r6j.png)

Klient używa portów ulotnych
Ephemeral port - "Porty >1024, każdy proces może przypisać dany port gniazdu. Wybierane przez procesy użytkownika świadomie(rzadko) lub przydzielane automatycznie przez jądro(zazwyczaj)"

Drugi argument listen oznacza liczbe połączeń, które jesteśmy wstanie zakolejkować


## Zadanie 4

![](https://i.imgur.com/Fowlj7U.png)

![](https://i.imgur.com/VHl3NMh.png)


## Zadanie 5

![](https://i.imgur.com/Qx1cSaJ.png)

Short count - EOF / pełne bufory

Read zwraca EINTR, jeśli przyjdzie sygnał, zanim cokolwiek dostaliśmy
Write ```-||-``` zanim cokolwiek napisaliśmy

