סקירה כללית של תכנות Socket עבור רשת מחשבים

שקע הוא אחד הטכנולוגיות הבסיסיות ביותר של תכנות רשת מחשבים. שקעים מאפשרים ליישומי תוכנה ברשת לתקשר באמצעות מנגנונים סטנדרטיים המובנים בחומרת הרשת ומערכות ההפעלה.

למרות שזה אולי נשמע כמו רק עוד תכונה של פיתוח תוכנה לאינטרנט, הטכנולוגיה socket קיים הרבה לפני האינטרנט. וגם, רבים מהיישומים הפופולריים ביותר של היום ברשת התוכנה להסתמך על שקעים.

מה שקעים יכול לעשות עבור הרשת שלך

שקע מייצג חיבור יחיד בין שתי חתיכות תוכנה בדיוק (חיבור הנקרא נקודה לנקודה ). יותר משני חלקים של תוכנה יכולים לתקשר עם הלקוח / שרת או מערכות מבוזרות באמצעות שקעים מרובים. לדוגמה, דפדפני אינטרנט רבים יכולים לתקשר בו זמנית עם שרת אינטרנט יחיד באמצעות קבוצת שקעים שבוצעו בשרת.

תוכנת Socket מבוססת בדרך כלל על שני מחשבים נפרדים ברשת, אך ניתן להשתמש בהם גם בתקשורת מקומית ( interprocess ) במחשב יחיד. שקעים הם דו כיווניים , כלומר כל צד של החיבור מסוגל גם לשלוח ולקבל נתונים. לפעמים יישום אחד כי יוזם תקשורת נקרא "הלקוח" והשני יישום "שרת", אבל זה המינוח מוביל לבלבול עמיתים כדי להציץ ברשת ויש להימנע בדרך כלל.

Socket APIs וספריות

מספר ספריות המפעילות ממשקי תכנות יישומים סטנדרטיים (API) קיימות באינטרנט. החבילה המיינסטרים הראשונה - ספריית ברקלי סוקט עדיין בשימוש נרחב במערכות UNIX. ממשק API נפוץ נוסף הוא ספריית Windows Sockets (WinSock) עבור מערכות ההפעלה של Microsoft. יחסית לטכנולוגיות מחשב אחרות, ממשקי ה- API של Socket הם בשלים למדי: WinSock נמצא בשימוש מאז 1993 ובשקעי ברקלי מאז 1982.

ה- API של ה- Socket הוא קטן יחסית ופשוט. רבים מהפונקציות דומות לאלו המשמשים בקובצי קלט / פלט של קבצים כגון read () , write () ו Close () . הקריאה בפועל לתפקוד תלויה בשפת התכנות ובספריית ה- socket שנבחרה.

סוגי ממשק Socket

ממשקי Socket ניתן לחלק לשלוש קטגוריות:

  • שקעי זרם , מהסוג הנפוץ ביותר, מחייבים את שני הצדדים לתקשר ליצור חיבור שקע, ולאחר מכן כל הנתונים עברו דרך חיבור זה יובטח להגיע באותו סדר שבו הוא נשלח - מה שנקרא תכנות מונחה קשר דֶגֶם.
  • שקעי Datagram מציעים סמנטיקה "חסרת חיבור". עם חיבורי נתונים, החיבורים הם מרומזים ולא מפורשים כמו עם זרמים. כל צד פשוט שולח נתונים לפי הצורך ומחכה שהאחר יגיב; הודעות יכול ללכת לאיבוד שידור או קיבל מתוך הסדר, אבל זה באחריות היישום ולא את שקעים להתמודד עם בעיות אלה. יישום שקעי Datagram יכול לתת יישומים מסוימים להגביר את הביצועים וגמישות נוספת בהשוואה באמצעות שקעים זרם, להצדיק את השימוש שלהם במצבים מסוימים.
  • הסוג השלישי של שקע - שקע גלם - עוקפת את התמיכה המובנית בספריה עבור פרוטוקולים סטנדרטיים כמו TCP ו- UDP . שקעי גלם משמשים לפיתוח פרוטוקולים ברמה נמוכה.

תמיכה Socket בפרוטוקולי רשת

שקעי רשת מודרניים משמשים בדרך כלל בשילוב עם פרוטוקולי האינטרנט - IP, TCP ו- UDP. ספריות המיישמות שקעים עבור פרוטוקול אינטרנט משתמשים ב- TCP עבור זרמים, UDP עבור Datagrams ו- IP עצמו עבור שקעים גולמיים.

כדי לתקשר דרך האינטרנט, ספריות ה- socket של ה- IP משתמשות בכתובת ה- IP כדי לזהות מחשבים ספציפיים. חלקים רבים מהאינטרנט עובדים עם שירותי מתן שמות, כך שמשתמשי המשתמשים והמתכננים יכולים לעבוד עם מחשבים לפי שם ( לדוגמה , "thiscomputer.wireless.about.com") במקום כתובת ( לדוגמה , 208.185.127.40). שקעי זרם ו - Datagram גם משתמשים במספרי יציאות IP כדי להבדיל בין יישומים מרובים זה מזה. לדוגמה, דפדפני אינטרנט באינטרנט יודעים להשתמש ביציאה 80 כברירת מחדל לתקשורת Socket עם שרתי אינטרנט.