Proiect Simularea Unei Retele de Calculatoare Folosind Aplicatia Packet Tracer
Proiect la Retele de calculatoare
description
Transcript of Proiect la Retele de calculatoare
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 1/9
Proiect - Retele de
calculatoare
Student: Scarlat Simona Ileana
grupa 1068, seria A, Informatica economica
Facultatea de Ciernetica, Statistica si Informatica economica
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 2/9
Defnirea problemei:
Comunicarea pe internet este bazata pe o pereche de protocoale numite : Internet
Protocol si Transmission Control Protocol, recunoscuta ca TCP/IP.
Pentru ca doua programe sa comunice folosind TCP/IP, fiecare program trebuie sa creeze
un socket, iar acestea trebuie sa fie conectate. Odata ce conexiunea este facuta, comunicarea
se face folosind transferul de date (input si output.
TCP asigura un ser!iciu orientat pe conexiune pentru transmisia fiabila a datelor, cu
detectarea erorilor si controlul fluxului, si detine un mecanism de !alidare "n # faze, acestea
fiind:
$. stabilirea conexiunii (handsha%ing
&. transferul datelor #. eliberarea conexiunii
Programul care creeaza un soc%et ce 'asculta pentru cereri se numeste ser!er, iar
soc%et)ul aferent ser!er)soc%et. Programul care se conecteaza la ser!er se numeste client, iar
soc%et)ul folosit pentru a crea conexiunea se numeste soc%et)client. *cest lucru poarta
denumirea de model client/server.
In multe aplicatii, ser!er)ul poate accepta conexiuni la mai multi client. Cand un client se
conecteaza la soc%et)ul unui ser!er, acel soc%et continua sa asculte. +er!er)ul are un fir principal(thread care directioneaza soc%et)ul de 'ascultare al ser!er)ului. *cest main thread
functioneaza pe toata durata de executie a programului. Cand acesta primeste o cerere de
conexiune de la un client, firul principal creeaza un nou fir pentru a se ocupa de conexiunea
cu acel client. *cest fir !a functiona doar pe perioada in care clientul sta conectat. Thread)ul
ser!erului si thread)urile create pentru client functioneaza simultan, in paralel.
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 3/9
Enuntul problemeiAm implementat un sistem client ! ser"er in lima#ul de programare C, programul
putand $ folosit pe %inu&' (data ce clientul este conectat si trimite adresa IP
ser"erului, acesta din urma trimite data si ora clientului'
)e&tul sursa *in C pentru %inu&+ pentru un ser"er care asteapta conectarea unui
client si trimite data si ora curenta'
Modul ServerTCP
include s.s/socet'2
include netinet/in'2
include arpa/inet'2
include stdio'2
include stdli'2
include unistd'2
include errno'2
include string'2
include s.s/t.pes'2
include time'2
int main*int argc, car 3arg"45+
//listenfd este un intreg redenit ca socket analog unui descriptor de sier returnat decatre apelul functiei socket de mai jos
int listenfd 7 0, connfd 7 0
struct socaddr9in ser"9addr //adresa server
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 4/9
// zona de memorie ce contine date utile
car sendu;410<=5
time9t tics
//atunci cand se apeleaza functia socket(), se creeaza un socket in interiorul nucleului sireturneaza un numar intreg cunoscut sub numele de descriptor socket
listenfd 7 socet*AF9I>?), S(C@9S)R?A, 0+
!sociaza socketului o adresa de server
memset*Bser"9addr, 0, siDeof*ser"9addr++
memset*sendu;, 0, siDeof*sendu;++
ser"9addr'sin9famil. 7 AF9I>?) //constant pt "pv#
ser"9addr'sin9addr's9addr 7 tonl*I>AEER9A>+ //contine adresa "P
ser"9addr'sin9port 7 tons*6808+ //contine numarul portului
se apeleaza functia bind pentru a specica portul local pentru socket, la acest portserverul va astepta cererea clientului
ind*listenfd, *struct socaddr3+Bser"9addr, siDeof*ser"9addr++
// plaseaza socket$ul in mod pasiv, apoi in bucla
functia listen() arata disponibilitatea de a accepta conectari
listen*listenfd, 10+
Gile*1+
)ipul interfetei socet'
Cone&iune punct la la punct,
Hu& de date idirectional la
ni"el de octet, li"rare sigura,
Familia de
)ip intreg pe
>r ma&im de
clienti conectati
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 5/9
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 6/9
Modul Client TCP
)e&tul sursa *in C pentru %inu&+ pentru un client care transmite adresa IP si
primeste de la ser"er data si ora curenta'
include s.s/socet'2
include s.s/t.pes'2
include netinet/in'2
include netd'2
include stdio'2
include string'2
include stdli'2
include unistd'2
include errno'2
include arpa/inet'2
int main*int argc, car 3arg"45+
int socfd 7 0, n 7 0
zona de memorie ce contine date utile
car rec"u;410<5
//adresa server
struct socaddr9in ser"9addr
if*argc O7 <+
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 7/9
printf*KMn Jsage: Ls ip ser"er2 MnK,arg"405+
return 1
N
memset*rec"u;, 0,siDeof*rec"u;++
if**socfd 7 socet*AF9I>?), S(C@9S)R?A, 0++ 0+
printf*KMn ?roare la crearea socet-ului MnK+
return 1
N
printf*KA creat socet-ul''''MnK+
memset*Bser"9addr, 0, siDeof*ser"9addr++
// preia informatiile despre server
ser"9addr'sin9famil. 7 AF9I>?)
ser"9addr'sin9port 7 tons*6808+
printf*KA preluat informatiile despre ser"er''''MnK+
if*inet9pton*AF9I>?), arg"415, Bser"9addr'sin9addr+70+
printf*KMn inet9pton error occuredMnK+
return 1
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 8/9
7/21/2019 Proiect la Retele de calculatoare
http://slidepdf.com/reader/full/proiect-la-retele-de-calculatoare 9/9
return 0
N
Clientul a primit data si
ora de la ser"er