Sieci komputerowe - Instrukcja do laboratorium nr 4
Autor: Robert Tomaszewski
Forma zaliczenia: zademonstrowanie działającego (lub zaawansowanego) programu na koniec zajęć i objaśnienie
jego konstrukcji/działania (bez sprawozdania).
Bazując na materiałach opisujących Netbios udostępnionych przed zajęciami przez prowadzącego, na wiedzy uzyskanej na
poprzednich zajęciach laboratoryjnych oraz wskazówkach umieszczonych na końcu tej instrukcji napisz programy (w języku
C lub w Pascalu) nadawcy i odbiorcy realizujące przesłanie komunikatu między sobą (np. tekstu – string) za pomocą datagramu
unicastowego (transmisja datagramowa punkt-punkt, nie broadcast!) oraz datagramu multicastowego (rozgłoszeniowego typu
jeden-do-grupy, nie zaś do wszystkich nasłuchujących!).
Ogólny wymagany schemat działania programu (osobny program nadawcy, osobny odbiorcy):
- Reset węzła Netbios (RESET) – nadawca i odbiorca.
- Pobranie łańcucha tekstowego od użytkownika (nazwa dla węzła) – nadawca i odbiorca.
- Dodanie nazwy:
- jako unikatowej (ADDNAME) – nadawca i odbiorca - transmisja unicast.
- jako unikatowej (ADDNAME – nadawca) i jako grupowej (ADDGROUPNAME – odbiorca) – transmisja multicast.
- Pobranie łańcucha tekstowego od użytkownika (komunikat do wysłania) oraz nazwy odbiorcy (adresata wysyłki, patrz pkt.3) – nadawca.
- Wysłanie datagramu (SENDDATAGRAM) – nadawca, odbiór datagramu (RECEIVEDATAGRAM) – odbiorca.
- Wyświetlenie odebranego komunikatu – odbiorca.
- Usunięcie dodanej nazwy (DELETENAME) – nadawca i odbiorca.
Wskazówki – zakładamy, że funkcje są wykonywane w trybie wait (synch.)
- Zwróć uwagę, że transmisje unicast i multicast różnią się tylko programem odbiorcy (a konkretnie – tylko sposobem dodania nazwy odbiorcy). Zatem należy napisać jeden program nadawcy i dwa programy odbiorców.
- Aktualne są wskazówki do poprzednich ćwiczeń laboratoryjnych (m.in. dodawanie/usuwanie nazw).
- Datagram nie może przekroczyć rozmiaru 512 bajtów, więc do przesłania zalecany jest jakiś tekst zawarty w zmiennej typu „String” (po stronie nadawcy i odbiorcy warto sobie zadeklarować bufor tego typu).
- Należy pamiętać, że wysyłka/odbiór wymagają podania adresu i rozmiaru bufora nadawczego/odbiorczego.
- Funkcja odbioru datagramu (RECEIVEDATAGRAM) jest funkcją bez limitu czasowego na odbiór, co oznacza, że po jej wywołaniu odbiorca czeka na jakikolwiek datagram zaadresowany do niego (TAKŻE BROADCASTOWY!)
- Programy nadawcy i odbiorcy można w celu sprawdzenia uruchomić na tej samej stacji, ale należy pamiętać, że dodawane do tabeli Netbios nazwy nadawcy i odbiorcy MUSZĄ BYĆ RÓŻNE! Dla przetestowania transmisji multicast można na tej samej stacji naraz uruchomić wiele instancji odbiorcy multicastowego NADAJĄC MU ZA KAŻDYM RAZEM TĄ SAMĄ NAZWĘ. Zaadresowany do takiej nazwy komunikat powinni odebrać wszyscy współdzielący tą nazwę. Nazwa nadawcy powinna być unikatowa w tym zadaniu.
- Testowanie:
- unicast: uruchom jedną instancję nadawcy i dwie instancje odbiorcy (różne nazwy) – datagram unicast powinien trafić tylko do jednego z nich,
- multicast: uruchom jedną instancję nadawcy i trzy instancje odbiorcy (dwóch z identyczną nazwą grupową, trzeci z inną nazwą grupową) – datagram wysłany do grupy dwóch odbiorców powinni odebrać tylko oni.