Hybrid Reliable Multicast with TCP-XM Jon Crowcroft Marinho P Barcellos, UNISINOS Stefano Pettini, ESA Karl Jeacle.

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

Chapter 17 Networking Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
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
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Transmission Control Protocol (TCP) Basics
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Socket Programming.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
CS335 Networking & Network Administration Tuesday, April 20, 2010.
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.
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.
Process-to-Process Delivery:
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)
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
IP and Errors IP Best Effort Datagrams can be: –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
LWIP TCP/IP Stack 김백규.
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.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
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)
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
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.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 2 Applications and Layered Architectures Sockets.
Extending Globus to support Multicast Transmission Karl Jeacle
Reliable high-speed Grid data delivery using IP Multicast Karl Jeacle & Jon Crowcroft
Institute of Technology Sligo - Dept of Computing Chapter 12 The Transport Layer.
A Multicast Transport Driver for Globus XIO Karl Jeacle
The Globus eXtensible Input/Output System (XIO): A protocol independent IO system for the Grid Bill Allcock, John Bresnahan, Raj Kettimuthu and Joe Link.
Transport Protocols.
TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
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).
1 Network Communications A Brief Introduction. 2 Network Communications.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
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.
Introduction to TCP/IP networking
Instructor Materials Chapter 9: Transport Layer
Process-to-Process Delivery, TCP and UDP protocols
Process-to-Process Delivery
PART 5 Transport Layer Computer Networks.
TCP Transport layer Er. Vikram Dhiman LPU.
Process-to-Process Delivery:
CS4470 Computer Networking Protocols
TCP-XM: Unicast-enabled Reliable Multicast
TRANSMISSION CONTROL PROTOCOL
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Layer 9/22/2019.
TCP Connection Management
Presentation transcript:

Hybrid Reliable Multicast with TCP-XM Jon Crowcroft Marinho P Barcellos, UNISINOS Stefano Pettini, ESA Karl Jeacle

CoNEXT 2005 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

CoNEXT 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?

CoNEXT 2005 Multicast TCP?  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

CoNEXT 2005 ACK implosion

CoNEXT 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

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

CoNEXT 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”

CoNEXT 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

CoNEXT 2005 TCP SYN SYNACK ACK FIN ACK DATA SenderReceiver

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

CoNEXT 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

CoNEXT 2005 TCP Group Option  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 1 byte 4 bytes kind=50len=6Multicast Group Address

CoNEXT 2005 TCP-XM transmission  Data transfer  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

CoNEXT 2005 TCP-XM protocol states

CoNEXT 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

CoNEXT 2005 Multicast feedback Option  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 1 byte kind=51len=3% Multicast Packets Received

CoNEXT 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)

CoNEXT 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, …);

CoNEXT 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 */ }

CoNEXT 2005 Linking PCBs  *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 next nextm M1 next nextm U1 next nextm M2 next nextm M3 next nextm U2

CoNEXT 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

CoNEXT 2005 LAN speed

CoNEXT 2005 LAN efficiency

CoNEXT 2005 WAN speed

CoNEXT 2005 WAN efficiency

CoNEXT 2005 Multiple TCP-XM flows

CoNEXT 2005 TCP-XM vs TCP flows

CoNEXT 2005 Protocol performance

CoNEXT 2005 Protocol efficiency

CoNEXT 2005 Grid multicast?  How can multicast be used in Grid environment?  TCP-XM is new multicast-capable protocol  Globus is de-facto Grid middleware  Would like TCP-XM support in Globus…

CoNEXT 2005 Globus XIO  eXtensible Input Output library  Allows “i/o plugins” to Globus  API  Single POSIX-like API / set of semantics  Simple open/close/read/write API  Driver abstraction  Hides protocol details / Allows for extensibility  Stack of 1 transport & n transform drivers  Drivers can be selected at runtime

CoNEXT 2005 XIO architecture

CoNEXT 2005 XIO implementation

CoNEXT 2005 XIO/XM driver specifics  Two important XIO data structures 1.Handle  Returned to user when XIO framework ready  Used for all open/close/read/write calls  lwIP netconn connection structure used 2.Attribute  Used to set XIO driver-specific parameters…  … and TCP-XM protocol-specific options  List of destination addresses

CoNEXT 2005 XIO code example // init stack globus_xio_stack_init(&stack, NULL); // load drivers onto stack globus_xio_driver_load("tcpxm", &txdriver); globus_xio_stack_push_driver(stack, txdriver); // init attributes globus_xio_attr_init(&attr); globus_xio_attr_cntl(attr, txdriver, GLOBUS_XIO_TCPXM_SET_REMOTE_HOSTS, hosts, numhosts); // create handle globus_xio_handle_create(&handle, stack); // send data globus_xio_open(&handle, NULL, target); globus_xio_write(handle, "hello\n", 6, 1, &nbytes, NULL); globus_xio_close(handle, NULL);

CoNEXT 2005 One-to-many issues  Stack assumes one-to-one connections  XIO user interface requires modification  Needs support for one-to-many protocols  Minimal user API changes  Framework changes more significant  GSI is one-to-one  Authentication with peer on connection setup  But cannot authenticate with n peers  Need some form of “GSI-M”

CoNEXT 2005 Driver availability  Multicast transport driver for Globus XIO  Requires Globus 3.2 or later  Source code online  Sample client  Sample server  Driver installation instructions 

CoNEXT 2005 mcp & mcpd  Multicast file transfer application using TCP-XM  ‘ mcpd & ’ on servers  ‘ mcp file host1 host2… hostN ’ on client   Full source code online  FreeBSD, Linux, Solaris

CoNEXT 2005 All done!  Thanks for listening!  Questions?