Using C# for high performance network programming
Jonny Shipton CL, University of Cambridge
1
Low latency High throughput (10-100Gbps) NAT
network programming NAT Low latency High throughput (10-100Gbps) - - PowerPoint PPT Presentation
Using C# for high performance network programming NAT Low latency High throughput (10-100Gbps) Jonny Shipton CL, University of Cambridge 1 What is a NAT? Reality Alice www.google.co.uk Bob NAT www.bbc.co.uk Cathy 212.58.244.26:80 2
Jonny Shipton CL, University of Cambridge
1
Low latency High throughput (10-100Gbps) NAT
www.google.co.uk www.bbc.co.uk
Alice NAT Cathy Bob Reality
2
212.58.244.26:80
www.google.co.uk www.bbc.co.uk Alice Cathy Bob Client’s POV
3
www.google.co.uk www.bbc.co.uk Nathan Server’s POV
4
Verilog C# Performance ✓✓✓ ✓ Scalableto 100Gbps+ ✓✓✓ ✓ Skill base Small Large Comfy language features
✓✓✓
5
Methods Loops Exceptions LINQ Generics Concurrency OOP Memory Management Also iterators, properties, inheritance, libraries, dynamic variables, safe expressive type system, … Lambdas
6
7 5 10 15 20 25 30 35 40 C# Verilog simulation Hardware
Time (mins) to compile and run
Sequential/Synchronous Semantics Concurrent Semantics C# CIL Verilog Hardware F# Synthesis Compile Compile
Kiwi
8
9
10
Object wrapping raw data array Property Intuitive enum
… …
11
(Naas-project.org)
12
Google “Kiwi compiler”
http://www.cl.cam.ac.uk/~djg11/kiwi/ http://www.cl.cam.ac.uk/research/srg/han/hprls/orangepath/kiwic.html
NetFPGA-SUME
http://netfpga.org/site/#/systems/1netfpga-sume/details/