Direct-architectuur van Windows Sockets
Windows Sockets Direct biedt een snelle, krachtige verbinding tussen twee netwerkknooppunten op hetzelfde system area network (SAN) door een SAN-transportinterface rechtstreeks toe te passen in een toepassingsproces. Met deze SAN-verbinding kunnen processen in de gebruikersmodus directe invoer en uitvoer (I/O) uitvoeren zonder de grenzen van de gebruikerskernel te kopiëren.
De afbeelding van de SAN-architectuur in Inleiding tot System Area Networks laat zien hoe Windows Sockets Direct een SAN-verbinding biedt. De gearceerde gebieden in de afbeelding vertegenwoordigen onderdelen die een SAN NIC-leverancier moet leveren om het gebruik van een SAN mogelijk te maken.
In de volgende alinea's worden de onderdelen beschreven die in de afbeelding worden weergegeven.
Geleverde onderdelen voor SAN-netwerkinterfacecontrollers
Elke SAN-netwerkinterfacecontroller (NIC) gebruikt de volgende softwareonderdelen om ondersteuning te bieden voor NDIS en voor Windows Sockets Direct.
Een NDIS-minipoortstuurprogramma voor een SAN NIC biedt ondersteuning voor NDIS, zodat deze kan communiceren met Windows Sockets-toepassingen met behulp van een standaard TCP/IP-protocolstuurprogramma. Dit NDIS miniportstuurprogramma ondersteunt standaardmediatypen zoals Ethernet of ATM.
De DLL van de SAN-serviceprovider en het bijbehorende proxystuurprogramma bieden ondersteuning voor Windows Sockets Direct. Deze Windows Sockets Direct-onderdelen exporteren de systeemeigen transportsemantiek van een interconnect voor het SAN naar Windows Sockets-toepassingen. Deze semantiek kan bijvoorbeeld bestaan uit adresfamilies en berichtstand.
De SAN NIC-leverancier levert het NDIS-minipoortstuurprogramma en Windows Sockets Direct-onderdelen. De SAN NIC-leverancier kan ook een SAN-transportstuurprogramma leveren als de transportservice niet volledig in de NIC is geïmplementeerd. Het proxystuurprogramma voor een DLL van een SAN-serviceprovider en mogelijk een SAN-transportstuurprogramma zijn opgenomen in het NDIS-minipoortstuurprogramma of in afzonderlijke stuurprogramma's, naar keuze van de SAN NIC-leverancier.
Windows Sockets Switch-onderdelen
De Windows Sockets-switch is een onderdeel van het besturingssysteem van Windows Sockets Direct. De switch is een Windows Sockets-serviceprovider die gelaagd is boven op TCP/IP- en SAN-serviceproviders. Het Windows-besturingssysteem voegt de schakeloptie tussen de Windows Sockets-interface en de andere serviceproviders in. Ter duidelijkheid wordt de schakeloptie in de afbeelding weergegeven als een afzonderlijke entiteit. De switch en de basis-TCP/IP-serviceprovider worden echter daadwerkelijk geïmplementeerd in dezelfde DLL. De schakeloptie voert de volgende acties uit:
Hiermee ziet de geïnstalleerde verzameling SAN-serviceproviders en de standaard TCP/IP-provider eruit als één provider voor Windows Sockets-toepassingen.
Kiest, per verbinding, of u een systeemeigen SAN-serviceprovider of de standaard TCP/IP-provider wilt gebruiken om een toepassingssocket te gebruiken.
Emuleert TCP/IP-semantiek bij gebruik van een systeemeigen SAN-serviceprovider.
De bovenste en onderste interfaces van de switch voldoen aan de Windows Sockets Service Provider Interface (SPI). De onderste interface van de switch maakt gebruik van extensies voor de Windows Sockets SPI om te profiteren van de mogelijkheden van een SAN. Deze extensies worden beschreven in Windows Sockets SPI Extensions for SANs en volledig gedocumenteerd in de Windows Sockets Direct Reference.
De switch beheert toepassingstoegang tot alle netwerken. Een computer kan meerdere SAN-NIC's van meerdere leveranciers bevatten, evenals een of meer LAN- en WAN-NIC's, zoals een LAN-NIC die ondersteuning biedt voor een Ethernet-netwerk. De switch beheert toepassingstoegang tot alle netwerken die aan deze NIC's zijn gekoppeld, transparant.
TCP/IP-functies
Net als bij elke NIC die beschikbaar is via NDIS, wijst het TCP/IP-protocolstuurprogramma een of meer IP-adressen toe aan elke SAN NIC. De Windows Sockets-switch en SAN-serviceproviders bepalen deze toewijzingen, zoals beschreven in ontvangen en vertalen van NIC-adressen. De switch gebruikt deze IP-adresgegevens om te bepalen welke SAN-serviceprovider moet worden gebruikt voor een bepaalde socketverbinding. SAN-serviceproviders gebruiken deze IP-adresgegevens om IP-adressen om te zetten in systeemeigen SAN-adressen.
De switch werkt nauw samen met de standaard-TCP/IP-serviceprovider om functionaliteit te verkrijgen die SAN-serviceproviders niet ondersteunen. De TCP/IP-serviceprovider ondersteunt luisteren naar verbindingen op meerdere providers en synchronisatie tussen meerdere providers.
De TCP/IP-serviceprovider verwerkt ook alle communicatie via standaard LAN- en WAN-interconnects, onbewerkte IP-sockets, alle UDP-sockets en verbindingen tussen subnetten.