Εισαγωγή στο Winsock συμπεριλαμβανομένου του φόντου και της τεχνολογίας
Introduction Winsock Including Background Technology
Αυτή η ανάρτηση μιλά κυρίως για το Windows Sockets API, το οποίο μπορεί να συντομευτεί σε WSA και Winsock. Αφού διαβάσετε αυτήν την ανάρτηση, μπορείτε να μάθετε τον ορισμό, το υπόβαθρο, την τεχνολογία, καθώς και τις υλοποιήσεις της.
Σε αυτήν την σελίδα :Ορισμός για το Winsock
Τι είναι το Winsock; Στους υπολογιστές, το Winsock είναι μια τεχνική προδιαγραφή που χρησιμοποιείται για τον καθορισμό του τρόπου με τον οποίο το λογισμικό δικτύου των Windows θα πρέπει να έχει πρόσβαση σε υπηρεσίες δικτύου, ειδικά στο TCP/IP. Ονομάζεται Winsock επειδή είναι μια προσαρμογή της διεπαφής υποδοχής Berkeley UNIX στα Windows. Μια υποδοχή είναι μια ειδική συμφωνία που χρησιμοποιείται για τη σύνδεση και την ανταλλαγή δεδομένων μεταξύ δύο διεργασιών προγράμματος στον ίδιο υπολογιστή ή δίκτυο.
Υπόδειξη: Εάν θέλετε να μάθετε περισσότερες πληροφορίες σχετικά με άλλα πρωτόκολλα Διαδικτύου, τότε συνιστάται να μεταβείτε στον ιστότοπο του MiniTool.
Το Winsock είναι η συντομογραφία του Windows Sockets API (WSA). Καθορίζει την τυπική διεπαφή μεταξύ των εφαρμογών πελάτη TCP/IP των Windows (όπως οι πελάτες FTP ή τα προγράμματα περιήγησης στο Web) και η βασική στοίβα πρωτοκόλλου TCP/IP.
Σχετική ανάρτηση: Χρησιμοποιήστε την εντολή Netsh Winsock Reset για να διορθώσετε το πρόβλημα δικτύου των Windows 10
Φόντο του Winsock
Το Windows Sockets API προτάθηκε από τον Martin Hall της JSB Software (αργότερα Stardust Technologies) στη συζήτηση BoF (Bird of a Feather) στο δίκτυο CompuServe BBS τον Οκτώβριο του 1991.
Η πρώτη έκδοση της προδιαγραφής γράφτηκε από τον Martin Hall, τον Mark Towfiq της Microdyne (αργότερα Sun Microsystems), τον Geoff Arnold της Sun Microsystems και τους Henry Sanders και J Allard της Microsoft με τη βοήθεια πολλών άλλων.
Έγιναν ορισμένες συζητήσεις σχετικά με τον καλύτερο τρόπο επίλυσης πνευματικών δικαιωμάτων, πνευματικής ιδιοκτησίας και πιθανών αντιμονοπωλιακών ζητημάτων, καθώς και εξέταση της εργασίας μέσω του IETF ή της ίδρυσης μη κερδοσκοπικών ιδρυμάτων. Τελικά, αποφασίστηκε ότι η προδιαγραφή θα πρέπει να προστατεύεται μόνο από πέντε (μη συνδεδεμένους) συγγραφείς.
Όλοι οι συμμετέχοντες προγραμματιστές αρνήθηκαν να συντομεύσουν το όνομα σε απλά Winsock για μεγάλο χρονικό διάστημα, επειδή υπήρχε μεγάλη σύγχυση μεταξύ του API και του αρχείου βιβλιοθήκης DLL (winsock.dll), το οποίο εξέθεσε μόνο τη γενική διεπαφή WSA στην εφαρμογή πάνω από αυτό. Γενικά πιστεύεται ότι μόνο η διασφάλιση ότι το αρχείο DLL υπάρχει στο σύστημα μπορεί να παρέχει πλήρη υποστήριξη πρωτοκόλλου TCP/IP.
Τεχνολογία Winsock
Η προδιαγραφή Windows Socket API ορίζει δύο διεπαφές: API που χρησιμοποιείται από προγραμματιστές εφαρμογών και SPI που παρέχει μια μέθοδο για τους προγραμματιστές λογισμικού δικτύου να προσθέτουν νέες μονάδες πρωτοκόλλου στο σύστημα. Κάθε διεπαφή αντιπροσωπεύει μια σύμβαση.
Το API εγγυάται ότι οι εφαρμογές που συμμορφώνονται μπορούν να εκτελούνται κανονικά με τη συμμορφούμενη εφαρμογή πρωτοκόλλου οποιουδήποτε προμηθευτή λογισμικού δικτύου. Η σύμβαση SPI εγγυάται ότι μπορούν να προστεθούν στα Windows συμβατές ενότητες πρωτοκόλλου ώστε να μπορούν να χρησιμοποιηθούν από εφαρμογές συμβατές με API.
Αν και αυτές οι συμβάσεις ήταν σημαντικές όταν κυκλοφόρησαν για πρώτη φορά τα Windows Sockets, έχουν μόνο ακαδημαϊκή σημασία τώρα επειδή το περιβάλλον δικτύου απαιτεί υποστήριξη πολλαπλών πρωτοκόλλων. Το Windows Sockets API έκδοση 2.0 περιλαμβάνει τη λειτουργία χρήσης IPX/SPX, αν και αυτό το πρωτόκολλο ήταν σχεδόν παρωχημένο όταν το WSA 2.0 έφυγε από το εργοστάσιο.
Ο κώδικας και η σχεδίαση των υποδοχών Windows βασίζονται σε υποδοχές BSD, αλλά παρέχονται πρόσθετες λειτουργίες που επιτρέπουν στο API να συμμορφώνεται με το συμβατικό μοντέλο προγραμματισμού των Windows.
Το Windows Sockets API κάλυπτε σχεδόν όλες τις δυνατότητες του API υποδοχών BSD, αλλά υπάρχουν ορισμένα αναπόφευκτα εμπόδια, τα οποία προκλήθηκαν κυρίως από τις θεμελιώδεις διαφορές μεταξύ των Windows και του Unix (αν και η διαφορά μεταξύ των υποδοχών Windows και των υποδοχών BSD ήταν μικρότερη από τη διαφορά μεταξύ το τελευταίο και τα ΡΕΥΜΑΤΑ).
Ωστόσο, ο σχεδιαστικός στόχος των υποδοχών Windows ήταν να διευκολύνουν τους προγραμματιστές να μεταφέρουν εφαρμογές που βασίζονται σε socket από το Unix στα Windows. Δεν αρκούσε η δημιουργία API που ήταν χρήσιμα μόνο για νέα προγράμματα των Windows.
Επομένως, οι υποδοχές των Windows περιείχαν πολλά στοιχεία σχεδιασμένα για να διευκολύνουν τη μεταφορά. Για παράδειγμα, οι εφαρμογές Unix θα μπορούσαν να χρησιμοποιούν την ίδια μεταβλητή errno για την καταγραφή σφαλμάτων δικτύου και σφαλμάτων που εντοπίζονται στις τυπικές λειτουργίες της βιβλιοθήκης C.
Δεδομένου ότι δεν μπορεί να εφαρμοστεί στα Windows, οι υποδοχές των Windows εισήγαγαν μια ειδική λειτουργία, την WSAGetLastError(), για την ανάκτηση πληροφοριών σφάλματος. Ένας τέτοιος μηχανισμός ήταν πολύ χρήσιμος, αλλά η μεταφορά εφαρμογών ήταν ακόμα εξαιρετικά περίπλοκη.
Πολλές πρωτόγονες εφαρμογές TCP/IP έχουν υλοποιηθεί χρησιμοποιώντας χαρακτηριστικά συστήματος ειδικά για το Unix (όπως ψευδοτερματικά και κλήσεις συστήματος διακλάδωσης) και ήταν προβληματική η αναπαραγωγή αυτής της λειτουργίας στα Windows. Σε σχετικά σύντομο χρονικό διάστημα, η μεταφορά έδωσε τη θέση της στην ανάπτυξη αποκλειστικών εφαρμογών Windows.
Υλοποιήσεις του Winsock
- Η Microsoft δεν παρείχε εφαρμογή του Winsock 1.0.
- Η έκδοση 1.1 του Winsock παρέχεται σε ένα πρόσθετο πακέτο (που ονομάζεται Wolverine) για Windows for Workgroups (κωδικός με το όνομα Snowball).
- Η έκδοση 2.1 του Winsock παρέχεται σε ένα πρόσθετο πακέτο για τα Windows 95.
- Η πιο πρόσφατη έκδοση του Winsock 2.x παρέχεται με τη νέα έκδοση των Windows ή ως μέρος ενός service pack.
- Το Winsock 2 μπορεί να επεκταθεί μέσω ενός μηχανισμού που ονομάζεται Layered Service Provider (LSP).