Windows Sockets 2 (Winsock) enables programmers to create advanced Internet, intranet, and other network-capable applications to transmit application data across the wire, independent of the network protocol being used. With Winsock, programmers are provided access to advanced Windows networking capabilities such as multicast and Quality of Service (QOS). Whistler features enable a Microsoft Windows application to make use of the next-generation Internet Protocol, IPv6. With Winsock, programmers can add IPv6 capability while retaining IPv4 functionality. Since Windows Sockets 2 is an interface and not a protocol, it is capable of discovering and utilizing the communications capabilities of any number of underlying transport protocols.