Diferencia entre revisiones de «Práctica 4: End-to-End (Teoría de las Comunicaciones)»

De Cuba-Wiki
Sin resumen de edición
Sin resumen de edición
Línea 84: Línea 84:
   state->CongestionWindow = MIN(cw + incr, TCP_MAXWIN);
   state->CongestionWindow = MIN(cw + incr, TCP_MAXWIN);
  }
  }
==Ejercicio 01==
==Ejercicio 02==
==Ejercicio 03==
==Ejercicio 04==
==Ejercicio 05==
==Ejercicio 06==
==Ejercicio 07==
==Ejercicio 08==
==Ejercicio 09==
==Ejercicio 10==
==Ejercicio 11==
==Ejercicio 12==
==Ejercicio 13==
==Ejercicio 14==
==Ejercicio 15==
==Ejercicio 16==
==Ejercicio 17==
==Ejercicio 18==
==Ejercicio 19==
==Ejercicio 20==
==Ejercicio 21==
==Ejercicio 22==
==Ejercicio 23==
==Ejercicio 24==
==Ejercicio 25==
==Ejercicio 26==
==Ejercicio 27==
==Ejercicio 28==
==Ejercicio 29==
==Ejercicio 30==
==Ejercicio 31==
==Ejercicio 32==
==Ejercicio 33==
==Ejercicio 34==
==Ejercicio 35==
==Ejercicio 36==
==Ejercicio 37==
==Ejercicio 38==
==Ejercicio 39==
==Ejercicio 40==
==Ejercicio 41==
==Ejercicio 42==
==Ejercicio 43==
==Ejercicio 44==
==Ejercicio 45==
==Ejercicio 46==
==Ejercicio 47==
==Ejercicio 48==
==Ejercicio 49==
==Ejercicio 50==
==Ejercicio 51==
==Ejercicio 52==
==Ejercicio 53==
==Ejercicio 54==
==Ejercicio 55==
==Ejercicio 56==
==Ejercicio 57==
==Ejercicio 58==
==Ejercicio 59==
==Ejercicio 60==
==Ejercicio 61==
==Ejercicio 62==
==Ejercicio 63==
==Ejercicio 64==
==Ejercicio 65==
==Ejercicio 66==
==Ejercicio 67==
==Ejercicio 68==
==Ejercicio 69==
==Ejercicio 70==
==Ejercicio 71==
==Ejercicio 72==
==Ejercicio 73==
==Ejercicio 74==
==Ejercicio 75==
==Ejercicio 76==
==Ejercicio 77==

Revisión del 01:18 23 ago 2007

Volver

Header

SrcPort
DestPort
SequenceNum
Acknowledgment
HdrLen
0
Flags
AdvertisedWindow
Checksum
UrgPtr
Options (variable)
Data

Connection Setup

SYN, SequenceNum = x
SYN + ACK, SequenceNum = y, Acknowledgment = x + 1
ACK, Acnkowledment = y + 1

Invariants

LastByteAcked LastByteSent
LastByteSent LastByteWritten
LastByteRead NextByteExpected
NextByteExpected LastByteRcvd + 1

Fórmulas

Flow Control

Invariants

LastByteRcvd - LastByteRead MaxRcvBuffer


EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)
LastByteWritten - LastByteAcked MaxSendBuffer
(LastByteWritten - LastByteAcked) + y MaxSendBuffer

Original Algorithm



Jacobson/Karels Algorithm





Actually:
Implementation:

{
  SampleRTT -= (EsimatedRTT >> 3);
  EsimatedRTT += SampleRTT;
  if (SampleRTT < 0)
  {
      SampleRTT = -SampleRTT;
  }
  SampleRTT -= (Deviation >> 3);
  Deviation += SampleRTT;
  TimeOut = (EstimatedRTT >> 3) + (Deviation >> 1);
}

Something

 When the application produces data to send
if both the avaiable data and the window MSS
send a full segment
else
if there is unACKed data in flight
buffer the new data until an ACK arrives
else
send all the new data now

TCP Congestion Control

Formulas


Additive Increase / Multiplicative Decrease





Slow Start

{
  int cw = state->CongestionWindow;
  int incr = state->maxseg;
  if (cw > state->CongestionThreshold)
  {
    incr = incr * incr / cw;
  }
  state->CongestionWindow = MIN(cw + incr, TCP_MAXWIN);
}

Ejercicio 01

Ejercicio 02

Ejercicio 03

Ejercicio 04

Ejercicio 05

Ejercicio 06

Ejercicio 07

Ejercicio 08

Ejercicio 09

Ejercicio 10

Ejercicio 11

Ejercicio 12

Ejercicio 13

Ejercicio 14

Ejercicio 15

Ejercicio 16

Ejercicio 17

Ejercicio 18

Ejercicio 19

Ejercicio 20

Ejercicio 21

Ejercicio 22

Ejercicio 23

Ejercicio 24

Ejercicio 25

Ejercicio 26

Ejercicio 27

Ejercicio 28

Ejercicio 29

Ejercicio 30

Ejercicio 31

Ejercicio 32

Ejercicio 33

Ejercicio 34

Ejercicio 35

Ejercicio 36

Ejercicio 37

Ejercicio 38

Ejercicio 39

Ejercicio 40

Ejercicio 41

Ejercicio 42

Ejercicio 43

Ejercicio 44

Ejercicio 45

Ejercicio 46

Ejercicio 47

Ejercicio 48

Ejercicio 49

Ejercicio 50

Ejercicio 51

Ejercicio 52

Ejercicio 53

Ejercicio 54

Ejercicio 55

Ejercicio 56

Ejercicio 57

Ejercicio 58

Ejercicio 59

Ejercicio 60

Ejercicio 61

Ejercicio 62

Ejercicio 63

Ejercicio 64

Ejercicio 65

Ejercicio 66

Ejercicio 67

Ejercicio 68

Ejercicio 69

Ejercicio 70

Ejercicio 71

Ejercicio 72

Ejercicio 73

Ejercicio 74

Ejercicio 75

Ejercicio 76

Ejercicio 77