Komunikacja Wykład 2
Protokoły warstwowe (1) 2-1 Warstwy, interfejs i protokoły w modelu OSI.
Protokoły warstwowe (2) 2-2 Typowy komunikat od strony sieci.
Rozmowa między nadawcą i odbiorcą w warstwie łącza danych. Warstwa łącza danych 2-3 Rozmowa między nadawcą i odbiorcą w warstwie łącza danych.
TCP w modelu klient-server 2-4 normalnie działanie protokołu TCP. TCP transakcyjne.
Protokoły oprogramowania warstwy pośredniej 2-5 Zmodyfikowany model wzorcowy komunikacji sieciowej.
Lokalne wywoływanie procedur c = read(fd,buf,bytes); Przekazywanie parametrów w lokalnym wywoływaniu procedur: stos przed wywołaniem funkcji read stos w czasie wykonywania procedury
Namiastka klienta i serwera Principle of RPC between a client and server program.
Kolejne kroki w RPC Procedura klienta (PK) wywołuje namiastkę klienta (NK) NK buduje komunikat i przesyła go do zdalnego SO (ZSO), blokuje się ZSO przekazuje komunikat namiastce serwera (NS) NS wywołuje procedure serwera (PS) PS wykonuje zadanie i zwraca wynik NS NS używa SO do wysłania komunikatu do NK SO klienta przekazuje komunikat do NK NK rozpakowuje komunikat i zwraca go do PK
Przekazywanie parametrów 2-8 Etapy wykonywanie zdalnych obliczeń za pomocą RPC
Specyfikowanie parameterów i generowanie namiastki procedura odpowiadający jej komunikat.
Zasada używania drzwi w RPC.
Asynchroniczne RPC (1) 2-12 Interakcja w synchronicznym RPC Interakcja w asynchronicznym RPC
Interakcja klienta i serwera za pośrednictwem 2 asynchronicznych RPC Asynchroniczne RPC (2) 2-13 Interakcja klienta i serwera za pośrednictwem 2 asynchronicznych RPC
Tworzenie kodu klienta i serwera 2-14
Wiązanie klienta z serwerem 2-15 Wiązanie klienta do serwera w DCE.
Obiekty rozproszone 2-16 Ogólna organizacja obiektu zdalnego z pośrednikiem (proxy) po stronie klienta.
Wiązanie klienta z obiektem Distr_object* obj_ref; // Deklaracja ogólnosystemowej referencji obj_ref = …; // Inicjalizacja referencji do obiektu rozproszonego obj_ref-> do_something(); // Niejawne wiązanie i wywołanie metody (a) Distr_object objPref; // Deklaracja ogólnosystemowej referencji Local_object* obj_ptr; // Deklaracja wskaźnika do obiektu lokalnego obj_ref = …; // Inicjalizacja referencji do obiektu rozproszonego obj_ptr = bind(obj_ref); // Jawne wiązanie i otrzymanie wskaźnika do proxy obj_ptr -> do_something(); // Wywołanie metody przy użyciu lokalnego pośrednika (b) (a) Wiązanie niejawne przy użyciu referencji globalnej (b) Wiązanie jawne przy użyciu referencji globalnej i lokalnej
Przekazywanie parametrów 2-18 Przekazywanie parametrów przez wartość lub referencję.
Model obiektu rozproszonego w DCE 2-19 Dynamiczny obiekt rozproszony w DCE Nazwane obiekty rozproszone
Trwałość i synchroniczność w komunikacji (1) 2-20 Organizacja systemu komunikacji, w którym komputery są połączone za pośrednictwem sieci.
Trwałość i synchroniczność w komunikacji (3) Komunikacja trwała w czasach poczty konnej.
Trwałość i synchroniczność w komunikacji (3) 2-22.1 Trwała komunikacja asynchroniczna Trwała komunikacja synchroniczna
Trwałość i synchroniczność w komunikacji (4) 2-22.2 Przejściowa komunikacja asynchroniczna Przejściowa komunikacja synchroniczna z pokwitowaniem
Trwałość i synchroniczność w komunikacji (5) Przejściowa komunikacja synchroniczna oparta na dostarczeniu Przejściowa komunikacja synchroniczna oparta na odpowiedzi
Operacje elementarne na gniazdach w TCP/IP. Sockety Berkeley (1) Operacja elementarna Znaczenie Socket Tworzy nowy punkt końcowy Bind Przypisuje gniazdu adres lokalny Listen Ogłasza gotowość akceptowania połączeń Accept Blokuje wywołującego do czasu rozpoczęcia połączenia Connect Próbuje aktywnie nawiązać połączenie Send Wysyła dane Receive Odbiera dane Close Zamyka połączenie Operacje elementarne na gniazdach w TCP/IP.
Wzorzec komunikacji połączeniowej z użyciem socketów. Sockety Berkeley (2) Wzorzec komunikacji połączeniowej z użyciem socketów.
Interfejs przekazywania komunikatów (MPI) Operacja elementarna Znaczenie MPI_bsend Dołącz komunikat wychodzący do lokalnego bufora nadawczego (c) MPI_send Wyślij komunikat i zaczekaj aż zostanie skopowiany do lokalnego lub zdalnego bufora (d), (e) MPI_ssend Wyślij komunikat i zaczekaj do rozpoczęcia pokwitowania (e) MPI_sendrecv Wyślij komunikat i zaczekaj do otrzymania odpowiedzi (f) MPI_isend Przekaż referencję do komunikatu wychodzącego i kontynuuj działanie MPI_issend Przekaż referencję do komunikatu wychodzącego i zaczekaj do rozpoczęcia pokwitowania MPI_recv Odbierz komunikat / Zablokuj dopóki bufor jest pusty MPI_irecv Sprawdź czy nadszedł komunikat, nie blokuj Niektóre z najbardziej intuicyjnych operacji przekazywania komunikatów w MPI
Model kolejkowania komunikatów (1) 2-26 4 kombinacje komunikacji luźno powiązanej przy użyciu kolejek
Model kolejkowania komunikatów (2) Operacja elementarna Znaczenie Put Dołącz komunikat do kolejki Get Blokuj tak długo jak kolejka jest pusta, zwróć pierwszą wiadomość Poll Sprawdź czy w kolejce są komunikaty i pobierz pierwszy (bez blokowania) Notify Zainstaluj procedurę obsługi (callback), która będzie wywołana, gdy w kolejce pojawi się komunikat Podstawowy interfejs kolejki w systemie kolejkowania komunikatów.
Ogólna architektura systemu kolejkowania komunikatów (1) Związek między adresowaniem na poziomie kolejki a adresowaniem na poziomie sieci
Ogólna architektura systemu kolejkowania komunikatów (2) 2-29 Ogólna organizacja systemu kolejkowania komunikatów za pomocą routerów.
Ogólna organizacja brokera komunikatów. Brokerzy komunikatów 2-30 Ogólna organizacja brokera komunikatów.
General organization of IBM's MQSeries message-queuing system. Example: IBM MQSeries 2-31 General organization of IBM's MQSeries message-queuing system.
Some attributes associated with message channel agents. Channels Attribute Description Transport type Determines the transport protocol to be used FIFO delivery Indicates that messages are to be delivered in the order they are sent Message length Maximum length of a single message Setup retry count Specifies maximum number of retries to start up the remote MCA Delivery retries Maximum times MCA will try to put received message into queue Some attributes associated with message channel agents.
Message Transfer (1) The general organization of an MQSeries queuing network using routing tables and aliases.
Primitives available in an IBM MQSeries MQI Message Transfer (2) Primitive Description MQopen Open a (possibly remote) queue MQclose Close a queue MQput Put a message into an opened queue MQget Get a message from a (local) queue Primitives available in an IBM MQSeries MQI
Setting up a stream between two processes across a network. Data Stream (1) Setting up a stream between two processes across a network.
Setting up a stream directly between two devices. Data Stream (2) 2-35.2 Setting up a stream directly between two devices.
An example of multicasting a stream to several receivers. Data Stream (3) An example of multicasting a stream to several receivers.
Characteristics of the Input Specifying QoS (1) Characteristics of the Input Service Required maximum data unit size (bytes) Token bucket rate (bytes/sec) Toke bucket size (bytes) Maximum transmission rate (bytes/sec) Loss sensitivity (bytes) Loss interval (sec) Burst loss sensitivity (data units) Minimum delay noticed (sec) Maximum delay variation (sec) Quality of guarantee A flow specification.
The principle of a token bucket algorithm. Specifying QoS (2) The principle of a token bucket algorithm.
Setting Up a Stream The basic organization of RSVP for resource reservation in a distributed system.
Synchronization Mechanisms (1) The principle of explicit synchronization on the level data units.
Synchronization Mechanisms (2) 2-41 The principle of synchronization as supported by high-level interfaces.