lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

index.md (1310B)


      1 +++
      2 title = "Transport: internet transport protocols"
      3 +++
      4 
      5 # Transport: internet transport protocols
      6 **Internet transport protocols**
      7 UDP (User Datagram Protocol)
      8 
      9 - very thin layer on top of IP
     10 
     11 - provides: ports
     12 
     13 - does not provide: flow/congestion control, retransmissions
     14 
     15 - header format:
     16 
     17 ![screenshot.png](8089dda42e4082b63932c5189770993a.png)
     18 
     19 TCP (Transmission Control Protocol)
     20 
     21 - provides reliable end-to-end byte stream (so applications can’t tell how many segments or packets were sent)
     22 
     23 - header format:
     24 
     25 ![screenshot.png](a151cbc9fbc2f68b138f6c45c4008a83.png)
     26 
     27 - every data byte has its own sequence number
     28 - window size — how much data receiver can handle, with small values leading to huge overhead
     29 - congestion control
     30     - congestion window is on sender, specifying how many segments can be transmitted.
     31     - increase congestion window whenever ACKs arrive, until they don’t.
     32     - then set slow start threshold to half of congestion window and start again.
     33     - when threshold is crossed, switch to additive increase
     34 - fast retransmission — three duplicate acks imply lost packet, whose identity can be infered from ack number (it’s the next packet in sequence). this packet is retransmitted right away
     35 - in TCP Reno:
     36 
     37 ![screenshot.png](c062aabb9720d559668e09f9a9c6fb4c.png)