מה זה Socket?

Socket (סוקט) הוא נקודת קצה לתקשורת בין שני תהליכים ברשת מחשבים.
במילים פשוטות – Socket הוא החיבור הלוגי שמאפשר לאפליקציה אחת לדבר עם אפליקציה אחרת דרך הרשת.

כאשר תוכנה רוצה לשלוח או לקבל מידע דרך הרשת, היא משתמשת ב-Socket.

דוגמאות לתוכנות שמשתמשות ב-Sockets:

  • דפדפני אינטרנט (Chrome, Firefox)
  • שרתי Web
  • תוכנות צ'אט
  • משחקי רשת
  • אפליקציות ענן

כל אחת מהן יוצרת Socket כדי לשלוח ולקבל נתונים.

למה צריך Socket?

ברשת יש הרבה מחשבים והרבה תוכנות שפועלות במקביל.
Socket מאפשר לזהות בדיוק מי מתקשר עם מי.

הוא עושה זאת באמצעות שילוב של שלושה דברים:

  • כתובת IP
  • מספר Port
  • פרוטוקול תקשורת (TCP או UDP)

השילוב הזה יוצר מזהה ייחודי לחיבור.

ממה מורכב Socket?

Socket מורכב בדרך כלל משלושה מרכיבים:

1. כתובת IP

מזהה את המחשב ברשת.

לדוגמה:

192.168.1.10

2. מספר Port

מזהה את השירות או האפליקציה במחשב.

לדוגמה:

80  → HTTP
443 → HTTPS
22  → SSH

3. פרוטוקול תקשורת

קובע איך הנתונים מועברים.

הנפוצים ביותר הם:

  • TCP
  • UDP

דוגמה ל-Socket

כאשר אתה נכנס לאתר אינטרנט:

https://example.com

מה שקורה מאחורי הקלעים:

  1. הדפדפן מבצע DNS כדי לקבל את כתובת ה-IP
  2. נוצר Socket בין הדפדפן לשרת
  3. החיבור מתבצע דרך פורט 443
  4. הנתונים מועברים באמצעות TCP

דוגמה למזהה Socket:

192.168.1.15:51524 → 93.184.216.34:443

המשמעות:

המחשב שלך משתמש בפורט זמני כדי לדבר עם שרת ה-Web בפורט 443.

סוגי Sockets

יש כמה סוגים של Sockets בהתאם לפרוטוקול.

TCP Socket

Socket מבוסס TCP מספק:

  • חיבור יציב
  • העברת נתונים בסדר הנכון
  • מנגנון בדיקת שגיאות

משמש עבור:

  • אתרי אינטרנט
  • SSH
  • FTP
  • אימייל

UDP Socket

Socket מבוסס UDP הוא:

  • מהיר יותר
  • ללא בדיקות תקינות
  • ללא הבטחת סדר נתונים

משמש עבור:

  • סטרימינג
  • משחקי רשת
  • VoIP
  • DNS

איך Socket עובד בפועל?

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

1. יצירת Socket

התוכנה יוצרת Socket במערכת ההפעלה.

2. Binding

ה-Socket נקשר לכתובת IP ופורט.

3. Listening

השרת מתחיל להאזין לחיבורים נכנסים.

4. Connection

לקוח יוצר חיבור לשרת.

5. Data Transfer

נתונים נשלחים ומתקבלים.

6. Close

החיבור נסגר.

דוגמה פשוטה ל-Socket

במערכות Linux ניתן לראות חיבורי Socket עם הפקודה:

הפקודות מציגות:

  • פורטים פתוחים
  • שירותים שמאזינים לחיבורים
  • חיבורים פעילים
ss -tuln
או
netstat -tuln

שימושים נפוצים של Sockets

Sockets נמצאים כמעט בכל שירות אינטרנט:

שירותפורט
HTTP80
HTTPS443
SSH22
DNS53
SMTP25

כל אחד מהם משתמש ב-Socket כדי לתקשר עם לקוחות.

לסיכום

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

בפועל, כל פעם שאתם:

  • גולשים באתר
  • שולחים אימייל
  • משחקים משחק רשת
  • משתמשים ב-SSH

נוצר Socket שמאפשר את התקשורת הזו.

לכן הבנה של Socket היא חלק חשוב בלמידת רשתות מחשבים, אבטחת מידע ו-DevOps.