Tema 6. Nivell de Transport (Comunicació extrem a extrem)bbellalt/XS-Tema6-Transport.pdf · Tema...

79
 Xarxes i Serveis Part of the material used for these slides has been obtained from: Computer Networking: A Top Down Approach , 4 th edition. Jim Kurose, Keith Ross. Addison-Wesley, July 2007. Xarxes i Serveis Tema 6. Nivell de Transport (Comunicació extrem a extrem)

Transcript of Tema 6. Nivell de Transport (Comunicació extrem a extrem)bbellalt/XS-Tema6-Transport.pdf · Tema...

   

Xarxes i Serveis

Part of the material used for these slides has been obtained from:Computer Networking: A Top Down Approach , 4th edition. Jim Kurose, Keith Ross. Addison-Wesley, July 2007.

Xarxes i Serveis

Tema 6. Nivell de Transport(Comunicació extrem a extrem)

   

Xarxes i Serveis

Internet Protocol Stack

application: supporting network applicationsFTP, SMTP, HTTP

transport: process­process data transferTCP, UDP

network: routing of datagrams from source to destination IP, routing protocols

link: data transfer between neighboring  network elements Ethernet, WLANs

physical: bits “on the wire/wireless”

   

Xarxes i Serveis

Estructura “bàsica” d'un host, router i switch

Enllaç(LLC)

Enllaç(MAC)

Xarxa

Físic

Transport

Aplicació

CANAL

Tx Rx

Enllaç(LLC)

Enllaç(MAC)

Físic

CANAL

Tx Rx

Xarxa

Enllaç(LLC)

Enllaç(MAC)

Físic

CANAL

Tx Rx

Cua detransmissió

PaquetsEsperantPer ser tx

   

Xarxes i Serveis

Packet Terminology: UDP

Application Message

UDP dataUDP hdr

MSSUDP Segment

IP dataIP hdr

IP Packet

Ethernet dataEthernet

8 bytes

20 bytes

14 bytes 4 bytesMTU 1500 bytes

   

Xarxes i Serveis

Packet Terminology: TCP

Application Message

TCP dataTCP hdr

MSSTCP Segment

IP dataIP hdr

IP Packet

Ethernet dataEthernet

20 bytes

20 bytes

14 bytes 4 bytesMTU 1500 bytes

Xarxes i Serveis

Exemple

Enllaç(LLC)

Enllaç(MAC)

Xarxa

Físic

Transport

AplicacióOrigen

Tx

Enllaç(LLC)

Enllaç(MAC)

Xarxa

Físic

Transport

AplicacióDestí

CANALRx

Comunicació Extrem a Extrem, entre “hosts”

Enllaç(LLC)

Enllaç(MAC)

Xarxa

Físic

CANAL

   

Xarxes i Serveis

Logical end­to­end transport

“logical”: li és indiferentper on passen els paquetsen realitat, només li preocupa que hi hagi comunicació entre l'origeni el destí.

Xarxes i Serveis

Exemple

Transport

AplicacióOrigen

Transport

AplicacióDestíComunicació Extrem a Extrem, entre “hosts”

CANAL / ENLLAÇ VIRTUAL (LÒGIC) A NIVELL DE TRANSPORT

(Amaga tot el que hi ha per sota del nivell de transport. És caracteritzaper una certa velocitat de transmissió “de nivell de transport” i 

un retard extrem a extrem que depèn dels nivells inferiors de la pila de protocols)

   

Xarxes i Serveis

Contingut

● Funcions del nivell de transport.

● Multiplexar / Demultiplexar (1 node té varies aplicacions o processos)

● Orientat a connexió / no orientat a connexió.

● Multiplexació d'aplicacions sobre una única adreça IP.

● Estructura d'un Segment de Transport 

● Control de congestió

   

Xarxes i Serveis

Transport protocols

● provide logical communication between application processes running on different hosts.● transport protocols run in end systems (sistemes finals)

● send side: breaks app messages into segments, passes to  network layer

● rcv side: reassembles segments into messages, passes to app layer

● Two transport protocol available to apps: TCP and UDP

●Segment = packet of transport level.

●Message = packet of application level.

  11

Xarxes i Serveis

Principles of Congestion Control

● Congestion: informally: “too many sources sending too much data too fast for network to handle” 

● manifestations:– lost packets (buffer overflow at routers)– long delays (queueing in router buffers)

  12

Xarxes i Serveis

Causes/costs of congestion: scenario 1 

● two senders, two receivers● one router, infinite buffer ● no retransmission

●Retards elevats quan hi ha congestió●L'enllaç de sortida del router, limita el throughput.

unlimited shared output link buffers

Host Aλin : original data

Host B

λout

  13

Xarxes i Serveis

Causes/costs of congestion: scenario 2 

● two senders, two receivers● one router, finite buffers   Es perden paquets!!! →

finite shared output link buffers

Host A λin : original data

Host B

λout

λ'in : original data, plus retransmitted data

   

Xarxes i Serveis

Internet Transport services

1) reliable (fiable), in­order delivery (TCP)congestion control (control de congestió)flow control (control de fluxe)

Ho fa establint una connexió 

2) unreliable (no­fiable), unordered delivery: UDP

no­frills extension of “best­effort” IP (és a dir, no fa res)

no­frills = sense afegir­hi res de consideració

Serveis de transport que NO garanteix Internet

● delay guarantees (assegurar un cert retard)

● bandwidth guarantees (assegurar una certa amplada de banda)

   

Xarxes i Serveis

Multiplexing

● Multiplexar: com “barrejar” les dades de diferents “origens” (en aquest cas aplicacions) per a que es transmetin per un únic enllaç.

● Demultiplexar: el procés contrari, com separar les dades que arriben des d'un únic camí i s'envien cap a cada aplicació.

Identificador (Port): permet identificar cada aplicació o procés.

   

Xarxes i Serveis

Socket

● Interfície de comunicació proporcionada per el sistema operatiu 

● És pot veure com la unió entre el nivell d'aplicació i el nivell de transport.

● Dos tipus:

● Orientat a connexió (per a enviar dades sobre TCP)● No orientat a connexió (per enviar dades sobre UDP)

   

Xarxes i Serveis

Application / Process

● Application: group or processes (almenys 1 procés)

● Process: part of an application which handles with some specific functions.

● Example:● Application: Remote Weather Monitoring

● Two process: 

– measure the weather (e.g. temperature)

– send the information to the its destination through a network.● Some times: 1 application = 1 process

   

Xarxes i Serveis

Mux / Demux

Mux: gathering data from multiple sockets, enveloping data with header (later used for demultiplexing)

Demux: delivering received segments to correct socket

   

Xarxes i Serveis

Transport  layer

● transport layer: data communication between processes (end­to­end)   Comunicació entre dos “aplicacions/processos.”→

Host 1

IP address

Proc. 1 Proc. M

port/socket

Host 2

IP address

Proc. 1 Proc. M

? ?

Multiplexing

port/socket

  20

Xarxes i Serveis

Connection / Connectionless

(Orientat a connexió / No Orientat a Connexió)

● Orientat a connexió: tant l'emissor com el receptor mantenen informació concreta de l'estat de la transferència de dades entre l'emissor i el receptor.

● El protocol TCP és orientat a connexió.

● Permet fer les funcions de control de congestió, de fluxe i retransmissions extrem a extrem.

● No orientat a connexió: (el contrari) no es manté informació concreta de l'estat de la transferència de dades.

● El protocol UDP és no orientat a connexió.

● Només és dona el servei de “empaquetar” les dades del nivell d'aplicació.

  21

Xarxes i Serveis

Basic TCP/UDP segment

 host receives / sends IP datagrams● each datagram has source IP 

address, destination IP address

● each datagram carries 1 transport­layer segment

● each segment has source, destination port number 

host uses IP addresses & port numbers to direct segment to appropriate socket

­ Longitud TCP capçalera = 20 Bytes­ Longitud UDP capçalera = 8 Bytes 

source port # dest port #

32 bits

applicationdata

(message)

other header fields

TCP/UDP segment format

segment = name of a transport layer packet

  22

Xarxes i Serveis

Exemple (del Tema 7, el nivell d'aplicació)

http://www.upf.edu:80

http://www.upf.edu:8080

Enviem la petició HTTP al port 80(considerat el port per defecte de les peticions “web”).

Enviem la petició HTTP al port 8080 i observem que no funciona.Per què? En el port 8080 de l'ordinador on hi ha el servidor web de la UPFno hi ha cap “aplicació/procés” escoltant les nostres peticions.­> Sovint el port 8080 es deixa per accedir al servidor per temes de “manteniment”

Network Error (tcp_error) 

A communication error occurred: "Connection refused" 

The Web Server may be down, too busy, or experiencing other problems 

preventing it from responding to requests. You may wish to try again at a later time.

  23

Xarxes i Serveis

Example: Web Server

ClientIP:B

P1

client IP: A

P1P1

serverIP: C

SP: 9157

DP: 80

SP: 9157

DP: 80

P1 P2

D-IP:C

S-IP: A

D-IP:C

S-IP: B

SP: 5775

DP: 80

D-IP:C

S-IP: B

SP: Source Port, DP: Destination Port

Socket: port 9157(generat aleatòriament)

Socket: port 80

Socket: port 9157(generat aleatòriament)

  24

Xarxes i Serveis

Qüestió (DNS)

● Per arribar al servidor web de la “upf” haig d'arribar a l'ordinador que té l'aplicació que fa de servidor.

● No conec la seva “adreça” (IP), només el seu “nom”: www.upf.edu

● Coneixent el “nom” com puc trobar “l'adreça”? 

● Doncs, si parléssim d'una persona, puc trobar el seu telèfon consultant el “llistat telefònic”, no?

● Les xarxes tenen el “DNS” (Domain Name Service) que precisament és un llistat on hi ha la relació: “nom” <­> “IP”

  25

Xarxes i Serveis

Transport layer: end­to­end functionalities

UDP i TCP

  26

Xarxes i Serveis

Nivell de transport: End­to­end functionalities (desitjables)

Les funcions que realitzen els protocols de transport són:

­ Detecció d'errors extrem a extrem (cal detectar si hi ha errors en el destí, serveix per si el nivell d'enllaç ha considerat que un trama era correcta quan no ho era)

­ Retransmissions extrem a extrem (per si ens arriba quelcom erroni (o no arriba) ho poguem tornar a demanar)

­ Control de fluxe (per no saturar el destí enviant­li més paquets dels que pot “processar”).

­ Control de congestió (per evitar saturar la xarxa).

  27

Xarxes i Serveis

UDP(no fa cap de les funcionalitats anteriors... només permet multiplexar i demultiplexar)

  28

Xarxes i Serveis

UDP: User Datagram Protocol [RFC 768]

­ “best effort” service, UDP segments may be:a) lost (perduts, com la sèrie)b) delivered out of order to app (entregats fora d'ordre a l'aplicació)­ no orientat a connexióa) no handshaking between UDP sender, receiver (no hi ha negociació entre l'emissor i receptor)b) each UDP segment handled independently of others (cada segment UDP es gestiona de manera independent als altres)

Why is there a UDP?­ no fa establiment de connexió (que pot afegir un cert retard)­ senzill: no és necessita guardar informació “d'estat” ni a l'emissor ni al receptor­ la capçalera a afegir és petita­ no fa control de congestió: UDP pot transmetre segments tant ràpid com es desitgi (que després la xarxa es saturi... és un altre problema)

  29

Xarxes i Serveis

UDP: more

* s'utilitza sovint en aplicacions multimèdia amb “streaming” que:­ són tolerants a pèrdues­ requreixen vtx constants

source port # dest port #

32 bits

Applicationdata

(message)

UDP segment format

length checksum

Length, inbytes of UDP

segment,including

header

El checksum és equivalent als bits de “paritat”. Permet detectar si el segmentté errors.

  30

Xarxes i Serveis

Exemple: Transferència de Dades UDPA R1 R2 R3 B

Final

Inici

X

#1

#2

#3

#4

#5

­ El fitxer a transmetre és divideix en 5 paquets UDP.­ No es retransmet el paquet UDP perdut. Si el fitxer és una imatge, quan és vulguireproduïr a l'ordinador B, contindrà errors.

Tempsentre dos

paquets

  31

Xarxes i Serveis

TCP(Aquí veiem un TCP “light”, el XiS­TCP)

  32

Xarxes i Serveis

TCP: Basic concepts (with some simplifications)  

Estableix connexions “lògiques” full­duplex:­ s'envien dades “en els dos sentits” sobre la mateixa connexió.­ MSS: maximum segment size

Orientat a connexió: ­ negociació (intercanvi de missatges de control) per inicialitzar el receptor i l'emissor abans de començar la transferència de dades.

Control de fluxe:­ l'emissor no “ofegarà” al receptor (no li enviarà més dades de les que pugui processar)

Control de congestió­ l'emissor serà capaç de detectar si hi ha congestió a la xarxa.

  33

Xarxes i Serveis

TCP segment structure

source port # dest port #

32 bits

applicationdata

(variable length)

sequence number

acknowledgement number

Receive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (variable length)

URG: urgent data (generally not used)

ACK: ACK #valid

PSH: push data now(generally not used)

RST, SYN, FIN:connection estab(setup, teardown

commands)

# bytes rcvr willingto accept

countingby bytes of data(not segments!)

Internetchecksum

(as in UDP)

  34

Xarxes i Serveis

Round Trip Time (RTT)

RTT

RTT=Tempsd'anar i tornar

RTT=Rtx+Rprop+Rproc+Rtxack+Rprop+Rprocack

dades

ack

A B

   

Xarxes i Serveis

Transferència de dades amb TCP

EstablimentDe la Connexió

TransmissióDe Dades

TancamentDe la 

Connexió

Es fixen els paràmetresde treball

  36

Xarxes i Serveis

Establiment i Tancament de les connexions TCP

  37

Xarxes i Serveis

XiS­TCP Connection Management

● El protocol TCP estableix una connexió entre l'emisor i el receptor abans d'iniciar la transferència de les dades.

● Durant l'establiment de la connexió tant l'emissor com el receptor inicialitzen diferents variables com: 

– Num seq. (números de sequencia que s'utilitzaran)

– CongWin (mínim (Wmin) i màxim (Wmax))

– Threshold (llindar entre augmentar la finestra de manera multiplicativa a additiva).

  38

Xarxes i Serveis

XiS­TCP: Establiment de la connexió

t t

client serverPas 1: el client envia un segment que es diu SYN al servidor.

­ li diu que si vol connectar

­ inclou els paràmetres amb que el client vol fer la transferència de dades.

Pas 2: el servidor que rep el SYN, contesta amb un segment SYNACK

­ li diu que si a connectar­se

­ inclou els paràmetres amb que el servidor vol fer la transferència de dades.

Establiment

SYN

SYNACK

Quins paràmetres s'escullen? 

Els del client o els del servidor?

S'escullen els paràmetres més restrictius.

  39

Xarxes i Serveis

XiS­TCP: Tancament de la connexió

Step 1: el client envia un segment FIN per dir que vol finalitzar la connexió.

Step 2: el server respon amb un segment FINACK confirmant­li el tancament de la connexió.

t t

client server

Tancament

FIN

FINACK

  40

Xarxes i Serveis

Què passa si...

● És perd el segment SYN?● Al cap d'un cert temps (timeout), el client el torna a enviar el segment SYN.

● És perd el segment SYNACK?● El client torna a enviar el segment SYN al cap d'un cert temps (timeout).

● És perd el segment FIN?● Al cap d'un cert temps (timeout), el client el torna a enviar el segment FIN.

● És perd el segment FINACK?● El client torna a enviar el segment FIN al cap d'un cert temps (timeout).

Què és un TimeOut?

  41

Xarxes i Serveis

TimeOut

● Temps que triguem a reenviar un segment del que no hem rebut resposta.

● Ha de ser més gran que el RTT.

t t

client server

Segment

ACK

t t

client server

Segment X

X

Segment Segment

TimeOut TimeOut

  42

Xarxes i Serveis

Reliable data transfer

  43

Xarxes i Serveis

TCP reliable data transfer

● TCP crea un servei de transport “fiable” sobre IP● Selective Repeat (Mecanisme de retransmissions).

● Basat en “finestres” (màxim número de paquets que podem transmetre sense haver rebut cap ACK)

● ACKs acumulatius (un ACK confirma tot lo anterior).

● Hi haurà un únic temporitzador “timeout” actiu per a cada finestra.

● Una retransmissió està causada per:– Salta un “timeout”

– Arriben 2 ACKs demanant el mateix paquet● vol dir que el receptor ha rebut un paquet de l'emissor que 

no li tocava i ens torna a demanar el paquet que no li ha arribat.

   

Xarxes i Serveis

Transmissió de Dades XiS­TCP

Envio segmentCap a nivell 

de xarxa

N < W(i) EsperoArribada ACK

NO

SI N++

N: número d'ACKs que estic esperantW(i): mida actual de la finestraW(i+1): mida de la propera finestra

Rx ACK TCPSalta

TimeOut

Inicio el TimeOut

Es l'ACKesperat?

DetectoPèrdua de SegmentW(i+1)=1

Threshold= ceil(W(i)/2)N=0

Cancel TimeOut

NO

SI

N­­

Primer ACKFinestra actual

NO

SI

W(i+1)=min(2*W(i),Threshold) si W(i)<ThresholdW(i+1)=W(i)+1 si W(i)>=ThresholdW(i+1)=Wmax si W(i)+1>=Wmax

Cancel TimeOut

1

1

Inici Tx finestra

   

Xarxes i Serveis

Què és això de la finestra?

● La finestra de transmissió ens diu quants paquets podem haver enviat al nivell de xarxa sense haver rebut cap ACK per a ells.

● La lletra W és la mida de la finestra. Quan més gran sigui, més dades podrem enviar en menys temps.

t t

client server

ACK

client server

DadesW=1 Dades

ACK

W=4

   

Xarxes i Serveis

Què és això de la finestra?

t

client server

Dades

ACK

W=2

W=4El retard dels ACKsCanvia sobtadament(per exemple, per què viatgen per una altra ruta)

W=8

Per què si la finestraés 4 nomésn'enviem 3de seguits?Doncs per què si W=4, podem tenir fins a 4 segments enviats sense haverrebut el ACK per a ells. Per tant, com en tenim un encara pendent de rebre l'ACK,doncs només en podem enviar 3.

  47

Xarxes i Serveis

Evolució temporal del XiS­TCP

Slow Start

Additive Increase

Reset CongWin after a lost

CongWin/2

Packet loss

W

  48

Xarxes i Serveis

Example of XiS­TCP initial values

● Depèn de la versió concreta de TCP.

● Nosaltres considerarem diferents valors segons cada situació. Per exemple, podríem tenir: 

● Timeout = 6 seconds (adaptatiu, > RTT)● Threshold CongWin = 8 (adaptatiu)● Cong Win min (Wmin) = 1● Cong Win max (Wmax) = 12 (màxim valor que 

pot prendre la CongWin)

   

Xarxes i Serveis

Què és això de la finestra?

● En aquest cas:

● Wmin=1, ● Wmax=4, ● Threshold=2

W=1

W=2

W=3

W=4

W=4

x2

+1

+1

=

  50

Xarxes i Serveis

Control de Congestió de XiS­TCP

Es realitza extrem a extrem● La xarxa no informa als extrems de la presència o no de congestió.● Els hosts han de deduïr si hi ha congestió o no en funció de si perceben que hi ha pèrdua de paquets i de si el retard creix molt.

  Es  control  de  congestió  precisament  es  fa  mitjançant  el mecanisme  d'adaptació  del  tamany  de  la  “finestra”  de transmissió!

Raonament: si la xarxa perd paquets, assumeixo que està congestionada i redueixo el número de paquets que hi envio. Amb sort, al cap de poc, la congestió desapareixerà I podré tornar a enviarmés paquets alhora.

  51

Xarxes i Serveis

XiS­TCP: retransmission scenarios

Host A

Seq=2, 20 bytes data

ACK=1

timepremature timeout

Host B

Seq=1, 8 bytes data

ACK=2

Seq=1, 8 bytes data

Seq

=1

ti m

eou

t

ACK=2

Host A

Seq=1, 8 bytes data

ACK=1

loss

tim

eout

lost ACK scenario

Host B

X

Seq=1, 8 bytes data

ACK=1

timeSeq

=1

ti m

eout

TCP assumes a full duplex­channel!!!!

Pateixun retardmés grande l'esperat

W=1W=2

Cong.Window

W=1

  52

Xarxes i Serveis

XiS­TCP retransmission scenarios (more)

Host A

Seq=1, 8 bytes data

ACK=1

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=2, 20 bytes data

ACK=2

time

● El receptor sempre contesta amb un ACKde l'últim paquet que s'ha rebut bé.● És a dir, l'emissor sap que tots els paquets anteriors han sigut rebuts correctament encara que no hagi rebut (l'emissor) un ACK per cada paquet enviat.

Si no s'hagués rebut (a B) el paquet 1,a l'ACK es demanaria el paquet “1”.

  53

Xarxes i Serveis

XiS­TCP: pèrdua d'ACKs

t

client server

Dades

ACK

W=2

W=4 X

TO W=8 Per què passa això?Gràcies als ACKs acumulatius,la pèrdua del ACK 2, es resolt.

1

2

3

6

Continuaré enviantels altres segmentsfins que en tingui 8 enviatssense hagi rebut cap ACK pera ells

Es cancel∙la

  54

Xarxes i Serveis

XiS­TCP: pèrdua de segmentsclient server

12

131415

12

12

12

16

12

W=4

W=8

ACKs acumulatius

Semprel'ACKfa referènciaa l'últim segmentrebut correcte ien l'ordre esperat

Aquí detectem la pèrdua d'un segment.Faig un RESET de Manera que la properafinestra serà W=1 iRetx. El segment perdut. 12

17

W=1 13

  55

Xarxes i Serveis

XiS­TCP: pèrdua de segmentsclient server

16

12

W=8

12

17

W=1

13

17

1212

12

M'espero a rebreel 1er ACKde la finestraanterior o a que el TimeOut  expiri.

ACKs acumulatius!!

RESET

  56

Xarxes i Serveis

XiS­TCP Round Trip Time and Timeout

Q: Quin ha de ser el valor del TimeOut?

­ més gran que un RTT

Però el RTT varia segment a segment... per tant:

­ si és massa curt: sovint saltarà el timeout i retransmetrem segments quan potser no seria necessari­ si és massa llarg: reaccionarem massa poc a poc quan es perdi de veritat un segment

Q: Què és el RTT?És el temps des de que s'envia un paquet de dades fins que es rep el seu corresponent ACK.

Q: I...???

­ XiS­TCP calcula el RTT de cada paquet que envia i els va promitjant.

­ Ajusta el valor del TimeOut a aquest valor promig.

  57

Xarxes i Serveis

Example càlcul RTT:RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

  58

Xarxes i Serveis

Throughput de XiS­TCP

A l'engròs,

L és la longitud de les dades.

Si Wmig és el tamany de finestra promig utilitzat durant la transferència de dades:

vtx = L·Wmax 

RTT Bits/secThroughput max=

vtx = L·Wmig 

RTT Bits/secThroughput mig=

vtx = L·Wmin 

RTT Bits/secThroughput min=

  59

Xarxes i Serveis

Exemple / Exercici

   

Xarxes i Serveis

Escenari

● Considerant la següent xarxa:

ABR1 R2

R3R4

E1E2

E3E4

E7

E6

E5

E8

Servidor Web

   

Xarxes i Serveis

Escenari

● Enllaç 1, 7: Parell trenat 100 Mbps, half­duplex

● C= 100 Mbps, 

● Stop & Wait

● Tprop = negligible (aprox 0)

● Enllaç 2, 3, 4, 5, 6: Fibra òptica, full­duplex

● C= 10 Gbps

● Cap protocol de retransmissions a nivell d'enllaç.

● Tprop = 0.02 msegons

● Enllaç 8: Parell Trenat a 1 Gbps, half­duplex

● C=1 Gbps

● Stop & Wait

● Tprop = negligible (aprox 0)

   

Xarxes i Serveis

Escenari

● Ordinador A i B

● Temps de procés (negligible).

● Adreces (per els dos ordinadors, A I B):

– @MAC (d'enllaç): A: MACA; B: MACB

– @IP (de xarxa): A: IPA; B: IPB

– Port (de transport): A: PA, B: PB● Routers (tots)

● Temps de procés (negligible)

● Adreces (per a cada interfície de xarxa – enllaç)

– @MAC: MACRyEx on x és a que ens referim i y el rotuer.

– @IP: IPRyEx on x és l'enllaç a que ens referim i y el router.

   

Xarxes i Serveis

Situació

● A i B són àmics i han decidit programar­se la seva pròpia aplicació per intercanviar­se “fitxers”, que  anomenen X;

● L'aplicació X utiltiza el protocol TCP per a fer la transferència de dades, tant de A cap a B com de B cap a A.

● En aquest cas concret, l'usuari A vol baixar­se un fitxer que B té al seu ordinador. El fitxer en concret ocupa 2 Mbits.

● A i B han pactat que l'aplicació a l'ordinador A utiltizarà el port 4087 I a l'ordinador B utilitzarà el port 7563. En els dos casos, s'utilitza el mateix port per enviar o per rebre dades.

   

Xarxes i Serveis

Dades Protocol XiS­TCP, IP i enllaç

● El protocol TCP considerat en aquesta situació presenta els següents paràmetres:

● Wmin = 1, Wmax = 8, Threshold = 4

● Timeout >= RTT

● Capçalera TCP: 20 Bytes

● MSS: 1200 bits

● La petició del fitxer només inclou el seu “nom”, de longitud 64 bits.

● El protocol IP afegeix una capçalera de 20 bytes.

● El protocol d'enllaç afegeix una capçalera de 16 bytes.

   

Xarxes i Serveis

Esquema

ABR1 R2

R3R4

E1E2

E3E4

E7

E6

E5

E8

Servidor Web

Enllaç lògic bidireccional full­duplex

Camí físic(4 salts)

S'assumeix que no hi ha errors de transmissió ni pèrduade paquets (si no es diu el contrari)

   

Xarxes i Serveis

Què és demana?

● Quants paquets de dades del fitxer s'han d'enviar? Quina és la longitud del paquet de dades del fitxer a nivell de transport, a nivell de xarxa i a nivell d'enllaç? Fer el mateix per el paquet de “petició” de fitxer.

● Indicar per a tota la ruta física, quines adreces i ports contenen els paquets que viatgen entre A I B.

● Dibuixar el cronograma “des del punt de vista del nivell d'enllaç” del procediment d'obertura, petició de fitxer, transferència dels 12 primers paquets i tancament de la connexió. 

● Si durant tota la transferència, la finestra de congestió mitja és de E[W]=4 segments, calcular:

● Aproximadament, el retard total de transferència del fitxer.

● Aproximadament, quin és el throughput aconseguit?

   

Xarxes i Serveis

Paquets i adreces

● Número de paquets de dades de fitxer que s'han d'enviar:

● N = 2E6 bits / 1200 bits = 1666.7   → 1667 paquets

– Sempre s'arrodoneix a l'enter superior.● Longitud dels paquets de dades:

● Dades: 1200 bits de dades d'aplicació

● TCP: Afegeix 20 bytes ∙ 8 bits / byte= 160 bits

● IP: Afegeix 20 bytes ∙ 8 bits / byte = 160 bits

● Enllaç: Afegeix 16 bytes ∙ 8 bits / byte = 128 bits

● Total = 128+160+160+1200 = 1648 bits

1200TCPIPLink

448 bits de capçaleres!!!! Overhead = 448 / 1648 = 0.27   27 %1→

   

Xarxes i Serveis

Paquets i adreces

● Longitud dels paquet de petició del fitxer:

● Dades: 8 bytes = 64 bits de dades d'aplicació

● TCP: Afegeix 20 bytes ∙ 8 bits / byte= 160 bits

● IP: Afegeix 20 bytes ∙ 8 bits / byte = 160 bits

● Enllaç: Afegeix 16 bytes ∙ 8 bits / byte = 128 bits

● Total = 128+160+160+64 = 512 bits

64TCPIPLink

448 bits de capçaleres!!!! Overhead = 448 / 512 = 0.875   87 %→

   

Xarxes i Serveis

Paquets i adreces

● Els paquets de A a B:

● Ruta física: E1, E3, E4, E7

Dades7563.4087IPB,IPAMACR1E1,MACA

Dades7563.4087IPB,IPAMACR3E3,MACR1E3

Dades7563.4087IPB,IPAMACR2E4,MACR3E4

Dades7563.4087IPB,IPAMACB,MACR2E7

origen

destí

Des de A fins a B les úniques adreces que canvien són les de cada salt!!!

E1

E2

E3

E4

   

Xarxes i Serveis

Paquets i adreces

● I de B cap a A? Fixeu­vos que el camí físic és el mateix.

●  Ho deixem proposat com a exercici per a vosaltres.

   

Xarxes i Serveis

Cronograma (diagrama temporal)

● Ens demanen dibuixar l'intercanvi de paquets entre A i B, incloent tots els paquets que s'envien (com ACKs) des de la perspectiva del nivell d'enllaç. 

● Recordem:

● A obre una connexió TCP amb B.

● A demana un fitxer a B (a través de TCP).

● B li envia el fitxer a A (a través de TCP).

● A tanca la connexió TCP.

   

Xarxes i Serveis

Obertura de la connexió TCP

t t t t t

A R1 R3 R4 BE1 E3 E4 E7

SYN

SYNACK

Connexió TCP oberta

ACKs a nivell d'enllaç!!!!

(1)

   

Xarxes i Serveis

Tancament de la connexió TCP

t t t t t

A R1 R3 R4 BE1 E3 E4 E7

FIN

FINACKACKs a nivell d'enllaç!!!!

(1)

   

Xarxes i Serveis

Petició del fitxer + 1er segment dades

t t t t t

A R1 R3 R4 BE1 E3 E4 E7(1)Petició

ACK de TCPPer la Petició

W=1

Primer paquetamb dades delfitxer

ACK de TCPPer el 1er Paquet del fitxer

W=1

W=2

   

Xarxes i Serveis

Transferència del fitxer(òbviant els ACKs de nivell d'enllaç)

t

A R1 R3 R4 BE1 E3 E4 E7

t t t t

W=1

W=2

W=4

W=5

W=6

   

Xarxes i Serveis

Que passaria si... és per el paquet 4?

A R1 R3 R4 BE1 E3 E4 E7

t t t t

W=1

W=2

W=4X

W=1I el segment 4?

Torno a enviar el segment 4 que s'ha perdut!

W=2

Si els segments 5 i 6 han arribat bé,segueixo transmetent el 8 i 9...

   

Xarxes i Serveis

Throughput i retard de transferència

● Si assumim que en mitja, E[W]=4, aproximadament el throughput mig que s'obté és:

● Throughput mig = Ldades ∙ E[W] / RTT

● Quan val el RTT? Cal calcular­ho!!! :­)

● El retard de transferència, a ull serà:

● Si cada RTT enviem E[W] segments, el número de RTT que trigarem a enviar 1668 segments serà “x”.

● El valor de “x” és el retard de transferència.

   

Xarxes i Serveis

Càlcul del RTT

t t t t t

A R1 R3 R4 BE1 E3 E4 E7

RTT

EsCalculaPer unPaquetDe dades

   

Xarxes i Serveis

Exercici

● Resoldre els punts pendents d'aquest exercici.

● Resoldre novament l'exercici si s'utilitzés el protocol “UDP” a nivell de transport.