Programowanie współbieżne i rozproszone



Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Platformy Programistyczne Zagadnienia sieciowe i wątki

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Adresy URL. Zaawansowane technologie Javy 2019

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Programowanie Sieciowe 1

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Komunikacja z użyciem gniazd aplikacje klient-serwer

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Dr Michał Tanaś(

Programowanie sieciowe

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Przykłady interfejsu TCP i UDP w Javie

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Protokoły sieciowe - TCP/IP

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Przesyłania danych przez protokół TCP/IP

Model sieci OSI, protokoły sieciowe, adresy IP

Programowanie rozproszone w języku Java

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Networking. Zaawansowane technologie Javy 2019

Sieci komputerowe - Protokoły warstwy transportowej

KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

Aplikacja wielowątkowa prosty komunikator

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Obiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez:

Protokoły internetowe

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Klient-Serwer Komunikacja przy pomocy gniazd

1. Model klient-serwer

Sieci Komputerowe Modele warstwowe sieci

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Zadanie 2: transakcyjny protokół SKJ (2015)

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

JAVA I SIECI. MATERIAŁY:

Warstwa transportowa

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Aplikacja wielow tkowa prosty komunikator

Serwery multimedialne RealNetworks

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Programowanie w języku Java

Laboratorium Sieci Komputerowych - 2

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

URL. Budowa URL (ang. Uniform Resource Locator): working#downloading

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Ćwiczenie 2. Obsługa gniazd w C#. Budowa aplikacji typu klient-serwer z wykorzystaniem UDP.

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

Wybrane działy Informatyki Stosowanej

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Java programowanie w sieci. java.net RMI

ZiMSK. Konsola, TELNET, SSH 1

Bazy Danych i Usługi Sieciowe

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

Zadania z sieci Rozwiązanie

MASKI SIECIOWE W IPv4

Java programowanie sieciowe

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Tworzenie aplikacji rozproszonej w Sun RPC

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Programowanie współbieżne i rozproszone

pasja-informatyki.pl

Programowanie sieciowe

Podstawowe pojł cia. Czego sił nauczymy? Pojł cia hosta. Hosty Adresowanie Internetowe Porty Protokoóy

Sieci komputerowe Warstwa transportowa

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Protokoły zdalnego logowania Telnet i SSH

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Model OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna

Wykład VI. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Dr Michał Tanaś(

Adresy w sieciach komputerowych

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Moduł 11.Warstwa transportowa i aplikacji Zadaniem warstwy transportowej TCP/IP jest, jak sugeruje jej nazwa, transport danych pomiędzy aplikacjami

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...

Java a dost p do Internetu.

Analiza protokołu TCP/IP

Protokół sieciowy Protokół

Mapa wykładu. 2.6 Poczta elektroniczna. 2.7 FTP 2.8 Dystrybucja zawartości. 2.9 Dzielenie plików P2P SMTP, POP3, IMAP

INP002018W, INP002018L

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Podstawowe typy serwerów

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

TCP/IP formaty ramek, datagramów, pakietów...

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

ADRESY PRYWATNE W IPv4

Transkrypt:

Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż.

Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania wiadomości przez kanały komunikacyjne. wykorzystywane przede wszystkim w programowaniu rozproszonym.

Model klient - serwer Klient jest systemem, który zleca określone zadanie systemowi zwanemu serwerem. Serwer na żądanie klienta wykonuje określone usługi.

Ogólna architektura sieci

Model odniesienia ISO/OSI

Warstwa transportowa i warstwa sieciowa Protokół warstwy transportowej zapewnia logiczną komunikację między procesami uruchomionymi na różnych hostach. Protokół warstwy sieciowej zapewnia logiczną komunikację między hostami.

Gniazda Gniazdo (socket) identyfikuje punkt końcowy sieci. Paradygmat gniazd został zastosowany na początku lat 80-tych w systemie operacyjnym 4.2BSD Berkeley UNIX, stąd często mechanizm nazywany jest gniazdami Berkeley. Gniazda umożliwiają jednemu hostowi jednoczesną obsługę (w roli serwera) wielu klientów.

Gniazda Komunikacja przy użyciu gniazd wymaga pośrednictwa protokołów: IP warstwa sieciowa TCP lub UDP warstwa transportowa

Gniazda Gniazdo jest połączeniem numeru IP komputera i numeru portu, na którym odbywa się komunikacja. Przykład: Gniazdo 67.211.234.127:80 Adres IP Numer portu

Porty Dobrze znane porty (well-known ports) porty o numerach od 0 do 1024 zarezerwowane na potrzeby standardowych usług warstwy aplikacji, np.: FTP: port 21, HTTP: port 80. Lista dobrze znanych portów zdefiniowana jest przez organizację IANA (Internet Assigned Numbers Authority): http://www.iana.org/assignments/port-numbers

Protokół UDP Protokół UDP (User Datagram Protocol) realizuje usługę bezpołączeniowego dostarczania datagramów, tzn.: nie ustanawia w żaden sposób połączenia, nie sprawdza gotowości odległego komputera do odebrania przesyłanych danych ani poprawności ich dostarczenia.

Protokół UDP Połączenie UDP jest połączeniem punkt-punkt. Jednostką przesyłania danych dla protokołu UDP jest pakiet. Zaleta: mała ilość przesyłanych informacji kontrolnych.

Protokół TCP Protokół TCP (Transmision Control Protocol) jest protokołem niezawodnym i połączeniowym. Połączenie TCP jest zawsze połączeniem punkt-punkt. Protokół TCP sprawdza czy dane zostały dostarczone poprawnie i w określonej kolejności. Dane dostarczane przez protokół TCP mogą być traktowane jak strumień.

Protokół TCP (cd.) Jednostką przesyłania danych dla protokołu TCP jest segment. Proces nawiązujący połączenie nazywany jest procesem klienta. Drugi proces nazywany jest procesem serwera.

Aplikacje sieciowe Przy tworzeniu aplikacji sieciowej należy zdecydować z jakiego protokołu (UDP czy TCP) warstwy transportowej aplikacja będzie korzystać. Wybór protokołu warstwy transportowej dokonywany jest przy definiowaniu gniazd.

Programowanie aplikacji sieciowych

Programowanie aplikacji sieciowych (cd.) Serwer tworzy gniazdo związane z określonym portem i na tym kanale komunikacyjnym oczekuje na prośbę połączenia od klienta. Inicjatywa połączenia wychodzi od klienta. Klient musi znać host serwera oraz numer portu otwartego do przyjmowania połączeń. Informacja ta podawana jest gdy klient tworzy swoje gniazdo związane z tak określonym adresem.

Programowanie aplikacji sieciowych (cd.) Serwer akceptuje połączenie od klienta i tworzy inne gniazdo do komunikacji z danym klientem tak, aby pozostać dostępnym dla innych klientów na kanale, gdzie oczekuje na połączenia. Z punktu widzenia klienta jest to zazwyczaj to samo gniazdo, na którym zainicjowane zostało połączenie.

Programowanie aplikacji sieciowych (cd.) Rodzaje gniazd: Gniazdo serwera (reprezentowane w języku Java przez klasę ServerSocket). Gniazdo klienta (reprezentowane w języku Java przez klasę Socket) używane przez klientów oraz przez serwery do komunikacji z klientami po zaakceptowaniu połączeń od nich.

Pakiet java.net Pakiet java.net zawiera zestaw narzędzi dla programowania sieciowego.

Wybrane klasy pakietu java.net Inet4Address - reprezentuje adres IP w wersji 4. Inet6Address - reprezentuje adres IP w wersji 6. Socket - reprezentuje gniazdo klienta. ServerSocket - reprezentuje gniazdo serwera. DatagramSocket - reprezentuje gniazdo implementujące mechanizm wysyłania i odbierania datagramów w protokole UDP.

Nawiązywanie połączenia z serwerem Socket gniazdo=new Socket(serwer, port); serwer - adres (domenowy lub IP) serwera port - numer portu

Wczytywanie danych tekstowych z gniazda InputStream strwegniazda=gniazdo.getinputstream(); BufferedReader gniazdoodczyt=new BufferedReader(new InputStreamReader(strWeGniazda)); String linia=gniazdoodczyt.readline();

Zapisywanie danych tekstowych do gniazda OutputStream strwygniazda=gniazdo.getoutputstream(); DataOutputStream strwy=new DataOutputStream(strWyGniazda); strwy.writebytes(linia); strwy.flush();

Wczytywanie danych binarnych z gniazda InputStream strwegniazda=gniazdo.getinputstream(); DataInputStream gniazdoodczyt=new DataInputStream(strWeGniazda); int a=gniazdoodczyt.readint(); //float a=gniazdoodczyt.readfloat(); //itp.

Zapisywanie danych binarnych do gniazda OutputStream strwygniazda=gniazdo.getoutputstream(); DataOutputStream strwy=new DataOutputStream(strWyGniazda); strwy.writeint(liczba); //strwy.writefloat(liczba); //itp.

Wczytywanie danych serializowanych z gniazda InputStream strwegniazda=gniazdo.getinputstream(); ObjectInputStream gniazdoodczyt=new ObjectInputStream(strWeGniazda); Object obiekt=gniazdoodczyt.readobject();

Zapisywanie danych serializowanych do gniazda OutputStream strwygniazda=gniazdo.getoutputstream(); ObjectOutputStream strwy=new ObjectOutputStream(strWyGniazda); strwy.writeobject(obiekt);

Uruchamianie serwera i przyjmowanie żądań ServerSocket gniazdoserwera=new ServerSocket(port); Socket gniazdo=gniazdoserwera.accept();

Zamykanie gniazda gniazdo.close();