Czy dodzwoniłem się do internetu?

Prowadzący: Jacek Kurek, Michał Radwański

Te warsztaty są odwołane!

Zadania kwalifikacyjne są tutaj.

Uwaga: z powodu formy tegorocznych warsztatów, zdecydowaliśmy, że nie możemy pogodzić jej z wymaganiami (przykładowo, bezpośrednia komunikacja po kablach audio staje się niemożliwa). Z tego powodu, warsztaty są odwołane.

Due to Coronavirus threat, all TCP traffic is converted into UDP one to avoid handshakes.

Some Three Letter Org

Opis

Zanim powstanie piękna strona internetowa wykorzystująca wszystkie featury HTML5, zanim pakiety TCP dolecą do ciebie z drugiego końca globu, do rozwiązania mamy jedno zaskakująco ciekawe pytanie - jak połączyć dwa komputery, i umożliwić im wysyłanie danych między sobą? Jak to jest, że pomimo tego, że tak wielu różnych wytwórców zajmuje sie produkcją sprzętu, urządzenia te są w stanie się dogadać?

Fakt, że w praktyce do celów przesyłu informacji używamy bardzo zróżnicowanych złącz (od USB, przez PCIe aż po cinche), a nawet różnych mediów fizycznych, oznacza, że zagadnienie to jest głębokie, a brak jest (na chwilę obecną) jednego rozwiązania. My spróbujemy ograniczyć się do absolutnego minimum, a jednak zaimplementowac działający, istniejący protokół, jakim jest Ethernet. Do tego celu posłużymy się również najprostszym do zrozumienia i użycia typem nośnika - falami dźwiękowymi.

W trakcie warsztatów zastanowimy się nad podstawowymi problemami związanymi z transmisją danych: negocjacją połączenia, odczytem transmisji, sprawdzaniem jej poprawności. Zaimplementujemy działający modem dźwiękowy, a następnie spróbujemy przesłać dane pomiędzy różnymi komputerami. Na koniec, spróbujemy wykręcić prędkość takiego łącza, i zobaczymy, do czego zdolne są wasze karty dźwiękowe.

 

Wymagania

Przed uczestnictwem w warsztatach warto posiąść następujące umiejętności:

  • Przynajmniej podstawowa znajomość GNU/linuxa - na tym (i tylko na tym) systemie będą działały przygotowane przez nas rozwiązania
  • Podstawowa znajomość pythona w tym:
    • Numpy
    • Środowiska wirtualne (venv)
    • Posiadania względnie aktualnej wersji pythona (min 3.6)
  • Wiedzę z zadań kwalifikacyjnych

Potrzebny sprzęt

Do przygotowania routera potrzebne będą:

  • Komputer z funkcjonalnym gniazdem słuchawek jack 3.5mm
  • Tenże komputer z działającym systemem GNU/Linux
  • W wypadku braku GNU/linuxa na komputerze, działający 8+GB pendrive gotowy do sformatowania i użycia w lepszej sprawie.

 

W razie jakichkolwiek pytań, można pisać na jacek.kurek21@gmail.com lub lisklusownik+www16@gmail.com.