Wyk éad VII

background image

2001 © Sławomir Jeżewski Katedra Informatyki Stosowanej
PŁ.

Programowanie sieciowe

Wykład VII a

SUN RPC

(Remote Procedure Call)

background image

Typy programowania w sieci

Jawne programowanie sieciowe

Niejawne programowanie sieciowe

background image

Historia

1975 White

Xerox Corporation

Courier 1981

Cedar 1984

1985 Bob Lyon

Sun Microsystems

ONC/RPC ( Open network Computing / Remote
Procedure Call )

1985

Apollo

NCA/RPC ( Network Computing Archtecture )

Hevlett Packard

OSF DCE ( Open Software Fundation Distributed
Computing Environment )

background image

Sun RPC

Materiały i opisy

RFC 1831 [Srinivasan 1995a]

RFC 1832 [Srinivasan 1995b]

background image

Proceduralny model

programu

background image

Proceduralny model

programu

background image

Proceduralny model

programu - rozszerzenie

background image

Proceduralny model

programu - rozszerzenie

background image

Struktura programu

background image

Model klient-server

usługi RPC

Program wywołujący procedurę – klient

Program oferujący procedury – serwer

background image

Model klient-server

usługi RPC

UDP

TCP

background image

Algorytm postępowania

przy uruchamianiu

serwera

Utwórz gniazdo bierne

Zarejestruj numer gniazda w bazie
odwzorowań

Przetwarzaj żądania kolejnych klientów

Oczekuj na połączenie klienta

Pobierz dane od klienta

Wykonaj działania

Zwróć wyniki

Zamknij połączenie

background image

Działanie serwera

Oczekuj na połączenie klienta

Pobierz dane od klienta *

Wykonaj działania

Zwróć wyniki *

Zamknij połączenie

background image

Algorytm działania

klienta

Połącz z zarządcą bazy odwzorowań ( Port 111)

Zapytaj o numer portu przydzielonego
programowi

Połącz z programem RPC na porcie wskazanym
przez zarządcę

Wyślij komunikat z poleceniem

background image

Format komunikatów

RPC

struct rpc_msg
{
unsigned int mesgid;
msg_type mesgt;
union
{
call_body cbody;
rply_body rbody;
}
}

struct call_body
{
unsigned int rpcvers;
unsigned int rprog;
unsigned int rprogvers;
unsigned int rproc;
struct opaque_auth cred;
struct opaque_auth verf;
struct args argumenty;

}

struct opaque_auth
{
auth_type atype;
opaque body<400;
}

AUTH_NULL
AUTH_UNIX
AUTH_SHORT
AUTH_DES
AUTH_KERBEROS

background image

Identyfikacja procedury

( program, procedura, wersja )

0x00000000 - 0x1fffffff

Sun Microsystems

0x20000000 - 0x3fffffff

0x40000000 - 0x5fffffff

0x60000000 - 0x7fffffff

0x80000000 - 0x9fffffff

0xa0000000 - 0xbfffffff

0xc0000000 - 0xdfffffff

0xe0000000 - 0xffffffff

Administrator w danym ośrodku
Numery tymczasowe
Numery zarezerwowane
Numery zarezerwowane
Numery zarezerwowane
Numery zarezerwowane
Numery zarezerwowane

background image

Zewnętrzna reprezentacja

Danych

XDR

Problem N-kwadrat konwersji danych

Konwersja symetryczna

Big Endian

background image

Podstawowe zasady konwersji XDR

int

32 bity Liczba całkowita ze znakiem

void

0

unsigned int 32 bity Liczba całkowita bez znaku
bool

32 bity Wartość boolowska

double

64 bity Liczba zmiennoprzecinkowa

hyper

64 bity

Liczba całkowita bez znaku

Unsigned hyper

64 bity

Liczba całkowita bez znakiem

float

32 bity Liczba zmiennoprzecinkowa

Zmienna

Rozmiar

Opis

background image

Podstawowe zasady konwersji XDR

opaque

Dowolna

Dane nie konwertowane

Typ zmiennej

Rozmiar

Opis

string

Dowolna

Łańcuch znaków ASCII

fixed array

Dowolna

Tablica o ustalonym rozmiarze

symbolic constant

Dowolna

stała symboliczna

structure

Dowolna

struktura C

Discriminated
union

Dowoln

a

unia C / rekord z wariantami

Pascal

counted array

Dowolna

Tablica o zmiennym rozmiarze

background image

Konstrukcja komunikatu

XDR

xdr_bool

xdr_int

xdr_char

xdr_double

xdr_ptrchar

xdr_ptrdouble

xdr_ptrint

xdr_float

xdr_float

xdr_enum

xdr_float

xdr_void

xdr_string

xdr_vector

xdrmem_creat

e

background image

Model procedury rpcgen

Procedura A

Procedura
sprzęgająca

Procedura
łącznikowa
klienta

Klient

Procedura A

Procedura
sprzęgająca

Procedura
łącznikowa

serwera

Serwer

background image

2001 © Sławomir Jeżewski Katedra Informatyki Stosowanej
PŁ.

Programowanie sieciowe

Wykład II b

Rozgłaszanie i rozsyłanie grupowe

( Protokół IGMP )

Internet Group Management Protocol


Document Outline


Wyszukiwarka

Podobne podstrony:
EIE Wyk ad VII 04 200
monitoring środowiska, Wyk+éad VII
Wyk ad 5 6(1)
Wyk ad II
Tkanki wyk ad 1
Ekonomika Transportu wyk+ad 1
Na wyk ad id 312279 Nieznany
!BSI, wyk ad 4

więcej podobnych podstron