The Windows 2000 network architecture provides a flexible infrastructure for networking APIs, network protocol drivers, and network adapter drivers. The Windows 2000 networking architecture takes advantage of I/O layering to give networking support the extensibility to evolve as computer networking evolves. When new protocols appear, developers can write a TDI transport to implement the protocol on Windows 2000. Similarly, new APIs can interface to existing Windows 2000 protocol drivers. Finally, the range of networking APIs implemented on Windows 2000 affords network application developers a range of possible implementations, each with different programming models and protocol support.