The Importance of Being TCP-Friendly Eiman Zolfaghari E190 – Professor Hatton May 2002 UDP TCP DCP
What is TCP? TCP: Transport Layer Protocol – The way the majority of data on the Internet is passed around Web pages, file transfers, chat programs Web pages, file transfers, chat programs Used because its reliable and fair Used because its reliable and fair Time (seconds) Packets sent / second Max Bandwidth Congestion One TCP connection
What is TCP? TCP: Transport Layer Protocol – The way the majority of data on the Internet is passed around Web pages, file transfers, chat programs Web pages, file transfers, chat programs Used because its reliable and fair Used because its reliable and fair Time (seconds) Packets sent / second Max Bandwidth Congestion A second TCP connection
What is UDP? UDP: User Datagram Protocol – The way video and audio streams are passed around No congestion control, thus not fair No congestion control, thus not fair Not reliable at all Not reliable at all Time (seconds) Packets sent / second Max Bandwidth Congestion One Innocent TCP connection
What is UDP? UDP: User Datagram Protocol – The way video and audio streams are passed around No congestion control, thus not fair No congestion control, thus not fair Not reliable at all Not reliable at all Time (milliseconds) Packets sent / second Max Bandwidth A Mean UDP Connection Comes In Innocent TCP Connection
Why wasn’t this an issue before? Lots of unused bandwidth (not anymore) Little number of users (not anymore) Video streams? Audio Streams? Who’ll use it? (Cable/DSL increased the demand) UDP TCP
The Importance of being TCP-Friendly Since the majority of the Internet uses TCP, other protocols must behave fairly towards it A protocol is TCP-Friendly if its “long- term throughput does not exceed the throughput of a conformant TCP connection under the same conditions” Thus, UDP is out of the picture
A TCP-Friendliness Equation Calculates estimated TCP throughput (packets/second) l act is the ‘actual packet loss fraction’ of TCP packets t RTT is the TCP round trip time t 0 is the TCP timeout value Source: Padhye et al.
What about applications that use UDP? Make a new protocol that application developers can easily convert to Make a protocol that is both unreliable and yet has congestion control UDP TCPDCP
A Solution: DCP Datagram Control Protocol Variable reliability Variable reliability Reliable for initial connection rate negotiations No guarantees on other data Congestion Control Mechanisms Congestion Control Mechanisms each direction of flow gets to choose what kind of congestion control they wish to use The algorithms used for most congestion control mechanisms ensure TCP-friendliness Lightweight, like UDP Lightweight, like UDP
Congestion Control Mechanisms New research has come up with better ways of detecting and dealing with congestion TFRC: TCP-Friendly Rate Control When packet is lost in TCP, throughput fluctuates a lot When packet is lost in TCP, throughput fluctuates a lot TFRC attempts to alleviate this, while maintaining TCP-friendliness TFRC attempts to alleviate this, while maintaining TCP-friendliness TEAR: TCP Emulation At Receivers Claims that it will be more TCP-friendly than TFRC Claims that it will be more TCP-friendly than TFRC
The Importance of Being TCP-Friendly To reduce Internet congestion, applications must use less UDP, and more TCP-friendly protocols like DCP UDP TCP DCP