Zadanie 2
---------

Nale�y przy pomocy technik RPC utworzy� trzy programy - klienta i serwera 
symuluj�ce przesy�anie danych w sieci za pomoc� protoko�u UDP oraz program
ko�cz�cy symulacj�. Dodatkowo nale�y napisa� skrypt lub program 
przeprowadzaj�cy symulacj�.

Program 1: Serwer
-----------------

Program serwera ma symulowa� dzia�anie sieci. Programy klient�w b�d�
��czy�y si� z serwerem za pomoc� protoko�u RPC i przekazywa�y mu
datagramy pseudo-UDP (w postaci odpowiednio sformatowanych struktur 
opisuj�cych pe�ny nag��wek datagramu IP po��czonego z datagramem UDP). 
Serwer b�dzie w losowy spos�b
- op�nia� datagram,
- zmienia� jego kolejno�� wzgl�dn� w stosunku do innych datagram�w,
- gubi� datagram
(prawdopodobie�stwo zdarzenia op�nienia oraz cz�sto�� gubienia
datagram�w maj� by� podawane w parametrach wywo�ania programu
serwera). Serwer na podstawie danych z nag��wka UDP (adresu i numeru 
portu) b�dzie przekazywa� do odpowiedniego klienta przes�any mu
datagram. Je�li przes�anie nie b�dzie mo�liwe, musi wygenerowa�
komunikat ICMP - odbiorca nieosi�galny i wys�a� go do komputera, kt�ry
nada� pocz�tkowy datagram UDP.

Ka�dy klient b�dzie musia� przed rozpocz�ciem komunikacji zarejestrowa�
sw�j adres IP oraz numer portu w serwerze.

Serwer udost�pnia za odpowiednim wywo�aniem list� wszystkich zarejestrowanych
u niego adres�w IP wraz z portami.

Serwer implementuje tak�e procedur� RPC ko�cz�c� jego prac�. Procedura 
ta jest wywo�ywana przez program ko�cz�cy symulacj�. Procedura ta
przed zako�czeniem programu serwera wypisuje na ekran
- liczb� otrzymanych datagram�w UDP,
- liczb� wys�anych datagram�w UDP,
- liczb� wys�anych datagram�w ICMP.


Program 2: Klient
-----------------

Program klienta po uruchomieniu losuje sw�j adres IP oraz numer portu
(adres IP musi byc w zakresie adres�w klasy A, B lub C). Rejestruje si�
u serwera, po czym w losowych odst�pach czasu pobiera list� dost�pnych
klient�w od serwera, losuje jednego z nich i wysy�a do niego za pomoc�
datagram�w pseudo-UDP obs�ugiwanych przez serwer pod wskazany (w wierszu 
wywo�ania klienta) plik. Plik musi by� podzielony na odpowiednie kawa�ki
mieszcz�ce si� w pojedynczym datagramie UDP. Klient mo�e wylosowa� tak�e
odbiorc� spoza listy - jednak zdarzenie to musi by� r�wnie prawdopodobne
jak zdarzenie wylosowania ka�dego innego odbiorcy.
 
Po wykonaniu okre�lonej (z wiersza wywo�ania) liczby rund klient ko�czy
dzia�anie i podaje statystyki: ile otrzyma� datagram�w UDP, ile ICMP,
ile wys�a� datagram�w UDP.

Program 3: Program ko�cz�cy symulacj�
-------------------------------------

Program wysy�a do serwera ��danie wywo�ania procedury ko�cz�cej symulacj�.


Program/skrypt wykonuj�cy symulacj�
-----------------------------------

Program ten ma uruchomi� z odpowiednimi parametrami serwera, nast�pnie
uruchomi� z odpowiednimi parametrami 100 klient�w, poczeka� a�
wszyscy klienci zako�cz� prac�, a nast�pnie wywo�a� program ko�cz�cy
symulacj�.

Termin: 7.04.2004
Ostatnia modyfikacja: 05.03.2004

Valid HTML 4.01!