towards a flexible internet transport layer architecture
play

Towards a Flexible Internet Transport Layer Architecture Karl-Johan - PowerPoint PPT Presentation

Towards a Flexible Internet Transport Layer Architecture Karl-Johan Grinnemo, Tom Jones , Gorry Fairhurst, David Ros, Anna Brunstrom and Per Hurtig Karlstad University, Simula Research University of Aberdeen, Karlstad, Sweden Laboratory,


  1. Towards a Flexible Internet Transport Layer Architecture Karl-Johan Grinnemo, Tom Jones , Gorry Fairhurst, David Ros, Anna Brunstrom and Per Hurtig Karlstad University, Simula Research University of Aberdeen, Karlstad, Sweden Laboratory, Oslo, Aberdeen, U.K. Norway {karl-johan.grinnemo, {tom, gorry} dros@simula.no anna.brunstrom, @erg.abdn.ac.uk per.hurtig}@kau.se NEAT is funded by the European Union’s Horizon 2020 research and innovation programme under grant agreement no. 644334.

  2. The Network has Ossified Non NEAT-enabled stack NEAT-enabled stack Application Application NEAT-enabled stack Transport NEAT API Application IP Transport NEAT API IP Transport IP arbitrary Internet paths D NEAT-enabled stack B NEAT-aware paths with Application A in-network service support C NEAT API Transport Application IP Non NEAT-enabled Transport stack IP � 2

  3. The API has Ossified getaddrinfo(); // Look up host socket(); // Create a socket setsockopt(); // Configure the socket getsockopt(); // Check parameters connect(); // Start connection send(); recv(); � 3

  4. Fixing Interface Selection Server App Client App Transport Transport i0 i1 i2 Middlebox Path 1 Path 2 Mobile ISP Fixed ISP Path 3 � 4

  5. NEAT Application static struct neat_flow_operations ops; static struct neat_ctx *ctx = NULL ; static struct neat_flow *flow = NULL ; ctx = neat_init_ctx() flow = neat_new_flow(ctx) prop = NEAT_PROPERTY_UDP_REQUIRED | NEAT_PROPERTY_IPV6_REQUIRED; neat_set_property(ctx, flow, &prop) ops.on_writable = on_writable; ops.on_readable = on_readable; ops.on_error = on_error; neat_set_operations(ctx, flow, &ops) neat_open(ctx, flow, argv[argc - 2 ], argv[argc - 1 ]) neat_start_event_loop(ctx, NEAT_RUN_DEFAULT); 5

  6. NEAT Application static neat_error_code on_writable( struct neat_flow_operations *opCB) { neat_write(opCB->ctx, opCB->flow, buf) return NEAT_OK; } static neat_error_code on_readable( struct neat_flow_operations *opCB) { neat_read(opCB->ctx, opCB->flow, buf) return NEAT_OK; } https://github.com/NEAT-project/neat/blob/master/examples/client.c 6

  7. NEAT Application APP Class 1 NEAT User API Userspace Transport NEAT User Module SCTP/ Exp … UDP Mech USER KERNEL Traditional Socket TCP UDP SCTP IP � 7

  8. The NEAT System APP Class 0 APP Class 1 APP Class 2 APP Class 3 APP Class 4 Middleware NEAT APP Support API NEAT APP Support Module Policy NEAT User API Policy Interface Information DIAG & NEAT Framework Base STATS Transport Selection H and S Components Characteristic Components Components Information Userspace Transport Base NEAT SCTP/ SPUD/ Exp Policy … UDP UDP Mech USER Manager KERNEL Policy Interface KPI Traditional Socket NEAT Socket NEAT Kernel Module Experimental Experimental PCAP RAW IP TCP UDP SCTP SCTP/UDP TCP Minion Mechanisms Mechanisms IP � 8

  9. The NEAT User Module NEAT User API Diagnostics and NEAT NEAT Policy Interface NEAT Signalling Framework Transport and Handover Statistics Components Components Components NEAT NEAT Policy Selection Components Components USER KERNEL KPI Traditional Socket NEAT Socket � 9

  10. The NEAT User Module NEAT Flow Endpoint NEAT User API Network NEAT NEAT NEAT Signalling Framework Transport Service and Handover Components Components Components Signalling NEAT NEAT Policy Selection Components Components Transport Service Instantiation 5 Groups of components: ▶ NEAT Framework Component: API, Logic ▶ NEAT Selection Components: Choose candidates ▶ NEAT Policy Components: Policy and Characteristics ▶ NEAT Transport Components: Instantiate transports ▶ NEAT Handover and Signalling Components 10

  11. NEAT Example: Transfer Application in SDN Environment Data transfer NE AT NE AT 1 NE AT User AP I 9 NE AT P olicy Interface application S election Transport 2 4 3 8 NE AT NE AT P olicy F ramework Manager 11 5 7 6 10 PIB CIB Hos t A 14 13 Network C onnection controller/ 12 to host B Orchestrator � 11

  12. NEAT Example: Multimedia Application PEER A MIDDLEBOX MEDIA APP 7 2 CIB Policy Manager 5 NEAT PEER B 3 INTERNET 1 Framework 5 6 PIB NEAT 4 Selection 8 TURN SERVER � 12

  13. Resources https://neat-project.org https://github.com/neat-project � 13

  14. Thank you for listening Questions https://neat-project.org https://github.com/neat-project tom@erg.abdn.ac.uk NEAT is funded by the European Union’s Horizon 2020 research � 14 and innovation programme under grant agreement no. 644334.

Recommend


More recommend