שקע (תקשורת מחשבים)

בתקשורת נתונים, שקע (באנגלית: Network socket) הוא נקודת קצה (endpoint) עבור זרם נתונים בתקשורת בין תהליכים על גבי רשת מחשבים. כיום רוב התקשורת בין מחשבים מבוססת על ה-Internet Protocol; לפיכך רוב השקעים הם מסוג Internet socket.

socket API הוא ממשק תכנות יישומים המסופק בדרך כלל על ידי מערכת ההפעלה, ומאפשר ליישומי תוכנה לשלוט ולהשתמש בשקעים. ממשקי תכנות יישומים ל-Internet socket בדרך כלל מבוססים על התקן של Berkley sockets.

כתובת שקע (socket address) היא שילוב של כתובת IP ומספר פורט. ניתן להקביל זאת לשיחת טלפון שבה כל קצה מזוהה על ידי מספר טלפון וקידומת מסוימת. בהתבסס על כתובת זו, internet sockets מספקים חבילות נתונים (data packets) נכנסות אל התהליך או התהליכון המתאים של יישום.

סקירה 

internet socket מאופיין על ידי צירוף ייחודי של הבאים:
 כתובת שקע מקומית (local socket address): כתובת IP מקומית ומספר פורט.
 כתובת שקע מרוחקת (remote socket address): קיימת רק עבור שקעים מבוססי TCP. כתובת זו נדרשת מאחר ששרת TCP יכול לשרת כמה לקוחות במקביל. השרת יוצר שקע אחד עבור כל לקוח, ושקעים אלה חולקים את אותה כתובת שקע מקומית.
 פרוטוקול: אחד מהפרוטוקולים של שכבת התעבורה, כדוגמת UDP ,TCP או אחר.

שקע ספציפי מזוהה על ידי מערכת ההפעלה והתוכנית שיצרה אותו, באמצעות מספר שלם ייחודי הנקרא socket identifier או socket number. מערכת ההפעלה מעבירה את חבילות ה-IP הנכנסות אל התוכנית המתאימה באמצעות חילוץ המידע אודות הכתובת של השקע מתוך הכותרות (headers) של פרוטוקול ה-IP ושל פרוטוקול התעבורה, ומסירה את הכותרות מהנתונים של שכבת היישום.

במסמך ה-Request for Comments, Internet Standards של ארגון ה-IETF, כמו גם בספרי לימוד רבים, המושג socket מתייחס לישות המזוהה על ידי מספר שקע (socket number) ייחודי. בספרי לימוד אחרים, המושג socket מתייחס לכתובת שקע מקומית, כלומר "השילוב של כתובת IP ומספר פורט".

ההגדרה המקורית של socket מתוך  משנת 1971, בהתייחס ל-ARPANET:  עם זאת, כיום התקשורת בין שקעים היא דו-כיוונית.

במערכות הפעלה דמויות יוניקס ובמערכות הפעלה Microsoft Windows, ניתן להשתמש בכלי שורת הפקודה netstat על מנת לקבל את רשימת כל השקעים המבוססים (established sockets) ומידע נלווה נוסף.

ראו גם 
 תקשורת מחשבים - מונחים
 מודל ה-OSI
 TCP/IP
 Session

קישורים חיצוניים 
 All About Sockets - מתוך המדריך הרשמי לשפת Java באתר של Oracle.

הערות שוליים

תקשורת מחשבים

ar:Socket
fr:Sockets du domaine Internet