מבוא ל-Winsock כולל רקע וטכנולוגיה
Introduction Winsock Including Background Technology
הפוסט הזה מדבר בעיקר על ה-API של Windows Sockets, שניתן לקצר ל-WSA ו-Winsock. לאחר קריאת הפוסט הזה, אתה יכול לדעת את ההגדרה שלו, הרקע, הטכנולוגיה, כמו גם יישומים.
בעמוד זה :הגדרה לווינסוק
מה זה ווינסוק? בתחום המחשוב, Winsock הוא מפרט טכני המשמש כדי להגדיר כיצד תוכנת רשת Windows צריכה לגשת לשירותי רשת, במיוחד TCP/IP. זה נקרא Winsock כי זה התאמה של ממשק שקע Berkeley UNIX ל-Windows. שקע הוא הסכם מיוחד המשמש לחיבור והחלפת נתונים בין שני תהליכי תוכנית באותו מחשב או רשת.
עֵצָה: אם אתה רוצה לדעת עוד מידע על פרוטוקולי אינטרנט אחרים, אז מומלץ להיכנס לאתר MiniTool.
Winsock הוא הקיצור של Windows Sockets API (WSA). הוא מגדיר את הממשק הסטנדרטי בין יישומי לקוח TCP/IP של Windows (כגון לקוחות FTP או דפדפני אינטרנט) לבין ערימת פרוטוקולי TCP/IP הבסיסית.
פוסט קשור: השתמש בפקודה איפוס Netsh Winsock כדי לתקן בעיית רשת של Windows 10
רקע של ווינסוק
ה-API של Windows Sockets הוצע על ידי מרטין הול מ-JSB Software (לימים Stardust Technologies) בדיון BoF (ציפור נוצה) ברשת CompuServe BBS באוקטובר 1991.
הגרסה הראשונה של המפרט נכתבה על ידי מרטין הול, מארק טאופיק מ-Microdyne (לימים Sun Microsystems), ג'וף ארנולד מ-Sun Microsystems, והנרי סנדרס וג'יי אלארד ממיקרוסופט בעזרת רבים אחרים.
היו כמה דיונים כיצד לפתור בצורה הטובה ביותר זכויות יוצרים, קניין רוחני והגבלים עסקיים פוטנציאליים, ובחינת עבודה דרך ה-IETF או הקמת קרנות ללא מטרות רווח. בסופו של דבר, הוחלט שהמפרט צריך להיות מוגן בזכויות יוצרים רק על ידי חמישה יוצרים (לא קשורים).
כל המפתחים המשתתפים סירבו במשך זמן רב לקצר את השם לפשוט Winsock כי היה בלבול רב בין ה-API לקובץ ספריית ה-DLL (winsock.dll), מה שרק חשף את ממשק ה-WSA הכללי לאפליקציה שמעליו. נהוג להאמין שרק הבטחה שקובץ ה-DLL קיים במערכת יכולה לספק תמיכה מלאה בפרוטוקול TCP/IP.
הטכנולוגיה של ווינסוק
מפרט Windows Socket API מגדיר שני ממשקים: API המשמש מפתחי יישומים, ו-SPI המספק שיטה למפתחי תוכנת רשת להוסיף מודולי פרוטוקול חדשים למערכת. כל ממשק מייצג חוזה.
ה-API מבטיח שיישומים התואמים יכולים לפעול כרגיל עם יישום פרוטוקול תואם של כל ספק תוכנת רשת. חוזה SPI מבטיח שניתן להוסיף מודולי פרוטוקול תואמים ל-Windows כך שיוכלו לשמש על ידי יישומים התואמים API.
למרות שחוזים אלה היו חשובים כאשר Windows Sockets שוחרר לראשונה, יש להם משמעות אקדמית רק כעת מכיוון שסביבת הרשת דורשת תמיכה בריבוי פרוטוקולים. גרסה 2.0 של Windows Sockets API כוללת את הפונקציה של שימוש ב-IPX/SPX, אם כי פרוטוקול זה היה כמעט מיושן כאשר WSA 2.0 עזב את המפעל.
הקוד והעיצוב של Windows Sockets מבוססים על שקעי BSD, אך תכונות נוספות מסופקות כדי לאפשר ל-API להתאים למודל התכנות המקובל של Windows.
ממשק ה-API של Windows Sockets כמעט כיסה את כל התכונות של ה-API של שקעי BSD, אבל יש כמה מכשולים בלתי נמנעים, שנגרמו בעיקר מההבדלים הבסיסיים בין Windows ל-Unix (אם כי ההבדל בין שקעי Windows לשקעי BSD היה קטן מההבדל בין האחרון ו- STREAMS).
עם זאת, מטרת העיצוב של שקעי Windows הייתה להקל יחסית על מפתחים להעביר יישומים מבוססי שקעים מ-Unix ל-Windows. זה לא הספיק ליצור ממשקי API שהיו שימושיים רק עבור תוכניות Windows שנכתבו לאחרונה.
לכן, Windows Sockets הכילו אלמנטים רבים שנועדו להקל על העברה. לדוגמה, יישומי יוניקס יכולים להשתמש באותו משתנה שגיאה כדי לרשום שגיאות רשת ושגיאות שזוהו בפונקציות סטנדרטיות של ספריית C.
מכיוון שלא ניתן ליישם אותו ב-Windows, ה-Windows Sockets הציגו פונקציה מיוחדת, WSAGetLastError(), כדי לאחזר מידע שגיאה. מנגנון כזה היה מאוד מועיל, אבל העברת יישומים עדיין הייתה מסובכת ביותר.
יישומי TCP/IP פרימיטיביים רבים יושמו באמצעות תכונות מערכת ספציפיות ל-Unix (כגון מסופי פסאודו וקריאות מערכת מזלג), והיה בעייתי לשחזר את הפונקציה הזו ב-Windows. תוך זמן קצר יחסית, הפורטינג פינתה את מקומה לפיתוח של יישומי Windows ייעודיים.
הטמעות של Winsock
- מיקרוסופט לא סיפקה יישום של Winsock 1.0.
- גרסה 1.1 של Winsock סופקה בחבילת הרחבה (הנקראת Wolverine) עבור Windows for Workgroups (קוד בשם Snowball).
- Winsock גרסה 2.1 סופקה בחבילת הרחבה עבור Windows 95.
- הגרסה האחרונה של Winsock 2.x סופקה עם הגרסה החדשה של Windows או כחלק מ-service pack.
- ניתן להרחיב את Winsock 2 באמצעות מנגנון הנקרא Layered Service Provider (LSP).