Constantly throughout the day, we (and devices on our behalf) all use the Internet: TCP, UDP, HTTP, TLS, DHCP, DNS, and countless other protocols that define the Internet or improve how it runs. How do these foundational protocols get created? Let’s talk about standards. In particular, let’s talk about one of the organizations Windows Core Networking participates in: the Internet Engineering Task Force (IETF). The IETF is the primary standards developing organization (SDO) for protocols and practices that run and improve the Internet. And it does so in a very particular manner, as SDOs go:
- It espouses open development principles. All specifications (“Requests for Comments” or “RFCs”) and drafts in progress (“Internet-Drafts”) are openly available.
- It has no formal membership. All one needs to participate is an email address (participation is supposed to be by individuals, rather than companies, groups or governments).
- Decisions are based on “rough consensus and running code”. No formal procedures like Robert’s Rules of Order. No voting. Working group chairs gauge consensus via methods such as informal polls (e.g., hums, show of hands), as well as mailing list discussions.
The IETF has been around since 1986 and has published over eight thousand RFCs.
The IETF is evolving and adapting. It is increasingly adopting practices of the software development world. GitHub is often used to develop specifications. Furthermore, implementations of protocols and their interoperability is the goal of the largest growth area: the “Hackathon”.
Microsoft Core Networking Contributions
Microsoft as a whole has been a technical leader in IETF standards activities for decades. Past contributions have benefitted HTTP, IPv6, WebRTC, PPP, PPTP/L2TP, RADIUS & EAP, DNS, iCalendar, WEBDAV, IoT, security, IP mobility, routing and myriad other topics.
As for specific contributions by Microsoft Core Networking, let’s examine QUIC as an example. QUIC is a new transport protocol for the Internet. QUIC is designed to be more secure, performant and evolvable compared to TCP. HTTP/3 is the next version of the HTTP protocol which will exclusively use QUIC as the transport. Microsoft has been involved right from the beginning of the standardization effort. Like many other recent Internet-Drafts, the working group has adopted GitHub for all work including issue tracking.
Over the past year, Microsoft Core Networking has contributed several dozen pull requests and issues which have resulted in major changes to the set of QUIC and HTTP/3 Internet-Drafts, and lots of email and in-person discussions. Microsoft has also participated in every interop event held since the beginning and our implementation has been one of the most interoperable each time. As an example of a lasting contribution, Microsoft was an early and vocal advocate of using standard TLS 1.3 as the security mechanism in QUIC, which was the approach that then gained consensus. Microsoft also participated in many design teams which helped overcome issues that could have delayed the standardization efforts. The results of all these efforts have direct benefits to our products. Early testing shows QUIC outperforms TCP and we expect it to reduce last mile latency for online services.
Other contributions from Windows Core Networking (either directly as editors or working with the main authors and relevant working group) are on topics such as TCP congestion control (DCTCP, CUBIC, LEDBAT++, rLEDBAT), TCP optimizations (TCP Fast Open, RACK, HyStart++), IPv6 (including IPv6 for IoT), WebSockets, and HTTP/2.
Additionally, we have been active otherwise:
- As members of the Internet Architecture Board
- And by chairing or co-chairing the following IETF Working Groups: 6lo (IPv6 over Networks of Resource-constrained Nodes), HyBi (websockets), 16ng (WiMax), CSI (IPv6 secure neighbor discovery), behave (Behavior Engineering for Hindrance Avoidance), pcp (Port Control Protocol) and mipshop (Mobility for IP: Performance, Signaling and Handoff Optimization).
In summary, Microsoft recognizes that in an increasingly interconnected computing landscape, enabling interoperability between products from different vendors has become more important than ever. Support for standards is a key part of Microsoft’s Interoperability Principles for the company, and support for open standards in particular helps reinforce to the industry that “Microsoft Runs on Trust”.