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

### 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

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


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


## Zadanie 5

Short count - EOF / pełne bufory
Read zwraca EINTR, jeśli przyjdzie sygnał, zanim cokolwiek dostaliśmy
Write ```-||-``` zanim cokolwiek napisaliśmy