Wyk éad VIII

background image

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

Programowanie sieciowe

Wykład VIII a

Usuwanie błędów

z programów sieciowych)

background image

Programy narzędziowe w systemach

UNIX

Śledzenie wywołań systemowych
truss ( SVR4 )

ktrace , kdump BSD/OS

strace ( Linux )

background image

Programy narzędziowe w systemach

UNIX

Monitorowanie aktywności sieci

netstat

tcpdump

Otwarte pliki

lsof

background image

truss

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

czynione przez program

PID istniejącego procesu

Nazwa programu do wywołania

background image

truss

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

Plik wyjściowy

Podążaj za potomkami

background image

truss

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

-o outfile

Plik wyjściowy

-f

Podążaj za potomkami

-c

Zliczaj wywołania

-a –e

Wyświetlaj łańcuchy znaków

(-a) i otoczenie ( -e)

przekazywanych do funkcji exec

background image

truss

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

-o outfile

Plik wyjściowy

-f

Podążaj za potomkami

-c

Zliczaj wywołania

-a –e

Wyświetlaj łańcuchy znaków

(-a) i otoczenie ( -e)

przekazywanych do funkcji exec

-d -D

Znacznik czasu/ diff

-t[!]

Wyświetlaj/nie wyświetlaj

wywołania funkcji z listy

-T[!][syscall]

Wyświetlaj/nie wyświetlaj

wywołania funkcji z listy

Które zakańczają proces

-v[!] [syscall]

Wyświetlaj/nie wyświetlaj

Zawartość struktur przekazanych

do wywołania

background image

truss

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

-s[!] [signal]

-S [!] signal

Wyświetlaj/nie wyświetlaj

sygnały

-u[!]lib:lib: [!] func

Wywołania funkcji użytkownika

Z bibliotek

background image

strace

truss [-fcaeildD] [ - [tTvx] [!] syscall ,...] [ - [sS] [!] signal ,...] [ -

[mM] [!] fault ,...] [ - [rw] [!] fd ,...] [ - [uU] [!] lib ,... : [:] [!]
func ,...] [-o outfile] com-

mand | -p pid...

Wywołania funkcji systemowych

-s[!] [signal]

-S [!] signal

Wyświetlaj/nie wyświetlaj

sygnały

-u[!]lib:lib: [!] func

Wywołania funkcji użytkownika

Z bibliotek

background image

truss

execve("/usr/bin/ls", 0xFFBFFA74, 0xFFBFFA7C) argc = 1

resolvepath("/usr/bin/ls", "/usr/bin/ls", 1023) = 11
resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16
stat("/usr/bin/ls", 0xFFBFF848) = 0
open("/var/ld/ld.config", O_RDONLY) = 3
fstat(3, 0xFFBFF2E8) = 0
mmap(0x00000000, 192, PROT_READ, MAP_SHARED, 3, 0) = 0xFF3B0000
close(3) = 0
stat("/usr/local/qt/lib/libc.so.1", 0xFFBFF18C) Err#2 ENOENT
stat("/usr/local/lib/libc.so.1", 0xFFBFF18C) Err#2 ENOENT
stat("/usr/lib/libc.so.1", 0xFFBFF18C) = 0
open("/usr/lib/libc.so.1", O_RDONLY) = 3
fstat(3, 0xFFBFF18C) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF3A0000
mmap(0x00000000, 802816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF280000
mmap(0xFF33C000, 24464, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 704512) =

0xFF33C000

mmap(0xFF342000, 6644, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) =

0xFF342000

munmap(0xFF32C000, 65536) = 0
resolvepath("/usr/lib/libc.so.1", "/usr/lib/libc.so.1", 1023) = 18
memcntl(0xFF280000, 117288, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("/usr/local/qt/lib/libdl.so.1", 0xFFBFF18C) Err#2 ENOENT
stat("/usr/local/lib/libdl.so.1", 0xFFBFF18C) Err#2 ENOENT
stat("/usr/lib/libdl.so.1", 0xFFBFF18C) = 0
open("/usr/lib/libdl.so.1", O_RDONLY) = 3

background image

strace

STREAMS trace messages

DESCRIPTION
strace without arguments writes all STREAMS event trace messages from all drivers
and modules to its standard output. These messages are obtained from the STREAMS
log driver (see log(7D)). If arguments are provided, they must be in triplets of the
form mid, sid, level, where mid is a STREAMS module ID number, sid is a sub-ID
number, and level is a tracing priority level. Each triplet indicates that tracing

messages are to be received from the given module/driver, sub-ID (usually

indicating minor device), and priority level equal to, or less than the given level. The
token all may be used for any member to indicate no restriction for that attribute.

<seq> <time hh:mm:ss> <ticks> <level> <flags> <module Id > <sub ID>
<message text>

background image

lsoff

list open files

lsof [ -?abChlnNOPRstUvVX ] [ -A A ] [ -c c ] [ +|-d d ] [+|-D D ] [ +|-f [cfgGn]

] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ +|-L [l] ] [ -m m ] [ +|-M ] [ -o [o] ] [ -p s ]
[ +|-r [t] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -- ] [names]

background image

lsoff

list open files

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sched 0 root cwd VDIR 32,0 1024 2 /
init 1 root cwd VDIR 32,0 1024 2 /
init 1 root txt VREG 32,0 913652 46 / (/dev/dsk/c0t0d0s0)
init 1 root txt VREG 32,0 3984 1759 / (/dev/dsk/c0t0d0s0)
init 1 root txt VREG 32,0 192000 148 / (/dev/dsk/c0t0d0s0)
init 1 root 0u FIFO 32,0 0t0 18154 /etc/initpipe
pageout 2 root cwd VDIR 32,0 1024 2 /
fsflush 3 root cwd VDIR 32,0 1024 2 /
syseventd 60 root cwd VDIR 32,0 1024 2 /
syseventd 60 root txt VREG 32,4 23776 215499 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 15468 223958 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 13304 222917 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 37060 222916 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 13576 222915 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 743856 206662 /usr/lib/libnsl.so.1
syseventd 60 root txt VREG 32,4 22184 396477 /usr/lib/locale/pl_PL.ISO8859-2/pl_PL.ISO8859-
2.so.2
syseventd 60 root txt VREG 32,4 866456 206549 /usr/lib/libc.so.1
syseventd 60 root txt VREG 32,4 16768 280711 /usr/platform/sun4u/lib/libc_psr.so.1
syseventd 60 root txt VREG 32,4 21676 206595 /usr/lib/libmp.so.2
syseventd 60 root txt VREG 32,4 138560 206622 /usr/lib/libthread.so.1
syseventd 60 root txt VREG 32,4 33460 207029 /usr (/dev/dsk/c0t0d0s4)
syseventd 60 root txt VREG 32,4 12532 206573 /usr/lib/libdoor.so.1

background image

netstat

show network status

SYNOPSIS
netstat [-anv] [-f address_family] [-P protocol]

netstat -g [-n] [-f address_family]

netstat -p [-n] [-f address_family {inet inet6 unix} ]

netstat -s [-f address_family] [-P protocol]

netstat -m [-v]

netstat -i [-I interface] [-an] [-f address_family] [inter-
val [count]]

netstat -r [-anv] [-f address_family | filter]

netstat -M [-ns] [-f address_family]

netstat -D [-I interface] [-f address_family]

background image

netstat

show network status

•UDP: IPv4
• Local Address Remote Address State
•-------------------- -------------------- -------
•zly.kis.p.lodz.pl.6147 moon.kis.p.lodz.pl.domain Connected
•zly.kis.p.lodz.pl.59258 moon.kis.p.lodz.pl.domain Connected

•TCP: IPv4
• Local Address Remote Address Swind Send-Q Rwind Recv-Q State
•-------------------- -------------------- ----- ------ ----- ------ -------
•zly.kis.p.lodz.pl.54090 irc.lublin.pl.6667 7300 0 48738 0 ESTABLISHED
•zly.kis.p.lodz.pl.63230 kujawiak.man.lodz.pl.nntp 8760 0 49640 0 CLOSE_WAIT
•zly.kis.p.lodz.pl.57263 poznan.irc.pl.6667 8192 0 48734 0 ESTABLISHED
•zly.kis.p.lodz.pl.55910 203-173-29-170.dyn.iinet.net.au.6883 64223 0 49730 0
ESTABLISHED
•zly.kis.p.lodz.pl.36180 javier-el-mejor.linkshosting.com.4661 7098 0 48459 0
ESTABLISHED

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:
wyk ad VIII - tablica 1, Zarządzanie WSB Poznań (licencjat), II semestr, Podstawy finansów - dr Jani
wyk ad VIII - tablica 2, Podstawy finansów - dr Janina Kotlińska
wyk ad VIII - tablica 3, Zarządzanie WSB Poznań (licencjat), II semestr, Podstawy finansów - dr Jani
EIE wyk ad VIII! 04 20
H Tendera W aszczuk, Integracja Europejska Wyk ad VIII 19 04 2011
Wyk ad 5 6(1)
Wyk ad II
Tkanki wyk ad 1
Ekonomika Transportu wyk+ad 1
Wyk ad Fizyka 2
Wyk ad 04
Na wyk ad id 312279 Nieznany
!BSI, wyk ad 4

więcej podobnych podstron