tcp-xm “multicast transport for grid computing” karl jeacle

19
TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle [email protected]

Upload: ross-hardy

Post on 18-Jan-2018

215 views

Category:

Documents


0 download

DESCRIPTION

Multi-Service Networks 2003 Reliability  Reliability of data transfer is essential  But multicast packets are typically UDP  Could adopt or invent a new reliable multicast protocol that allows reliable multicast (e.g. PGM)  But what about taking an existing reliable unicast protocol (e.g. TCP) and turning it into a reliable multicast protocol?

TRANSCRIPT

Page 1: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

TCP-XM“Multicast Transport for Grid Computing”

Karl [email protected]

Page 2: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

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

Page 3: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

Reliability Reliability of data transfer is essential But multicast packets are typically UDP Could adopt or invent a new reliable multicast

protocol that allows reliable multicast (e.g. PGM) But what about taking an existing reliable unicast

protocol (e.g. TCP) and turning it into a reliable multicast protocol?

Page 4: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

Multicast TCP? TCP provides a single reliable byte stream

between two end-points Modifying this to support multiple end-points may

seem a little unnatural But there is some precedent…

SCE – Talpade & AmmarTCP-XMO – Liang & CheritonM/TCP – Visoottiviseth et al

Page 5: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

Obvious problems ACK implosion

Sender swamped by ACKs from receivers!Yes, so 40 byte ACKs on 1500 byte data packets

means symmetric data traffic with ~40 receivers. But this beats 40x unicast!

End-point asymmetryUnicast TCP: pipe has two end-pointsMulticast TCP: pipe has n end-points

Sender needs application framing to demultiplex received data

Page 6: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

Implementation issues Protocol change == kernel change

Widespread test deployment difficult Two prong approach

Modify TCP protocol…But incorporate into a userspace library

Library will implement modified TCP over UDPPerformance is sacrificedBut deployment is no longer an issueLibrary can be used within Globus

Page 7: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP/IP/UDP/IP

SendingApplication

TCP

IP

UDP

IP

ReceivingApplication

TCP

IP

UDP

IP

native implementation

prototype deployment

Page 8: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP engine Where does initial TCP come from? Could use BSD or Linux

Extracting from kernel could be problematic More compact alternative

lwIP = Lightweight IPSmall but fully RFC-compliant TCP/IP stack

lwIP + multicast extensions = TCP-XM

Page 9: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP

SYN

SYNACK

ACK

FIN

FIN

ACK

ACK

ACK

DATASender Receiver

Page 10: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP-XM

Sender

Receiver 1

Receiver 2

Receiver 3

Page 11: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

API Sender API changes

New connection typeConnect to port on array of destinationsSingle 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, …);

lwIP uses “netconn” APIBut a socket API is also available

Page 12: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

PCB changes Every TCP connection has an associated

Protocol Control Block (PCB) TCP-XM adds:

struct tcp_pcb {…struct ip_addr group_ip; // group addrenum tx_mode txmode; //

uni/multicastu8t nrtxm; // # retransstruct tcp_pcb *nextm; // next “m” pcb

}

Page 13: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

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

Page 14: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP Group Option

New group option sent in all TCP-XM SYN packets Presence implies multicast capability Non TCP-XM hosts will ignore (no option in SYNACK) Sender will automatically revert to unicast

1 byte 1 byte 4 bytes

kind=50 len=6 Multicast Group Address

Page 15: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP-XM connection Connection

User connects to multiple unicast destinationsMultiple TCP PCBs created Independent 3-way handshakes take placeSSM or random ASM group address allocated

(if not specified in advance by user/application)Group address sent as TCP optionAbility to multicast depends on TCP option

Page 16: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP-XM transmission Data transfer

Data replicated/enqueued on all send queuesPCB variables dictate transmission modeData packets are multicastRetransmissions are unicastAuto switch to unicast after failed multicast

CloseConnections closed as per unicast TCP

Page 17: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

TCP-XM reception Receiver

No API changeNormal TCP listenAuto IGMP join on TCP-XM connectAccepts data on both unicast/multicast ports tcp_input() modified to check for valid data in packets

addressed to multicast groups

Page 18: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

Future To do:

Protocol workParallel unicast / multicast transmissionFallback / fall forwardMulticast look aheadMultiple groupsGlobus integration

ExperimentsLocal networkUK eScience centres Intel PlanetLab

Page 19: TCP-XM “Multicast Transport for Grid Computing” Karl Jeacle

Multi-Service Networks 2003

All done!

Thanks for listening!

Questions?