TCP-XM: Unicast-enabled Reliable Multicast

Slides:



Advertisements
Similar presentations
Push Technology Humie Leung Annabelle Huo. Introduction Push technology is a set of technologies used to send information to a client without the client.
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
Guide to TCP/IP, Third Edition
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
Lecture 7 Transport Layer
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Hybrid Reliable Multicast with TCP-XM Jon Crowcroft Marinho P Barcellos, UNISINOS Stefano Pettini, ESA Karl Jeacle.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Chapter 4 OSI Transport Layer
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
The Transport Layer.
1 Chapter Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Chapter 6-2 the TCP/IP Layers. The four layers of the TCP/IP model are listed in Table 6-2. The layers are The four layers of the TCP/IP model are listed.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
Extending Globus to support Multicast Transmission Karl Jeacle
Reliable high-speed Grid data delivery using IP Multicast Karl Jeacle & Jon Crowcroft
Networking Basics CCNA 1 Chapter 11.
Institute of Technology Sligo - Dept of Computing Chapter 12 The Transport Layer.
A Multicast Transport Driver for Globus XIO Karl Jeacle
TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
01_NF_Ch04 – OSI Transport Layer ( 傳輸層 ) Source: CCNA Exploration.
© 2002, Cisco Systems, Inc. All rights reserved..
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Chapter 7: Transport Layer
LESSON Networking Fundamentals Understand TCP/IP.
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Instructor Materials Chapter 9: Transport Layer
COMP2322 Lab 6 TCP Steven Lee Mar 29, 2017.
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
TCP.
PART 5 Transport Layer Computer Networks.
TCP Transport layer Er. Vikram Dhiman LPU.
Magda El Zarki Professor, ICS UC, Irvine
TCP - Part I Karim El Defrawy
CS4470 Computer Networking Protocols
Dr. John P. Abraham Professor UTPA
TRANSMISSION CONTROL PROTOCOL
Dr. John P. Abraham Professor UTPA
PART 5 Transport Layer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Layer 9/22/2019.
EEL 5718 Computer Communications
TCP Connection Management
Presentation transcript:

TCP-XM: Unicast-enabled Reliable Multicast Karl Jeacle karl.jeacle@cl.cam.ac.uk

Rationale Would like to achieve high-speed bulk data delivery to multiple sites Multicasting would make sense Existing multicast research has focused on sending to a large number of receivers But Grid is an applied example where sending to a moderate number of receivers would be extremely beneficial ICCCN 2005

Multicast availability Deployment is a problem! Protocols have been defined and implemented Valid concerns about scalability; much FUD “chicken & egg” means limited coverage Clouds of native multicast But can’t reach all destinations via multicast So applications abandon in favour of unicast What if we could multicast when possible… …but fall back to unicast when necessary? ICCCN 2005

Multicast TCP? TCP Multicast TCP “single reliable stream between two hosts” Multicast TCP “multiple reliable streams from one to n hosts” May seem a little odd, but there is precedent… TCP-XMO – Liang & Cheriton M-TCP – Mysore & Varghese M/TCP – Visoottiviseth et al PRMP – Barcellos et al SCE – Talpade & Ammar ICCCN 2005

ACK implosion ICCCN 2005

Building Multicast TCP Want to test multicast/unicast TCP approach But new protocol == kernel change Widespread test deployment difficult Build new TCP-like engine Encapsulate packets in UDP Run in userspace Performance is sacrificed… …but widespread testing now possible ICCCN 2005

If natively implemented TCP/IP/UDP/IP Sending Application TCP IP UDP Receiving If natively implemented test deployment ICCCN 2005

TCP engine Where does initial TCP come from? Could use BSD or Linux Extracting from kernel could be problematic More compact alternative lwIP = Lightweight IP Small but fully RFC-compliant TCP/IP stack lwIP + multicast extensions = “TCP-XM” ICCCN 2005

TCP-XM overview Primarily aimed at push applications Sender initiated – advance knowledge of receivers Opens sessions to n destination hosts simultaneously Unicast is used when multicast not available Options headers used to exchange multicast info API changes Sender incorporates multiple destination and group addresses Receiver requires no changes TCP friendly, by definition ICCCN 2005

TCP SYN SYNACK ACK Sender Receiver DATA ACK FIN ACK FIN ACK ICCCN 2005

TCP-XM Receiver 1 Sender Receiver 2 Receiver 3 ICCCN 2005

TCP-XM connection Connection User connects to multiple unicast destinations Multiple TCP PCBs created Independent 3-way handshakes take place SSM or random ASM group address allocated (if not specified in advance by user/application) Group address sent as TCP option Ability to multicast depends on TCP option ICCCN 2005

TCP Group Option New group option sent in all TCP-XM SYN packets kind=50 len=6 Multicast Group Address 1 byte 1 byte 4 bytes New group option sent in all TCP-XM SYN packets Non TCP-XM hosts will ignore (no option in SYNACK) Presence implies multicast capability Sender will automatically revert to unicast ICCCN 2005

TCP-XM transmission Data transfer Close Data replicated/enqueued on all send queues PCB variables dictate transmission mode Data packets are multicast (if possible) Retransmissions are unicast Auto fall back/forward to unicast/multicast Close Connections closed as per unicast TCP ICCCN 2005

TCP-XM protocol states ICCCN 2005

Fall back / fall forward TCP-XM principle “Multicast if possible, unicast when necessary” Initial transmission mode is group unicast Ensures successful initial data transfer Fall forward to multicast on positive feedback Typically after ~75K unicast data Fall back to unicast on repeated mcast failure ICCCN 2005

Multicast feedback Option kind=51 len=3 % Multicast Packets Received 1 byte 1 byte 1 byte New feedback option sent in ACKs from receiver Only used between TCP-XM hosts Indicates % of last n packets received via multicast Used by sender to fall forward to multicast transmission ICCCN 2005

TCP-XM reception Receiver No API-level changes Normal TCP listen Auto-IGMP join on TCP-XM connect Accepts data on both unicast/multicast ports tcp_input() accepts: packets addressed to existing unicast destination… …but now also those addressed to multicast group Tracks how last n segs received (u/m) ICCCN 2005

API changes Only relevant if natively implemented! Sender API changes New connection type Connect to port on array of destinations Single write sends data to all hosts TCP-XM in use: conn = netconn_new(NETCONN_TCPXM); netconn_connectxm(conn, remotedest, numdests, group, port); netconn_write(conn, data, len, …); ICCCN 2005

PCB changes Every TCP connection has an associated Protocol Control Block (PCB) TCP-XM adds: struct tcp_pcb { … struct tcp_pcb *firstpcb;/* first of the mpcbs */ struct tcp_pcb *nextm; /* next tcpxm pcb */ enum tx_mode txmode; /* unicasting or multicasting */ u8_t nrtxm; /* number of retransmits for multicast */ u32_t nrtxmtime; /* time since last retransmit */ u32_t mbytessent; /* total bytes sent via multicast */ u32_t mbytesrcvd; /* total bytes received via multicast */ u32_t ubytessent; /* total bytes sent via unicast */ u32_t ubytesrcvd; /* total bytes received via unicast */ struct segrcv msegrcv[128]; /* ismcast boolean for last n segs */ u8_t msegrcvper; /* % of last segs received via mcast */ u8_t msegrcvcnt; /* counter for segs recvd via mcast */ u8_t msegsntper; /* % of last segs delivered via mcast */ } ICCCN 2005

Linking PCBs *next points to the next TCP session nextm M1 next nextm U1 next nextm M2 next nextm M3 next nextm U2 *next points to the next TCP session *nextm points to the next TCP session that’s part of a particular TCP-XM connection Minimal timer and state machine changes ICCCN 2005

What happens to the cwin? Multiple receivers Multiple PCBs Multiple congestion windows Default to min(cwin) i.e. send at rate of slowest receiver Is this really so bad? Compare to time taken for n unicast transfers ICCCN 2005

LAN speed ICCCN 2005

LAN efficiency ICCCN 2005

WAN speed ICCCN 2005

WAN efficiency ICCCN 2005

Multiple TCP-XM flows ICCCN 2005

TCP-XM vs TCP flows ICCCN 2005

Protocol performance ICCCN 2005

Protocol efficiency ICCCN 2005

mcp & mcpd Multicast file transfer application using TCP-XM ‘mcpd &’ on servers ‘mcp file host1 host2… hostN’ on client http://www.cl.cam.ac.uk/~kj234/mcp/ Full source code online FreeBSD, Linux, Solaris ICCCN 2005

All done! Thanks for listening! Questions? ICCCN 2005