Protokoły warstwowe i łańcuchy protokołów
Windows Sockets 2 zawiera koncepcję protokołu warstwowego: taki, który implementuje tylko funkcje komunikacji wyższego poziomu, opierając się na bazowym stosie transportu na potrzeby rzeczywistej wymiany danych z zdalnym punktem końcowym. Przykładem tego typu protokołu warstwowego jest warstwa zabezpieczeń, która dodaje protokół do procesu połączenia gniazda w celu przeprowadzenia uwierzytelniania i ustanowienia schematu szyfrowania. Taki protokół zabezpieczeń zazwyczaj wymaga usług bazowego i niezawodnego protokołu transportowego, takiego jak TCP lub SPX.
Termin protokół podstawowy odnosi się do protokołu, takiego jak TCP lub SPX, który jest w pełni zdolny do komunikacji danych z zdalnym punktem końcowym. Protokół warstwowy jest protokołem, który nie może być autonomiczny, podczas gdy łańcuch protokołów jest jednym lub więcej protokołów warstwowych, które są połączone i zakotwiczone przez protokół podstawowy.
Możesz utworzyć łańcuch protokołów, jeśli projektujesz protokoły warstwowe do obsługi spi Windows Sockets 2 zarówno u góry, jak i dolnej krawędzi. Specjalna struktura WSAPROTOCOL_INFO odnosi się do łańcucha protokołów jako całości i opisuje jawną kolejność łączenia protokołów warstwowych. Przedstawiono to na poniższej ilustracji. Ponieważ tylko podstawowe protokoły i łańcuchy protokołów są bezpośrednio używane przez aplikacje, są one jedynymi wymienionymi podczas wyliczania zainstalowanych protokołów za pomocą funkcji WSAEnumProtocols.