200 likes | 320 Vues
This project presents an innovative approach to TCP (Transmission Control Protocol) called Modular TCP, aimed at overcoming new challenges in the Internet era. It discusses the evolution of TCP, highlighting reliability, flow control, and congestion control issues. The paper explores the necessity of accommodating various internet users and content types, from multimedia to real-time applications. With insights on implementing Application Level Framing (ALF) and various Application Data Unit (ADU) types, this design promotes on-demand reliability and flexibility, ensuring efficient data delivery in diverse network conditions.
E N D
EE228A Project, Fall 2000 Modular TCP Yunfei Deng, Kenneth Cheung, Daniil Khidekel Professor Jean Walrand 12/5/2000
Outline • TCP basics • New Challenges at Internet Era • Transport Protocol Design • Modular TCP • Issues in Implementation • Summary
Development of TCP • Stream Data Transfer on IP • Connection based • Reliable delivery by retransmissions • In order delivery • Flow control • Congestion Control • Extensions, T/TCP etc.
New Challenges • Vast Internet resources and users • Various kinds of contents: multimedia • Various conditions of Internet connections, from High-speed Broadband access to slow modem • Various requirements on quality of transportation: timing, ordering, and integrity
Examples • A FTP program: may retransmit received but dropped out-of-order data, add traffic into network • A Stock quote program for Day-trader: only the newest correct quotes are meaningful • Online Video playing: lost tolerable, timing is important, out-of-order frames might be useful
TCP RSTP … UDP IP Network Link Current Status • Existing TCP not suitable • UDP is not enough • Various Protocols built on top of UDP: RTSP, SRDP • Opportunity in extending TCP
Transport Protocol Design • Reliability on-demand • Constraints on ordering • Flow Control • Congestion Control • Applications involved Congestion control (M)TCP Reliability RSTP … UDP IP Network Link
Modular TCP • Key idea: Application Level Framing (ALF), D.Clark 1990, M.I.T. • Goals: must-have congestion control, on-demand reliability control, on-demand ordering constraints • Compatible with TCP • Based on existing TCP/IP implementations
ADU in Modular TCP • ADU: Application Data Unit • MTCP deals with ADU from Applications • Different ADU types: • Reliable, In-Order • Reliable, Out-of-Order OK. • Unreliable, In-Order • Unreliable, Out-of-Order OK.
Begin the connection • Add Modular TCP options into TCP header: {MTCP option kind, requested ADU Policy} • When send SYN to initialize connection, mark MTCP option in the header as “MTCP supported”, also in replies • Use Modular TCP only when both sides support it, otherwise use traditional TCP
During the connection • More ADU options in TCP header un-favored • Additional ADU header after TCP header: {name, seq#, range, options} • ADU Policies: • Reliable, In-Order delivery • Reliable, Out-of-Order delivery • Unreliable, In-Order delivery • Unreliable, Out-of-Order delivery • Mixture delivery
During the connection (cont’d) • More About mixture ADU types: • Conservative approach: use the most constrained level of delivery • More complex scheme: permit various types of ADU in the same connection, but need additional semantics defining the ordering constraints between different types of ADU
Sender of the connection • Sender receives ADUs from Applications • ADU Fragmentation, Packet queuing, … • Sender keeps the sliding window proceeding with the coming ACKs • Reaction of lost packet: • Reliable ADU packets need to be retransmitted • Unreliable ADU packets don’t need to retransmitted, but need congestion control
Receiver of the connection • Calculate checksum, Acknowledgement • Queue partial ADU packets • Re-organize the packets into ADUs • Delivery to Applications • In-Order required: queue/drop out-of-order ADUs • Out-of-Order OK.: instantaneous delivery to application
Acknowledgements • TCP’s positive cumulative ACK scheme doesn’t work for unreliable ADUs • SACK: Selective Acknowledgement • Selectively acknowledge non-contiguous blocks of data not covered by the Cumulative Acknowledgement field • Update Cumulative ACK field when ADU delivered (reliable or unreliable) or dropped (unreliable)
Flow and Congestion Control • SACK for all types of ADU • Use SACK info to detect lost, congestion • Apply normal TCP slow start, congestion avoidance, fast recovery
Implementation Modular TCP • linux