Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium komputerowych systemów pomiarowych Ćwiczenie 7 Wykorzystanie protokołu TCP do komunikacji w komputerowym systemie pomiarowym
1. Wstęp LAN (Local Aera Network) to sieć lokalna, na którą składa się grupa komputerów i urządzeń peryferyjnych rozmieszczonych w niewielkiej odległości od siebie. Sieć LAN umożliwia użytkownikom wszystkich stanowisk roboczych (posiadających prawa dostępu) wspólne korzystanie z danych oraz podłączonych urządzeń. Przepustowość sieci lokalnych sięga do 1Gb/s. Większość sieci lokalnych reprezentuje scentralizowany model: wokół jednego lub kilku serwerówskupione są komputery PC mogące wykorzystywać wspólne zasoby. Na podobnej zasadzie użytkownicy mogą dzielić czas innych urządzeń podłączonych do sieci, np. drukarek laserowych. W sieci LAN stosowane są protokoły: IP (Internet Protocol) dostarcza procedury wystarczające do przesłania danych między maszynami znajdującymi się w połączonych sieciach. Definiuje format pakietów oraz sposób ich adresowania. Nie kontroluje poprawności transmisji. Przykładami protokołów, które podczas transmisji odbierają i porządkują pakiety wysyłane przez IP, są TCP i UDP. TCP (Transmission Control Protocol) stanowi strumieniowy protokół komunikacji pomiędzy dwoma komputerami. Pełni funkcję warstwy transportowej. Jego zadanie polega na odbieraniu danych przez protokół IP i układaniu ich według numerów sekwencyjnych w logiczną i poprawną całość (wykonuje sprawdzanie błędów), a następnie na przekazaniu takiego segmentu do warstw wyższych. UDP (User Datagram Protocol) to bezpołączeniowy protokół komunikacyjny, stosowany niekiedy w zastępstwie TCP. UDP współpracuje z protokołem IP w zakresie przesyłania danych w sieci, jednak nie posiada mechanizmów nadzorujących poprawność transmisji. Model TCP/IP składa się z czterech warstw. Warstwa aplikacji - warstwa procesowa czy warstwa aplikacji (ang. process layer) to najwyższy poziom, w którym pracują użyteczne dla człowieka aplikacje takie jak np. serwer WWW czy przeglądarka internetowa. Obejmuje ona zestaw gotowych protokołów, które aplikacje wykorzystują do przesyłania różnego typu informacji w sieci. Wykorzystywane protokoły to m.in.: HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Window. Warstwa transportowa - warstwa transportowa (ang. host-to-host layer) gwarantuje pewność przesyłania danych oraz kieruje właściwe informacje do odpowiednich aplikacji. Opiera się to na wykorzystaniu portów określonych dla każdego połączenia. W jednym komputerze może istnieć wiele aplikacji wymieniających dane z tym samym komputerem w 2
sieci i nie nastąpi wymieszanie się przesyłanych przez nie danych. To właśnie ta warstwa nawiązuje i zrywa połączenia między komputerami oraz zapewnia pewność transmisji. Warstwa Internetu - warstwa Internetu lub warstwa protokołu internetowego (ang. internet protocol layer) to sedno działania Internetu. W tej warstwie przetwarzane są datagramy posiadające adresy IP. Ustalana jest odpowiednia droga do docelowego komputera w sieci. Niektóre urządzenia sieciowe posiadają tę warstwę jako najwyższą. Są to routery, które zajmują się kierowaniem ruchu w Internecie, bo znają topologię sieci. Proces odnajdywania przez routery właściwej drogi określa się jako trasowanie. Warstwa dostępu do sieci - warstwa dostępu do sieci lub warstwa fizyczna (ang. network access layer) jest najniższą warstwą i to ona zajmuje się przekazywaniem danych przez fizyczne połączenia między urządzeniami sieciowymi. Najczęściej są to karty sieciowe lub modemy. Dodatkowo warstwa ta jest czasami wyposażona w protokoły do dynamicznego określania adresów IP. 2. Opis ćwiczenia Najczęściej stosowanym protokołem komunikacyjnym jest TCP (Transmission Connect Protocol). W protokole tym zapewnione jest bezpieczeństwo przesyłania danych protokół sprawdza, czy wszystkie wysłane dane dotarły do odbiorcy i wysyła do nadawany potwierdzenie. Diagram przykładowego programu udostępniającego dane przez TCP przedstawiony jest poniżej. Rys1. Diagram przyrządu wirtualnego udostępniającego dane przez TCP. 3
Rys2. Okno panelu sterującego układu do udostępniania danych. Funkcja TCP Listen oczekuje na nawiązanie połączenia przez protokół TCP na porcie o podanym numerze. Podany w programie czas oczekiwania na połączenie wynosi 5000ms. Po nawiązaniu połączenia działanie programu przechodzi do pętli Whle-Loop. W pętli tej pobierany jest przebieg sinusoidalny (którego amplituda zadawana jest na panelu przednim). Wysyłanie danych zrealizowane jest w dwóch krokach: wysyłana jest ilość danych, ich wartość. Do wysyłania danych wykorzystano funkcję TCP Write, przy czym dane przed wysłaniem za pomocą funkcji Type Cast zostały przekonwertowane na łańcuch znaków. Wyjście z pętli zastępuje po naciśnięciu przycisku STOP na panelu sterującym lub po wystąpieniu błędu (błędem jest również przerwanie połączenia przez odbiorcę danych). Po wyjściu z pętli połączenie zostaje zamknięte (funkcja TCP Close Connection). Przerwanie połączenia przez odbiorcę danych generuje błąd o numerze 62. W programie dodano obsługę tego błędu, by nie był on sygnalizowany. Diagram programu do odbioru danych został przedstawiony poniżej. Rys3. Diagram programu do odbioru danych przez TCP. 4
Rys4. Panel sterujący układu odbierającego dane przez TCP. Przed uruchomieniem tego programu, trzeba uruchomić program udostępniający dane. Po uruchomieniu programu do odbierania danych zostaje nawiązane połączenie z serwerem o podanym adresie, na porcie o podanym numerze. Następnie wykonywanie programu przechodzi do pętli While-Loop, gdzie za pomocą funkcji TCP Read odbierane są dane z serwera. Ponieważ na wejście TCP Read trzeba podać liczbę bajtów do odczytu, odczyt danych odbywa się w dwóch krokach: odbierana jest ilość danych, gdy już wiadomo ile bajtów trzeba odebrać odbierana jest ich wartość. Do przekonwertowania tej funkcji należy podać wymagany typ danych. Odebrane dane przedstawione są na wykresie Waveform Graph. Pętla wykonywana jest do naciśnięcia przycisku STOP na panelu lub wystąpienia błędu. Poi wyjściu z pętli za pomocą funkcji TCP Close Connection połączenie zostaje zamknięte. Program umożliwia udostępnianie danych tylko jednej osobie. 3. Wykorzystywane elementy 5
6
7
8
9
10
11
4. Przykładowe ustawienia obrazujące działanie układów do nadawania i odbierania danych przez TCP. Rys5. Panel sterujący układ udostępniający dane przez TCP. 12
Rys6. Panel sterujący układu odbierającego dane przez TCP. 5. Literatura 1. Nawrocki Waldemar, Komputerowe systemy pomiarowe, Wydawnictwo Komunikacji i Łączności sp. z o.o., Warszawa 2006 2. Świsulski Dariusz, Komputerowa technika pomiarowa. Oprogramowanie wirtualnych przyrządów pomiarowych w LabView, Agenda Wydawnicza PAK-u, Warszawa 2005 3. Świsulski Dariusz, Komputerowa technika pomiarowa w przykładach.. Agenda Wydawnicza PAK-u, Warszawa 2002 4. Świsulski Dariusz, Laboratorium z systemów pomiarowych.. Wydawnictwa PG, Gdańsk 1998 5. LabView Measurement Manual, National Instruments 6. Graczyk A., Gołębiowski J., Prohuń T.: Laboratorium komputerowych systemów pomiarowych, Wydawnictwo Politechniki Łódzkiej, Łódź 2004. 13