BCL/Networking team - What to expect?

In the past people asked me which parts of networking are useful to know:

Networking team

Our team has currently 7 developers (6 located in Prague, Czech Republic and 1 located in Redmond, USA). Our architect is located on Boston area, USA. Manager of the team (Karel Zikmund) is based in Brno, Czech Republic.

We own .NET client-side networking stack (HttpClient - HTTP 1.1/2/3) and low-level networking primitives (Sockets, SSL/TLS support, QUIC protocol, Uri, WebSockets, etc.) in dotnet/runtime repo -- see namespaces System.Net, System.Net.Http, System.Net.Quic, System.Net.Security and System.Net.Sockets. We work closely with server-side .NET networking team ASP.NET/Kestrel. We also collaborate with ASP.NET/Kestrel team on reverse-proxy YARP.

Our top focus in last year was / is:

Here are our Networking team members:

How to apply

Reach out directly to the team manager via email or LinkedIn.

Networking - Direction and history of the space

Some useful background and direction of Networking space can be found also on slides from my older talk .NET Core Networking stack and Performance (at .NET Core Summer event in Brno, CZ on 2019/7/9) - the talk was in Czech, but the slides are in English, so useful to everyone: slides.

If you want to hear story about the evolution of the Networking stack, check out older version of the talk in English: .NET Core Networking stack and Performance (at DotNext Moscow on 2017/11) - video (55 min) and slides. Note that plans and perf results are old and obsolete in this talk, but the history didn't change :).

Networking - Resources I found useful

I decided to publish my studying notes from 2018/2, i.e. from the time I became manager of all .NET Networking space (incl. .NET Core on Windows and .NET Framework servicing) and therefore I had to start understanding the space more.

The notes are NOT must-read for interviews! You will NOT be asked these questions at interview (or at least the knolwedge will NOT be expected to be known prior to starting on the job). Even if you demonstrate knowledge at interview of this background, it will NOT be the decision making point if you get the job or not. The notes are more for demonstrating what kind of knowledge you will be expected to gain in first 6-12 months on the job as dev on BCL/Networking team.

The resources are sorted by order of usefulness - the 3rd book is already very niche and you can skip it. However, some basic info from entries #4 and #5 can give you idea about our latest investments into QUIC, and HTTP/3.

1. Book: HTTP: The Definitive Guide

https://www.safaribooksonline.com/library/view/http-the-definitive/1565925092/

Overview:

  1. Start line
    • Request message: <method> <request-URL> <version> … e.g.: TRACE /a.txt HTTP/1.1
    • Response message: <version> <status> <reason-phrase> … e.g.: HTTP/1.1 200 OK
  2. Headers - name: value (optional whitespace after ':'), new line (CRLF / LF by bad clients) at the end
    • Historically final CRLF might be missed if empty body
  3. Body

Headers:

Client identification and Cookies - https://www.safaribooksonline.com/library/view/http-the-definitive/1565925092/ch11.html

Secure HTTP - https://www.safaribooksonline.com/library/view/http-the-definitive/1565925092/ch14.html

Entities and Encoding - https://www.safaribooksonline.com/library/view/http-the-definitive/1565925092/ch15.html

Later:

2. Book: Learning HTTP/2

https://www.safaribooksonline.com/library/view/learning-http2/9781491962435/

Note: Useful, because in .NET Core 3.0 we started implementing HTTP/2 for gRPC. We expect in .NET 5 to finish it off with nearly-full support.

Foreword

3. Book: TCP/IP Illustrated, Volume 1: The Protocols

https://www.safaribooksonline.com/library/view/tcpip-illustrated-volume/9780132808200/

Note: This book goes way too deep. I enjoyed couple of chapters, but I don't think it is useful to learn more than is in my notes. I didn't finish reading the other boring parts of the book.

Preface

4. QUIC protocol

https://www.chromium.org/quic Go implementation

QUIC at 10,000 feet

QUIC Wire Layout specification

5. Other useful technologies

Note: I didn't read them all, but I keep links for the time I need them.