Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

INT

Internet
Xarxes TCP/IP Autor: Daniel Guasch

Col·laboradors: Lluís Casals


5. Garanties David Rincón
Imma Ruiz
Rafel Vidal

Setembre 2016

Internet (1)
INT
E
5.1. Conceptes bàsics

Objectius de la capa de transport

Objectiu
• Oferir als usuaris un sistema transparent de
transferència de missatges
Aplicació
• Independent dels aspectes tecnològics de la xarxa
• Els usuaris no han de ser conscients de com
s’aconsegueix la fiabilitat Transport
Ofereix: Internet
• Servei extrem a extrem
• Eficient Accés a
• Fiable la xarxa
• Econòmic

Internet (2)
INT
E
5.1. Conceptes bàsics

Ports i Serveis de transport

Necessitat diferenciar entre processos i no només màquines


• Concepte de port

Paquet IP

Diferents tipus de servei


• Orientats a connexió o no orientats a connexió
• Fiables o no fiables
A TCP/IP tenim 2 protocols de transport: TCP i UDP
Internet (3)
INT
E
5.1. Conceptes bàsics

Multiplexat i desmultiplexat

Quan arriba un paquet a un port


• Existeix: es lliura a l’aplicació
• No existeix: S'envia un paquet
ICMP a la font indicant port
inaccessible

Els números de port UDP y TCP


poden coincidir en una mateixa
màquina, però son totalment
independents

Internet (4)
INT
E
5.1. Conceptes bàsics

Assignació de ports
Estàtica, Well-known ports (IANA, http://www.iana.org/assignments/port-numbers)
• Serveis estandaritzats
Port Nom Descripció

20 ftp-data file transfer protocol (data)


21 ftp-control file transfer protocol (control)
23 telnet telnet
25 smtp simple mail transfer protocol
80 www world wide web (HTTP)
110 pop3 post office protocol version 3
123 ntp network time protocol
161 snmp simple network management protocol

Dinàmica, escollits per l’aplicació


• Alguns també estan registrats a l’IANA
Internet (5)
INT
E
5.1. Conceptes bàsics

Assignació de ports

Els ports es reserven o registren per facilitar accés a serveis


• Exemple: navegar per la Web
• Informació en servidors
• Necessito la seva adreça per demanar pàgina
• No cal port => està estandarditzat que escolta el port 80
• El navegador ja ho sap
• Què passa si un servei no escolta el port que toca
• Si no ho indica als seus usuaris per a que canviïn configuració
serà inaccessible

Internet (6)
INT
E
5.1. Conceptes bàsics

Protocols definits

Diferents aplicacions => diferents necessitats:


• Transferència fitxers => Important no hi hagin errors
– No es poden perdre paquets
– Puc tolerar retard
• Informació de gestió => Important no hi hagi retard
– Si arriba tard ja no em serveix

Cal definir diferents tipus de protocols de transport, per a


cobrir aquestes necessitats

Internet (7)
INT
E
5.1. Conceptes bàsics

Protocols definits

TCP UDP
•Orientat a connexió •No orientat a connexió
•Fiable •No fiable
•Ordenació •No ordenació
•No duplicació •Possibilitat de duplicació
•Possibilitat d’Urgents •No possibilitat d’Urgent
•Lent i feixuc •Ràpid i lleuger
•Poc eficient •Molt eficient

Internet (8)
INT
E
5.1. Conceptes bàsics

Aplicación. P. Aplicación. P. transporte

Internet (9)
INT
E
5. Garanties

5.2.

User Datagram Protocol

Internet (10)
INT
E
5.2. Protocol de transport UDP

User Datagram Protocol (UDP)


RFC 768
Mecanisme de transport de datagrames no fiable:
• Possibilitat de pèrdues de paquets
• Possibilitat de duplicats
• Possibilitat d’arribades en desordre
• Sense control de cadència
Avantatges: protocol senzill i lleuger
No orientat a connexió
Funciona bé en entorns locals
Funciona malament en entorns d’àrea extensa
UDP = IP + Capacitat per distingir entre processos dins
d’un ordinador
Internet (11)
INT
E
5.2. Protocol de transport UDP

Format dels paquets UDP


0 8 16 24 31

Port font Port destí


longitud del paquet UDP CRC
Dades
• Longitud: Nombre de bytes del paquet UDP.
• Checksum: Opcional, si no s'utilitza es posa tot 0. Si s'utilitza i el
resultat és 0, es representa amb tot 1. El càlcul del Checksum es fa
sobre tot el paquet UDP més la pseudo-capçalera següent:
0 8 16 24 31
Adreça IP font
Adreça IP Destí
Zero Protocol (UDP: 17) Longitud paquet UDP

Internet (12)
INT
E
5.2. Protocol de transport UDP

Aplicacions del protocol UDP

Actualitzacions de bases de dades


• DNS
Sincronisme de rellotges
• NTP – Network time protocol
Aplicacions de temps real (en general)
• Transmissió de veu i vídeo

Internet (13)
INT
E
5. Garanties

5.3.

Transmission Control Protocol

Internet (14)
INT
E
5.3. Protocol de transport TCP

Transmission Control Protocol (TCP)

Definit al RFC 793.


TCP és un protocol de transport que defineix un servei de
transferència d’alt volum de dades, extrem a extrem de
forma fiable.
TCP fa poques suposicions sobre les prestacions del nivell
inferior.
• Es pot utilitzar sobre xarxes locals o xarxes més complexes.
No té cap camp de qualitat de servei.
• Utilitza el TOS (Type of Service) de IP
És un protocol orientat a connexió
• Client i servidor s’han de posar d’acord per a transmetre dades

Internet (15)
INT
E
5.3. Protocol de transport TCP

Característiques del protocol TCP

Ofereix un servei en flux fiable


Defineix:
• Format de les dades i les confirmacions que s’intercanvien els
ordinadors
• Procediments per assegurar que les dades arriben correctament
• Gestió de vàries connexions sobre una mateixa màquina
• Recuperació davant d’errors: ex. pèrdua o duplicació de paquets
• Defineix la inicialització i la finalització de la connexió TCP

Internet (16)
INT
E
5.3. Protocol de transport TCP

Característiques del protocol TCP


Orientat a flux:
• Mateixa seqüència en emissió que en
recepció
Connexió amb circuit virtual
• Establiment, transferència i desconnexió
Transferència en buffer:
• El flux de dades s’encapsula en segments
Creació segments Buffer de transmissió
Generat per
l’aplicació
Flux no estructurat
• Els programes s’han de posar d’acord en l’estructura del flux
Connexió full-duplex
Internet (17)
INT
E
5.3. Protocol de transport TCP

Fiabilitat del protocol TCP


Transferència de dades
• Extrem a extrem
• Sense duplicats
• Sense pèrdues
A partir d’un servei poc fiable a nivell de xarxa
Confirmació •Mecanismes:
Positiva amb
Retransmissió
– Comunicació dúplex
– Retransmissió
– Número de seqüència
Servei Fiable a nivell – Temporitzadors
de transport

Internet (18)
INT
E
5.3. Protocol de transport TCP

Fiabilitat del protocol TCP – Transmissió correcte

S’envia el següent segment del buffer


Es reb el segment al buffer

ack S’envia la confirmació


S’elimina el segment del buffer

Internet (19)
INT
E
5.3. Protocol de transport TCP

Fiabilitat del protocol TCP – Pèrdua d’un paquet

S’envia el següent segment del buffer

Es perd el segment
RTO
Es retransmet el segment
Es reb el segment al buffer

ack S’envia la confirmació


S’elimina el segment del buffer

RTO: Retransmission Timeout


Internet (20)
INT
E
5.3. Protocol de transport TCP

Fiabilitat del protocol TCP – Duplicitat de paquets

S’envia el següent segment del


buffer Es reb el segment al buffer

RTO Es perd la confirmació


Es retransmet el segment ack

ack S’envia la confirmació de nou


S’elimina el segment del buffer

RTO: Retransmission Timeout


Internet (21)
INT
E
5.3. Protocol de transport TCP

Característiques de la confirmació i retransmissió


Es confirma (ACK) indicant el següent byte esperat
No existeix NACK (confirmació negativa)
Confirmació acumulativa:
• Cada ACK confirma tots els segments amb un número de
seqüència inferior
• Avantatge:
– La pèrdua d’un ACK no força necessàriament la retransmissió.
– Els ACK´s no es retransmeten (en cas d’error)
– El ACK següent inclou a l’anterior
• Desavantatge:
– La font no té coneixement de tots els paquets que han arribat bé
– Pot forçar retransmissions innecessàries (de paquets ben rebuts)

Internet (22)
INT
E
5.3. Protocol de transport TCP

Exemple de confirmació acumulativa

Servidor Web UPC Navegador


S = Número de seqüència
L = Longitud de dades
TCP CS = Número de seqüència confirmat

S=1001; L=200

S=1201; L=200 Descàrrega de la pàgina


S=1401; L=200

CS=1601
“Llest per rebre a
partir del byte
ACK 1601”
Internet (23)
INT
E
5.3. Protocol de transport TCP

Existeix el problema de com calcular el RTO

A quin valor es pot fixar el RTO?


• Internet és una xarxa variable
• RTO s’hi hauria d’adaptar!
Valor de referència: Round Trip Time (RTT)
• Temps d’anada i tornada
• En realitat el que es té són mostres d’aquest valor (Round
Trip Samples, RTS)
Es necessita un algorisme adaptatiu
• A partir de la mitjana
• Tenint en compte la desviació
• Utilitzant marques temporals en els paquets
• ...

Internet (24)
INT
E
5.3. Protocol de transport TCP

Format del segment TCP


0 8 16 24 31
Port Origen Port Destí
Número de seqüència
Número de reconeixement
Long. C. Reservat Bits de Codi Finestra
CRC
Checksum Punter dades urgents
Opcions Padding

Dades

Internet (25)
INT
E
5.3. Protocol de transport TCP

Camps del segment TCP

Ports origen i destí:


• Identifiquen els programes d'aplicació
Número de seqüència
• Posició del primer byte transmès
Número de reconeixement
• Identifica el següent byte que el receptor espera rebre
Longitud Capçalera
• Longitud de la capçalera en paraules de 32 bits
Dades Urgents
• Posició on acaben les dades urgents

Internet (26)
INT
E
5.3. Protocol de transport TCP

Camps del segment TCP

Bits de codi:
• FIN: Final de seqüència. No envia més dades, però encara
n’accepta.
• SYN: Sincronisme dels números de seqüència en
l’establiment.
• RTS: Reestableix (reset) la connexió. Totes les dades en
trànsit es perden.
• PSH: Sol·licitud de push. Enviament de totes les dades
pendents.
• ACK: Camp de confirmació vàlid
• URG: Camp de punter urgent vàlid

Internet (27)
INT
E
5.3. Protocol de transport TCP

Camps del segment TCP – Mode Urgent

Bit de codi URG


• Protocol orientat a flux.
• Possibilitat de passar davant de dades antigues.
• Un extrem pot marcar les dades com urgents.
• TCP ho ha de notificar al procés receptor, i la
aplicació ho ha d’interpretar.
• Aplicacions:
• telnet
• rlogin
• ftp
• BREAK en terminal remot.

Internet (28)
INT
E
5.3. Protocol de transport TCP

Camps del segment TCP - PUSH


És una notificació de l’emissor al receptor perquè
aquest passi totes les dades al procés receptor.
L’especificació original de TCP assumeix que la
interfície de programació permet al procés emissor
que notifiqui al TCP que ha de posar el PUSH.
S’utilitza per a comunicacions interactives (telnet)
Creació segments Buffer de transmissió
Generat per
l’aplicació

Internet (29)
INT
E
5.3. Protocol de transport TCP

Camps del segment TCP


Checksum
• Verifica la integritat de les dades i la capçalera
• Pseudo-capçalera:
– Permet que el receptor verifiqui que el segment ha arribat
correctament al seu destí.
0 8 16 31
Adreça IP origen
Adreça IP destí
Zero Protocol (6) Longitud TCP

• Aritmètica de 16 bits.
• És el complement a 1 de la suma de complements a 1.
Internet (30)
INT
E
5.3. Protocol de transport TCP

Polítiques de funcionament
Transmissió:
• Una entitat TCP és lliure d’enviar les dades quan vulgui
(en absència de PUSH)
• Existeix un buffer de transmissió:
– Paquets grans: poc overhead de capçaleres
– Paquets petits: retard baix
Lliurament:
• Una entitat TCP pot lliurar les dades a l’usuari quan vulgui
(en absència de PUSH)
• Existeix un buffer de lliurament:
– Paquets grans: poca càrrega en el software de lliurament
– Paquets petits: retard baix

Internet (31)
INT
E
5.3. Protocol de transport TCP

Polítiques de funcionament
Acceptació:
• Quan arribin paquets per la connexió s’emmagatzemen en un buffer
• Si arriben fora d’ordre podem seguir dos polítiques:
– Acceptació en ordre: Els segments fora d’ordre es descarten
– Simplicitat
– Reenviament de segments rebuts correctament
– Acceptació en finestra: S’accepten tots els segments que estiguin dins
de la finestra
– Redueix les retransmissions
– Augmenta la complexitat
Retransmissió:
• TCP retransmet els segments que no han estat confirmats abans
d’un determinat temps
• Els ha de guardar en un buffer de retransmissió

Internet (32)
INT
E
5.3. Protocol de transport TCP

Polítiques de funcionament
Reconeixement:
• Quan es rep un segment en seqüència es pot confirmar de dues
formes:
– Immediatament: Es confirma encara que no es tinguin dades per enviar:
– Carrega la xarxa
– Bona informació de l’estat de la connexió
– Acumulatiu: S’espera a tenir alguna dada per enviar-la conjuntament con
la confirmació:
– S'evita la confirmació sense dades
– Més complex
• Si un segment arriba fora d'ordre, ha d’enviar un reconeixement de
l’últim segment que ha arribat en ordre
• Quan arriba el segment que falta s’envia l’ ACK immediatament

Internet (33)
INT
E
5.3. Protocol de transport TCP

Finestra lliscant

Mida de la finestra:
• Nombre d'enllaços
• Velocitat dels enllaços
• Fiabilitat dels enllaços

Comunicació semi-dúplex Comunicació full-dúplex


Ineficient Eficient
Permet transmetre 5 segments abans de rebre la confirmació
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Internet (34)
INT
E
5.3. Protocol de transport TCP

Mecanisme de finestra lliscant


TCP considera el flux de dades com una seqüència de bytes
que es divideix en segments per a ser transmesos
Creació segments Buffer de transmissió
Flux de dades Flux de segments

Mecanisme de finestra lliscant:


• Control de flux:
– Limita la quantitat d’informació transmesa
• Transmissió eficient:
– Permet més d’un paquet per la xarxa
• Numeració a nivell de byte (no a nivell de segment o paquet).
• Es necessiten dues finestres
– Emissió
– Recepció
Internet (35)
INT
E
5.3. Protocol de transport TCP

Mecanisme de finestra lliscant


• Cada connexió té tres punters
• La unitat de transferència és el segment
• La finestra es variable amb el temps
• En el paquet de confirmació s’indiquen quants bytes addicionals
s’està a punt per rebre Þ ampliació de finestra
• Es pot reduir la mida de la finestra:
• Una finestra de 0 atura la transmissió
• Mecanisme de control de flux extrem a extrem
• El control de congestió és un altre problema apart
Finestra de transmissió

1 2 3 4 5 6 7 8 9 10 11 12
Posició Fins on es pot transmetre
Transmesos Transmesos actual sense confirmació
i confirmats sense
confirmar
Internet (36)
INT
E
5.3. Protocol de transport TCP

Exemple de finestra lliscant


2400 1000 1000

Flux de dades
S=1001; L=200

2400 1600 1000 S=1201; L=200

Flux de dades S=1401; L=200

CS=1601; W=1000
2600 1800 1600 1000
S=1601; L=200
Flux de dades
S=1801; L=200 S = Número de
seqüència
2600 2600 1600 1000 S=2001; L=400
L = Longitud de
Flux de dades S=2401; L=200 dades
CS=2601; W=0
2600 2600 2600 2600 1000 CS = Número de
CS=2601; W=0
seqüència
Flux de dades
CS=2601; W=1400 confirmat
4000 2600 2600 2600 2600 1000
W = Mida de la
Flux de dades finestra
Internet (37)
INT
E
5.3. Protocol de transport TCP

Obertures actives i passives

TCP és orientat a connexió


• Cal que els dos extrems es posin d’acord

Obertura activa Obertura passiva


Aplicació
Indica vol establir Indica que acceptaria
una comunicació una comunicació
(client) (servidor)
Sistema
Operatiu
Estableix una comunicació Assigna un nº de port

Internet (38)
INT
E
5.3. Protocol de transport TCP

Estats de la comunicació
• Establiment • Enviament de confirmacions
• Transferència de dades • Anunci de la mida de la finestra
• Tancament de connexions
• CLOSED: Cap connexió activa o pendent
• LISTEN: Servidor esperant peticions de connexió
• SYN RCVD: Ha arribat una petició de connexió. Esperant ACK
• SYN SENT: S’ha enviat una petició de connexió. Esperant SYN+ACK
• ESTABLISHED: Connexió establerta. Es pot enviar i rebre dades
• FIN WAIT 1: El client acaba d’enviar un alliberament de connexió
• FIN WAIT 2: El servidor acaba de acceptar l’alliberació de connexió
• TIME WAIT: Esperant que tots els paquets morin
• CLOSING: Client i servidor han intentat tancar
• CLOSE WAIT: L’altre cantó ha iniciat l’alliberament
• LAST ASK: Esperant que tots els paquets morin
Internet (39)
INT
E
5.3. Protocol de transport TCP

Establiment i tancament de la connexió


LISTEN (passive open)
(active open) SYN_SENT SYN
SYN_RCVD
SYN , ACK
ESTABLISHED
A CK
ESTABLISHED

FIN_WAIT_1 FIN
CLOSE_WAIT
A CK
FIN_WAIT_2
FIN LAST_ACK
TIME_WAIT
A CK
CLOSED

Internet (40)
INT
E
5.6. Conclusions

Conclusions sobre els protocols de transport


TCP UDP
• Orientat a connexió • No orientat a connexió
• Fiable • No fiable
• Pesat • Lleuger
• Òptim per a serveis com e- • Òptim per a transport
mail, transferència de d’àudio-vídeo, dades
fitxers... descartables...

Internet (41)
INT
E

Internet
Internet (42)

You might also like