Upload
sabin-buraga
View
2.314
Download
1
Embed Size (px)
DESCRIPTION
Computer Networks course (in Romanian).
Citation preview
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[11]]
ReteleRetele
de de calculatoarecalculatoare NivelulNivelul
aplicatieaplicatie
––
IIII
Sabin-Corneliu Buraga [email protected]
http://www.infoiasi.ro/~busaco
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[22]]
CuprinsCuprins
•
Protocoale
la nivelul
aplicatie–Transferul
de fisiere
•TFTP (Trivial File Transfer Protocol)•FTP (File Transfer Protocol)
–Startarea
serviciilor
Internet (inetd)–Privire
de ansamblu
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[33]]
TFTPTFTP•
Asigura
transferul
de fisiere
intre
procese
•
Efort
minim (nu
se ofera
securitate)•
Usor
de implementat, folosind
UDP
•
Utilizat
deseori
la initializarea
statiilor
de lucru
fara
disc sau
a altor
dispozitive
(in conjunctie
cu RARP) •
Vezi
si
RFC 783, 906, 1350
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[44]]
TFTPTFTP
•
Mesajele
protocolului
sint
datagrame
UDP, codificate
in network byte order
•
Primii
2 octeti
–
codul
operatiei
(opcode)•
Tipuri
de mesaje: cerere
de citire,
cerere
de scriere, date propriu-zise, confirmare, eroare
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[55]]
TFTPTFTP•
Fisierele
pot fi
transferate
in doua
moduri:
–
netascii
–
pentru
fisiere
text•
Toate
liniile
se termina
cu \r\n (CR LF)
•
Ambele
puncte
terminale
trebuie
sa
converteasca
liniile in/din formatul
netascii
(pentru
Unix: \n ⇔
\r\n)
–
octet
–
pentru
fisiere
binare•
Nu
se realizeaza
nici
o translatie
a liniilor
•
Problema: pierderea
pachetelor
de date•
Solutie: retransmiterea
pachetelor
neconfirmate, cu controlul
duplicarii
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[66]]
TFTPTFTP•
Comportamentul
concurent
al serverului
TFTP
–
Din motive de limitare
a resurselor, nu
se poate
utiliza
intotdeauna
fork()
–
Serverul
va
putea
crea
un port UDP nou, dialogul cu clientul
realizindu-se prin
intermediul
acestuia
•
Transferul
fisierelor–
Nu
se transmite
lungimea
fisierului
–
Fiecare
pachet
de date va
avea
maxim 512 octeti–
Ultimul
mesaj
de date va
contine
0 bytes de date
–
Se pot trimite
maxim 65535 de pachete
de date
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[77]]
FTPFTP•
Folosit
atit
interactiv, cit si
de programe
•
Asigura
transferul
sigur
si
eficient
al datelor•
Utilizeaza
doua
conexiuni
TCP:
–
Conexiunea de control –
pentru
trimiterea
comenzilor si
receptionarea
codurilor
de stare
–
Conexiunea de date –
pentru
transferul
efectiv•
Conexiunea
de control trebuie
sa
fie operationala
in timpul
transferului
prin
conexiunea
de date•
Conexiunile
de date se creeaza
dinamic,
pentru
fiecare
client in parte•
Vezi
si
RFC 959, 1068
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[88]]
FTP|modelFTP|model•
PI = Protocol Interpreter
•
DTP = Data Transfer Protocol
Server PIServer PI
SistemSistemde de fisierefisiere
InterfataInterfata utilizutiliz..
UtilizUtiliz. PI. PI
UtilizatorUtilizator
Utiliz.DTPUtiliz.DTPServer DTPServer DTP SistemSistem de de fisierefisiere
DataData
ControlControl
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[99]]
FTP|conexiuniFTP|conexiuni•
Conexiunea
de control utilizeaza
portul
21
•
Conexiunea
de date foloseste
portul
20•
Comenzile
si
raspunsurile
sint
linii
de text
•
Pentru
interactivitate
se foloseste
protocolul
TELNET•
Modelul
standard al conexiunilor:
ControlControl
DateDateAAA BBB
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1010]]
FTP|caracterizareFTP|caracterizare
•
Moduri
de transfer– Text (ASCII) –
continutul
este
transferat
linie
cu linie, modificindu-se sfirsitul
de linie in functie
de calculatorul
sursa
si
destinatie:
CR LF (Windows), LF (UNIX/Linux)– Binar
–
continutul
e transferat
neschimbat
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1111]]
FTP|caracterizareFTP|caracterizare
•
Tipuri
de acces–
Anonim
(FTP anonymous) –
RFC 1635
•
Autentificare
cu numele
anonymous si drept
parola
o adresa
de e-mail
•
Acces
public la o serie
de resurse (aplicatii, date, multimedia etc.)
–
Autentificat•
Necesita
un nume
de utilizator
existent,
insotit
de o parola
valida•
Pentru
transferul
de date in/din contul
personal
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1212]]
FTP|comenziFTP|comenzi•
Comenzi
de control al accesului
–
USER, PASSword, ChangeWorkingDir, QUIT,…•
Comenzi
de transfer a parametrilor
–
PORT, PASiVe, TYPE, MODE, STRUcture,…•
Comenzi
de realizare
a serviciilor
FTP
–
RETRieve, STORe, APPEnd, ABORt, PrintWorkingDir, LIST,…
•
Raspunsul
de stare–
Linie
de text continind:
NNN un cod de stare
(utilizat
de software) si un mesaj
explicativ
(destinat
oamenilor)
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1313]]
FTP|codulFTP|codul
de starede stare•
Prima cifra
semnifica:
–
1 replica pozitiva
preliminara (“am indeplinit, dar
asteapta”)
–
2 replica pozitiva
finala (“succes”)
–
3 replica pozitiva
intermediara (“am nevoie
si
de alte
informatii”)
–
4 replica negativa
tranzitorie (“eroare, incerc
iar”)
–
5 replica negativa
finala (“eroare
fatala”)
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1414]]
FTP|codulFTP|codul
de starede stare•
A doua
cifra
specifica
grupuri
de functii:
–
0 privitor
la sintaxa–
1 informare
(ajutor, informatii
de stare)
–
2 referitor
la conexiuni–
3 privitor
autentificarea
utilizatorului
–
4 nespecificat–
5 referitor
la sistemul
de fisiere
•
Exemplu: 226 Transfer complete
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1515]]
FTP|transferFTP|transfer
•
Structuri folosite– Fisier
(file)
•
Fisierul
transferat
e un flux (stream) de octeti– Inregistrare
(record)
•
Fisierul
transmis
reprezinta
o serie
de inregistrari– Pagina
(page)
•
Fisierul
transferat
e o serie
de blocuri
de date; folosit
pentru
acces
direct –
fisierul
este
compus
din date si
din “gauri”
intre
date
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1616]]
FTP|transferFTP|transfer
•
Moduri de transfer– STREAM
•
fisier
transmis
ca flux de date – BLOCK
•
fisier
transmis
ca serie
de blocuri
precedate de antete
continind
contoare
si
descriptori
de
bloc (EOF, EOR, restart marker)– COMPRESSED
•
se transmit blocuri
compresate, conform unui
algoritm
simplu
de compresie
(e.g., gzip)
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1717]]
FTP|exempluFTP|exemplu1.
Clientul
se conecteaza
la serverul
FTP
aflat
la adresa
193.231.30.2252.
Utilizatorul
este
autentificat
3.
Clientul
(la adresa
193.231.30.197) asteapta comanda
utilizatorului
4.
Utilizatorul
introduce “dir”5.
Clientul
se conecteaza
la portul
de date FTP (20),
folosind
un socket atasat
local la 23976.
Clientul
trimite
serverului
(via portul
21) comanda
PORT 197.231.30.197.9.93
(9*256+93=2397)7.
Clientul
asteapta
codul
de raspuns
standard 200
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1818]]
FTP|exempluFTP|exemplu8.
Daca
nu
este
OK, se afiseaza
eroarea
9.
Clientul
trimite
serverului (via portul
de control 21) comanda
LIST
10.Clientul
asteapta
codul
de raspuns
15011.Daca
nu
e OK, se afiseaza
eroarea
12.Clientul
citeste
de la portul
de date (20) informatiile
trimise
de server
13.Clientul
asteapta
codul
de raspuns
22614.Daca
nu
este
OK, se afiseaza
eroarea
15.Daca
este
OK, se afiseaza
continutul
directorului
de pe
server
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1919]]
StartareaStartarea
aplicatiiloraplicatiilor
InternetInternet•
Fiecare
serviciu
(telnet, FTP etc.)
are asociat
un proces
(daemon) care se poate
initializa
la momentul
boot-arii
(vezi
/etc/rc
la UNIX/Linux)•
Startarea
se poate
simplifica
prin
intermediul
super-serverului
inetd (configurat
prin
/etc/inetd.conf)
•
Ca alternativa, se poate
folosi
xinetd
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2020]]
StartareaStartarea
aplicatiiloraplicatiilor
InternetInternet1.
Pentru
fiecare
server gasit
in fisierul
de configuratie:
socket(), bind(), listen()2.
select()
3.
accept()
–
pentru
serviciile
TCP4.
fork()•
Parintele
inchide
socket-ul
conectat
−
inapoi
la pasul
2•
Copilul
inchide
toti
descriptorii
de socket diferiti
de
socket-ul
conectat−
se duplica
socket-ul
la descriptorii
0, 1, 2 –
dup()
−
se inchide
socket-ul−
daca
utilizatorul
nu
e root, se executa
setuid()
si
setgid()
−
se lanseaza
serverul
via exec()
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2121]]
ServiciileServiciile InternetInternet
((privireprivire
de de ansambluansamblu))
Aplicatie (protocol) IP ICMP UDP TCP
Ping Traceroute
OSPF
RIP
BGP
BOOTP
TFTP
SNMP
SMTP
Telnet
FTP
HTTP
NNTP
DNS
NFS
RPC
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2222]]
RezumatRezumat
•
Protocoale
la nivelul
aplicatie–Transferul
de fisiere
•TFTP (Trivial File Transfer Protocol)•FTP (File Transfer Protocol)
–Startarea
serviciilor
Internet (inetd)–Privire
de ansamblu
ReteleRetele de de calculatoarecalculatoare
SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2323]]
Intrebari?