Zestaw na "Kolokwium 1"¶
ALOHA¶
Zaimplementuj wysyłanie wiadomości przez serwer współdzielonego stanu symulujący "dostęp do kabelka miedzianego". Zadbaj o obsługę współdzielenia łącza przy pomocy algorytmu ALOHA:
- Unikaj wysyłania wiadomości, jeżeli ktoś już w tej chwili zajął łączę.
- Przerwij wysyłanie wiadomości, jeżeli wykryjesz uszkodzenie komunikatu spowodowane konfliktem dostępu do łącza.
- Ponów próbę nadania komunikatu po odczekaniu losowego okresu czasu (w celu złamania symetrii i rozwiązania konfliktu).
- Zastosuj strategię Exponential-Backoff, żeby skutecznie rozwiązywać jednoczesne konflikty pomiędzy wieloma nadającymi.
Time Protocol¶
Zaimplementuj klient i serwer usługi Time Protocol w wersji TCP, oraz serwer Time Protocol w wersji UDP. Możesz wykorzystać materiały z zajęć (klient i serwer TCP do zdalnego symulatora wspólnego stanu, oraz klient Time Protocol w wersji UDP). Dodatkowe materiały, które mogą być pomocne:
Proste pobieranie plików¶
Zaimplementuj stronę kliencką opisanych na ćwiczeniach usług udostępniania plików w wersji TCP i w wersji UDP. Na stronie ćwiczeń znajduje się opis wiadomości używanych w tych protokołach, oraz implementacje strony serwerowej. Możesz wykorzystać kod konstruujący odpowiedzi w serwerze UDP do konstrukcji zapytań w kliencie UDP, który masz zaimplementować.
Program uruchomiony przez
powinien pobrać plik1K.data z serwera TCP działającego pod adresem serwer.sieci.tcs.ovh:4567.
Podobnie
powinien pobrać plik 1M.data z serwera UDP działającego pod adresem serwer.sieci.tcs.ovh:4567.
Uwaga, ten plik zostanie przez serwer podzielony na ponad 1000 fragmentów.
Przyspieszone pobieranie plików przez UDP¶
Na stronie ćwiczeń znajduje się opis usprawnień, jakie można wprowadzić w kliencie UDP tak, żeby pobierał pliki z większą prędkością. Zimplementuj i przetestuj przyspieszone wersje klienta UDP.