computer networks. transport (tcp & udp)

40
Retele Retele de de calculatoare calculatoare Sabin Sabin - - Corneliu Corneliu Buraga Buraga 2006/2007 2006/2007 www.infoiasi.ro/~busaco www.infoiasi.ro/~busaco / / [ [ 1 1 ] ] Retele Retele de de calculatoare calculatoare Nivelul Nivelul transport transport Sabin-Corneliu Buraga [email protected] http://www.infoiasi.ro/~busaco

Upload: sabin-buraga

Post on 28-Nov-2014

6.444 views

Category:

Technology


0 download

DESCRIPTION

Computer Network course (in Romanian).

TRANSCRIPT

Page 1: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[11]]

ReteleRetele de de calculatoarecalculatoareNivelulNivelul transporttransport

Sabin-Corneliu [email protected]

http://www.infoiasi.ro/~busaco

Page 2: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[22]]

CuprinsCuprins

• Nivelul transport– Preliminarii– Porturi– Protocoale– TCP (Transmission Control Protocol)– UDP (User Datagram Protocol)– TCP versus UDP

Page 3: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[33]]

LittleLittle--EndianEndian

Intel 80x86DEC VAXDEC PDP-11

BigBig--EndianEndian

IBM 370Motorola 68000Sun

Preliminarii|ordineaPreliminarii|ordinea octetiloroctetilor

Low ByteLow ByteHigh ByteHigh Byte

Addr A Addr A+1

High ByteHigh ByteLow ByteLow Byte

Addr A Addr A+1

Page 4: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[44]]

Preliminarii|ordineaPreliminarii|ordinea octetiloroctetilor• Presupunem ca o masina BigEndian trimite

valoarea 2 stocata pe un cuvint de 16 biti:

• Masina LittleEndian va consideracuvintul de 16 biti ca avind valoarea 512:

• Drept conventie, se considera ordinea retelei(network byte order) – BigEndian

00000000000000000000001000000010

00000010000000100000000000000000

Page 5: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[55]]

Preliminarii|modelePreliminarii|modele de de serviciiservicii

• orientate-conexiune vs. fara conexiune• secventa (ordinea de transmitere)• controlul erorilor – “checksums”• controlul fluxului• flux de octeti vs. flux de mesaje• full-duplex vs. half-duplex

Page 6: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[66]]

Preliminarii|modelePreliminarii|modele de de serviciiservicii• Multe servicii (controlul fluxului/erorilor)

se pot realiza:– intre punctele terminale ale comunicatiei

(ent-to-end)– intre fiecare 2 noduri ale drumului dintre

cele 2 puncte terminale (hop-by-hop) • Comunicatiile pot fi mai eficiente

folosind buffer-e

ProcesProces AA ProcesProces BBSendSendBufferBuffer

RecvRecv..BufferBuffer

Page 7: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[77]]

EndEnd--toto--EndEndProcesProces AA

ProcesProces BB

Page 8: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[88]]

HopHop--byby--HopHop

ProcesProces AA

ProcesProces BB

Page 9: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[99]]

NivelulNivelul transporttransport• Transmite date de la masina sursa la

masina destinatie (comunicare “end-to-end”)• Asigura transportul datelor de la aplicatie la aplicatie• Asigura fluxuri de octeti in mod fiabil (reliable),

orientat-conexiune• Ofera servicii mult mai fiabile decit nivelul retea

(protocolul IP) – e.g., pachetele pierdute/incorectela nivelul retea pot fi detectate/corectatela nivelul transport– Comunicatii orientate flux de date (stream-uri)

sau datagrame– Conectare prin circuite virtuale– Transfer de date via zone tampon (buffers)

Page 10: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1010]]

NivelulNivelul transporttransport• Calitatea serviciilor

– Rata erorilor– Rata de transfer– Intirzieri la stabilirea sau inchiderea conexiunii– Protectia, prioritatea, rezilienta conexiunii

• Unitatea de date pentru transport este TPDU(Transport Protocol Data Unit)adresa IP:port

Page 11: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1111]]

NivelulNivelul transporttransport

• Primitive generale(permit accesarea serviciilor)

Page 12: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1212]]

PorturiPorturi• Corespunzatoare adreselor IP la nivelul retea• Se asociaza unei aplicatii (serviciu)

si nu unei gazde• Un proces poate oferi mai multe servicii

(poate utiliza mai multe porturi)• Un serviciu poate corespunde la mai multe procese• 0 – 65535• 0 – 1023 rezervate, 0 – 512 servicii de sistem

RFC 1700 – Internet Assigned Number Authority (IANA)• Serviciile-sistem au porturi precizate in /etc/services• Exemple:

22 – SSH, 23 – telnet, 25 – SMTP, 80 – HTTP

Page 13: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1313]]

ProtocoaleProtocoale

• UDP (User Datagram Protocol)– Servicii neorientate-conexiune, nesigure– Nu ofera nici o calitate suplimentara

a serviciilor– Nu recurge la negocieri sau

la confirmari ale primirii datelor– Utilizat la apelul procedurilor la distanta

via RPC (Remote Procedure Call)

Page 14: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1414]]

ProtocoaleProtocoale• TCP (Transmission Control Protocol)

– Servicii orientate-conexiune, sigure– Vizeaza oferirea calitatii maxime a serviciilor– Integreaza mecanisme de stabilire si

de eliberare a conexiunii– Controleaza fluxul de date (stream-oriented)– Utilizat de majoritatea protocoalelor de

aplicatii: TELNET, SMTP, HTTP,…

Page 15: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1515]]

ProtocoaleProtocoale• UDP – similar postei terestre

– Trimiterea unei scrisori

– Nu se garanteazaordinea receptionarii

– Mesajul se poate pierde

Page 16: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1616]]

ProtocoaleProtocoale• TCP – similar telefoniei

– Initierea convorbirii

– Dialogul dintre parti

– Terminarea convorbirii

Page 17: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1717]]

ProtocoaleProtocoale• TCP (Transmission Control Protocol)

– Utilizeaza conexiuni, nu porturica abstractiuni fundamentale

– Conexiunile se identifica prin perechi de puncte finale (end-points)

– Astfel, un numar de port poate fi partajatde conexiuni multiple de pe aceeasi masina

– Exemplu: conexiunea dintre (193.231.30.194, 3168) si (193.231.30.197, 25)

– Ambele parti (expeditorul si destinatarul) trebuie sa participe la realizarea conexiunii

– Una din parti ofera o deschidere pasiva – asteapta aparitiaunei cereri de conectare a partenerului care realizeazao deschidere activa

Page 18: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1818]]

ProtocoaleProtocoale• Oferirea sigurantei comunicarii

(reliability)– Confirmarea primirii cu retransmitere– La fiecare receptionare de date,

se transmite expeditorului un mesajde confirmare (acknowledgement)

– Expeditorul memoreaza fiecare pachettransmis si asteapta confirmareadin partea destinatorului pentrua transmite urmatorul pachet

– Daca dupa un timp datnu se primeste confirmarea, pachetul este retransmis

CR=Connection RequestACK=Comm. Accepted

DATA=primul mesajde date trimis

Page 19: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[1919]]

ProtocoaleProtocoale• Oferirea sigurantei comunicarii (reliability)

– Problema• Pachetele de date, cit si pachetele de confirmare pot fi

pierdute, eronate sau duplicate– Solutie

• Mesajele de confirmare continsecvente de numere pentruca destinatarul sa asociezecorect confirmarilepachetelor primite

Duplicarea pachetelor CR si ACK

Page 20: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2020]]

ProtocoaleProtocoale• Automatul finit

TCP– Modeleaza

comportamen-tul protocolului

– Starile suntutilizate la managementulconexiunii

– Comandanetstat

Page 21: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2121]]

ProtocoaleProtocoale

Automatulfinit TCP

clientserver

Page 22: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2222]]

ProtocoaleProtocoale• Automatul finit TCP

– Stabilirea conexiunii:• CLOSED – din aceasta stare se poate cere o deschidere

activa (se trece in SYN_SENT) sau pasiva (SYN_RCVD)• LISTEN – se poate trimite o cerere de conexiune activa

(se trece in SYN_SENT) ori pasiva (SYN_RCVD)– Conexiune stabilita:

• ESTABLISHED – poate incepe transmisia de date (din aceasta stare se poate trecein CLOSE_WAIT sau FIN_WAIT_1)

– Deconectare initiata de procesul partener• CLOSE_WAIT, LAST_ACK, CLOSE

– Stari ce intervin in procesul de deconectare• FIN_WAIT_1, FIN_WAIT_2, CLOSING, TIME_WAIT

Page 23: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2323]]

ProtocoaleProtocoale• Exemplu:(infoiasi)$ netstat -tActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 fenrir:1548 thor:auth TIME_WAITtcp 0 0 fenrir:ssh thor:4008 ESTABLISHEDtcp 0 0 fenrir:ftp-data c409-27.net.infoia:2674 TIME_WAITtcp 0 0 fenrir:ssh c412-6.net.infoias:2508 ESTABLISHEDtcp 0 0 fenrir:pop3s xteam:64688 TIME_WAITtcp 0 1 fenrir:1546 mta-v12.level3.mai:smtp SYN_SENTtcp 0 0 localhost:1544 localhost:smtp TIME_WAITtcp 0 540 fenrir:1541 www.cs.tuiasi.ro:www FIN_WAIT1tcp 0 0 fenrir:ssh c409-20.net.infoia:1124 ESTABLISHEDtcp 0 0 fenrir:pop3s xteam:64682 TIME_WAITtcp 0 0 localhost:8008 localhost:1537 ESTABLISHEDtcp 0 1 fenrir:1533 mta-v12.level3.mai:smtp SYN_SENTtcp 0 0 fenrir:ftp c412-11.net.infoia:1444 FIN_WAIT2tcp 0 0 fenrir:1511 fenrir:1509 TIME_WAIT

Page 24: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2424]]

ProtocoaleProtocoale• Antetul TCP

Page 25: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2525]]

ProtocoaleProtocoale• Antetul TCP (cont.)

– Biti de control:• URG (URGence) – exista un pointer la un pachet de

date urgente• ACK (ACKnowledgement) – exista un numar corect

de confirmare (utilizat de receptorul TCP)• PSH (PuSH) – datele vor fi transmise imediat

aplicatiei destinatare• RST (ReSeT) – reinitializeaza conexiunea TCP• SYN (SYNchronize) – modulele TCP emitator/receptor

vor sincroniza numerele de secventa(folosit la stabilirea conexiunii)

• FIN (FINish) – indica inchiderea conexiunii(nu mai sunt trimise numere de secventa)

Page 26: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2626]]

• Un segment TCP

-Transmission Control Protocol, Src Port: 1028 (1028), Dst Port: ssh (22) Seq:2966207870, Ack:2559443804 Source Port: 1028 (1028) Destination port: ssh (22) Sequence number: 2966207870 Next sequence number: 2966207918 Acknowledgement number: 2559443804 Header length: 32 bytes - Flags: 0x0018 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR):Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgement: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 16192 Checksum: 0x5f84 (correct) - Options: (12 bytes) NOP NOP Time stamp: tsval 44887687, tsecr 60917100 Data (48 bytes)

Page 27: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2727]]

• Succesiunea pachetelor de date dintre doua masini(vezi starile automatului TCP)

ProtocoaleProtocoale

Nr. Timp Sursa Destinatie Protocol Info 1 2.232904 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[psh,ack] 2 2.233873 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 3 2.234172 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 4 2.247007 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 5 2.247279 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 6 2.247498 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 7 2.247774 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 8 2.247886 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 9 2.248405 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack]

Page 28: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2828]]

TCPTCP• Stabilirea conexiunii– Three-way handshaking

Conectare(deschidere activa)

SYN_SENT

ESTABLISHED

ESTABLISHED

Stare de ascultareLISTEN

(deschiderepasiva)

SYN_RCVD

Page 29: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[2929]]

TCPTCP• Inchiderea conexiunii

– Trebuie sa aiba loc cu acordul ambelor parti– Conexiunile TCP fiind full-duplex,

cind o aplicatie semnaleaza ca nu mai existadate de trimis, TCP va inchide conexiuneadoar intr-o directie:• Se transmit datele, se asteapta confirmarea

primirii, apoi se trimite un segment avind bitul FIN setat

– Se utilizeaza o metoda three-way handshakemodificata

Page 30: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3030]]

TCPTCP• Resetarea conexiunii

– Inchiderea conexiunii ≡ inchiderea unui fisier– Uneori conditii anormale forteaza aplicatiile sau

software-ul de retea sa distruga conexiunea– Pentru resetarea conexiunii, o parte a comunicarii

initiaza terminarea, trimitind un segment cu bitul RST setat

– Cealalta parte abandoneaza conexiunea, fara a se mai transmite eventuale date ramase netransmise

– Transferul in ambele directii este oprit, buffer-ele sunt golite

Page 31: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3131]]

TCPTCP• Fortarea transmiterii datelor

– TCP poate divide fluxul de date in segmente de dimensiuni diferite de pachetele vehiculatede aplicatii ⇒ eficienta transmisiei

– Uneori intervine situatia de a transmite datelefara a se mai astepta umplerea buffer-elor(e.g., aplicatii interactive)

– Fortarea transmiterii se realizeaza prin push: se seteaza bitul PSH si se forteaza transmitereasegmentelor, indiferent de starea de umplerea buffer-elor

Page 32: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3232]]

TCPTCP• Controlul fluxului

– Se utilizeaza bitul ACK la nivelul comunicarii duplex– Fereastra glisanta (sliding window)– La transmitere, datele se acumuleaza intr-un buffer

cu 3 pointeri• Marimea ferestrei depinde de numarul secventei de

confirmare– La receptie, buffer-ul contine 2 pointeri

• Datele primite si confirmate• Datele care pot fi primite• Datele care nu pot fi inca primite

Page 33: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3333]]

TCPTCP• Controlul fluxului

– 1 2 3 transmisi si confirmati– 4 5 6 transmisi si neconfirmati– 7 8 9 pot fi transmisi cit de curind posibil– 10 11 nu se pot transmite fara mutarea ferestrei

Fereastra glisanta la transmiterea datelor

1 2 3 4 5 6 7 8 9 10 11 …

ferest. utilizabila

ferest. oferita (la receptor)

trimisi & confirm. trim. & neconf. de trimis nu pot fi trans.

Page 34: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3434]]

ProtocoaleProtocoale• Managementul

ferestrei TCP

Page 35: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3535]]

TCPTCP• Detectia erorilor & retransmiterea datelor

– Fiecare segment trimis contine un numar de secventa(Sequence Number) indicind pozitia octetilor transmisiin cadrul fluxului de date

– Gazda destinatar verifica numarul de secventa pentru fiecaresegment (se testeaza daca anumite segmente se pierd, sunt duplicate sau nu sunt in ordine) si trimite inapoipentru fiecare segment un numar de confirmare(Acknowledgment Number) specificind numarul de secventaal urmatorului octet care se asteapta a fi receptionat

– Segmentele pierdute sunt detectate folosindu-se un timer de retransmisie a datelor

– Pentru detectarea erorilor se utilizeaza si checksum-uri

Page 36: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3636]]

UDPUDP• Protocol de transport neorientat conexiune,

nesigur, minimal• RFC 768• Ca si TCP, utilizeaza IP• Ca si TCP, pentru a oferi servicii de

comunicare intre procese foloseste porturi• Porturile TCP independente de porturile UDP

Page 37: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3737]]

UDPUDP• Incapsularea UDP• Daca datagrama rezultata este prea mare,

are loc o fragmentarela unul dintre nivelurile inferioare

• Cimpul UDP checksum nu este obligatoriu

AntetAntet IPIP AntetAntet UDPUDP Date UDPDate UDP20 bytes 8 bytes

Datagrama IP

Datagrama UDP

Page 38: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3838]]

TCP TCP vs.vs. UDPUDP• Ambele se bazeaza pe IP, utilizeaza porturi• Unitatea de transmisie se numeste:

– Segment TCP– Pachet UDP

• UDP ofera servicii minimale de transport (efort minim de transmisie)

• TCP ofera servicii orientate-conexiune, full duplex, sigure – pentru transportul fluxurilor de octeti(mai sofisticat)

• Utilizarea TCP sau UDP depinde de aplicatie: e-mail, transfer de fisiere, operare in timp-real,transmisii multimedia in timp-real, chat,…

Page 39: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[3939]]

RezumatRezumat• Nivelul transport

– Preliminarii– Porturi– Protocoale– TCP (Transmission Control Protocol)– UDP (User Datagram Protocol)– TCP versus UDP

Page 40: Computer Networks. Transport (TCP & UDP)

ReteleRetele de de calculatoarecalculatoare

SabinSabin--CorneliuCorneliu BuragaBuraga 2006/2007 2006/2007 –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco// [[4040]]

Intrebari?