Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Multicast Transport Driver for Globus XIO Karl Jeacle

Similar presentations


Presentation on theme: "A Multicast Transport Driver for Globus XIO Karl Jeacle"— Presentation transcript:

1 A Multicast Transport Driver for Globus XIO Karl Jeacle karl.jeacle@cl.cam.ac.uk

2 ETNGRID 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

3 ETNGRID 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?

4 ETNGRID 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

5 ETNGRID 2005 ACK implosion

6 ETNGRID 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

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

8 ETNGRID 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”

9 ETNGRID 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

10 ETNGRID 2005 TCP SYN SYNACK ACK FIN ACK DATA SenderReceiver

11 ETNGRID 2005 TCP-XM Sender Receiver 1 Receiver 2 Receiver 3

12 ETNGRID 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

13 ETNGRID 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

14 ETNGRID 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

15 ETNGRID 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)

16 ETNGRID 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…

17 ETNGRID 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

18 ETNGRID 2005 XIO architecture

19 ETNGRID 2005 XIO implementation

20 ETNGRID 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

21 ETNGRID 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);

22 ETNGRID 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”

23 ETNGRID 2005 LAN speed

24 ETNGRID 2005 LAN efficiency

25 ETNGRID 2005 WAN speed

26 ETNGRID 2005 WAN efficiency

27 ETNGRID 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  http://www.cl.cam.ac.uk/~kj234/xio/

28 ETNGRID 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

29 ETNGRID 2005 All done!  Thanks for listening!  Questions?


Download ppt "A Multicast Transport Driver for Globus XIO Karl Jeacle"

Similar presentations


Ads by Google