Download presentation
Presentation is loading. Please wait.
1
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח פרדיגמת שרת לקוח מושג ה socket מבנה שרת - לקוח קצת יותר על רשתות
2
מערכות הפעלה ( אביב 2009) חגית עטיה ©2 רשת תקשורת Internet שרת
3
מערכות הפעלה ( אביב 2009) חגית עטיה ©3 לקוחות ושרתים לקוח רץ על מחשב קצה מבקש שרות Web browser שרת רץ על מחשב קצה מספק שרות Web server GET /index.html “Site under construction”
4
מערכות הפעלה ( אביב 2009) חגית עטיה ©4 Client-Server Communication הלקוח " מזדמן " יוזם בקשה כשמעוניין לא מתקשר עם לקוחות אחרים צריך לדעת את כתובת השרת השרת תמיד עובד מקבל בקשות מהרבה לקוחות לא יוזם את הקשר עם הלקוחות צריך כתובת קבועה וידועה
5
מערכות הפעלה ( אביב 2009) חגית עטיה ©5 מהו socket? ממשק תכנות (API) ליצירת תוכנות רשת שליחת הודעה מתהליך אחד לתהליך במחשב אחר צריכה לעבור את הרשת ההודעה נשלחת ומתקבלת דרך socket מעין " דלת " המובילה מתוך ואל הבית socket User process Operating System Operating System
6
מערכות הפעלה ( אביב 2009) חגית עטיה ©6 זיהוי התהליך המקבל התהליך השולח צריך לזהות את התהליך המקבל שם או כתובת של מחשב הקצה מזהה של התהליך המקבל זיהוי מחשב הקצה באופן ייחודי על - ידי כתובת IP (Internet Protocol) בת 32 ביטים זיהוי התהליך המקבל מחשב הקצה מריץ הרבה תהליכים זיהוי התהליך על - ידי port number בן 16 ביטים מושג של רשת התקשורת ולא של מערכת ההפעלה
7
מערכות הפעלה ( אביב 2009) חגית עטיה ©7 זיהוי תהליך על - ידי פורט Web server (port 80) Client host Server host 128.2.194.242 Echo server (port 7) Service request for 132.68.37.66:80 (i.e., the Web server) OS Client Service request for 132.68.37.66:7 (i.e., the echo server) Client
8
מערכות הפעלה ( אביב 2009) חגית עטיה ©8 באיזה פורט להשתמש ? לאפליקציות פופולאריות יש מספר פורט ידוע למשל 80 לשרת web, 25 לשרת mail רשימה ב http://www.iana.orghttp://www.iana.org פורטים ידועים ופורטים זמניים לשרת יש מספר פורט ידוע ( למשל 80) בין 0 ל - 1023 הקליינט מתקשר דרך מספר פורט זמני בין 1024 ל 65535
9
מערכות הפעלה ( אביב 2009) חגית עטיה ©9 ממשק ה -socket במערכות Unix הוצג לראשונה ב Berkeley Unix נתמך בכל מערכות ההפעלה הפופולאריות מאפשר העברה חלקה של אפליקציות דומה לממשק לקובץ קבלת מידע היא כמו קריאה מקובץ שליחת מידע היא כמו כתיבה לקובץ הקובץ וה - socket מיוצגים על - ידי integer descriptor קריאות מערכת ההפעלה : Client: create, connect, write, read, close Server: create, bind, listen, accept, read, write, close
10
מערכות הפעלה ( אביב 2009) חגית עטיה ©10 חלוקת העבודה זיהוי יחיד של התקשורת בין שני מחשבי קצה שתי כתובות IP ושני מספרי פורט סוג פרוטוקול התקשורת (TCP או UDP) הרשת : מעבירה את ההודעה למחשב היעד על סמך כתובת ה -IP מערכת ההפעלה : מעבירה את המידע ל -socket על סמך הפרוטוקול ומספר הפורט האפליקציה : קוראת מידע מה -socket ומטפלת בו
11
מערכות הפעלה ( אביב 2009) חגית עטיה ©11 מבנה טיפוסי של קליינט הכנה להתקשרות : יצירת socket socket(…) מציאת כתובת השרת ומספר הפורט ( בד " כ קבוע ) אתחול התקשורת לשרת connect(sockfd, serv_addr, …) החלפת מידע עם השרת כתוב מידע ל socket קרא מידע מה socket טפל במידע ( למשל, הצג דף hml) סגור את ה socket close(sockfd)
12
מערכות הפעלה ( אביב 2009) חגית עטיה ©12 שרתים אינם קליינטים פאסיביים : מוכנים לתקשורת אבל לא מתחילים עד ששומעים מהלקוח שומעים מכמה לקוחות צריך לאפשר תור של לקוחות מחכים, אם מספר לקוחות מתחילים התקשרות בו - זמנית יצירת socket לכל לקוח כאשר מקבלים בקשה מלקוח חדש, יוצרים עבורו socket חדש ( ובלעדי )
13
מערכות הפעלה ( אביב 2009) חגית עטיה ©13 מבנה טיפוסי של שרת הכנה להתקשרות : יצירת socket socket(…) קשר כתובת עצמית ומספר פורט עם ה - socket bind(sockfd, my_addr, …)
14
מערכות הפעלה ( אביב 2009) חגית עטיה ©14 מבנה טיפוסי של שרת : הקשבה המתן לשמוע מלקוח (passive open) ציין כמה לקוחות ממתינים מותרים listen(sockfd, num) קבל בקשת התקשרות מלקוח ויצור socket יעודי accept(sockfd, addr, addrlen) החלפת מידע עם הלקוח על ה - socket החדש קרא מידע מה socket טפל בבקשה ( למשל, הבא קובץ hml) כתוב מידע ל socket סגור את ה - socket חזור להמתנה
15
מערכות הפעלה ( אביב 2009) חגית עטיה ©15 טיפול בבקשות טיפול סדרתי בבקשות אינו יעיל כל שאר הקליינטים צריכים להמתין כדאי שהשרת יטפל בכמה בקשות קליינטים בו - זמנית (time-sharing) קצת עבודה על בקשה אחת, ועבור לבקשה אחרת פירוק למשימות קטנות, כמו מציאת קובץ... או יצירת תהליך חדש לטיפול בכל בקשה או שימוש במאגר חוטים ( כמו שראינו בהתחלת הקורס )
16
מערכות הפעלה ( אביב 2009) חגית עטיה ©16 מימוש של שרת - לקוח : control flow Client side sd=socket() connect(sd, dst) write(sd, …) read(sd, …) close(sd) Server side sd=socket() bind(sd, port) listen(sd,…) new_sd=accept(sd) read(new_sd, …) write(new_sd, …) close(new_sd) מחבר את ה sd שלו לפורט מסוים מגדיר את אורך התור מקבל בקשה אחת קריאה חוסמת שלח בקשה שלח תשובה יצירת קשר רצוי לתת לחוט נפרד לטפל בבקשה
17
מערכות הפעלה ( אביב 2009) חגית עטיה ©17 מתחת ל socket: מודל השכבות פרוטוקולי תקשורת מאפשרים העברת נתונים ברשת, ופועלים בשכבות שונות, כשלכל שכבה תפקיד משלה. אוסף פרוטוקולי התקשורת הנפוץ ביותר נקרא TCP/IP מכיל 4 שכבות אפליקציות המשתמשות ברשת Application (telnet, ftp …) תקשורת בין תהליכים ( ולא מחשבים )Transport (TCP, UDP) ניתוב חבילות בין תחנות ( לא שכנות )Internet (IP) העברת חבילה בין תחנות שכנות Data Link
18
מערכות הפעלה ( אביב 2009) חגית עטיה ©18 תקשורת בשכבות Data Link Internet Transport Application Data Link Internet Application Transport SourceDestination כל שכבה מקבלת שירותים מהשכבה שמתחתיה מספקת שירותים לשכבה שמעליה ו " מדברת " עם השכבה המקבילה במחשב השני
19
מערכות הפעלה ( אביב 2009) חגית עטיה ©19 קצת יותר מדויק כל שכבה מקבלת שירותים מהשכבה שמתחתיה מספקת שירותים לשכבה שמעליה ו " מדברת " עם השכבה המקבילה במחשב השני, או במחשבי ביניים Data Link Internet Application Transport Destination Data Link Internet Data Link Internet Data Link Internet Transport Application Source
20
מערכות הפעלה ( אביב 2009) חגית עטיה ©20 שכבת הקו :Data Link מעבירה חבילה מהתחנה לתחנה שכנה באותה רשת מטפלת בכל הפרטים הקשורים בחומרה ובממשק עם הרשת הפיסית. הפרוטוקול שונה מרשת לרשת ותלוי בחומרה של הרשת הפיסית. נקרא גם MAC (Medium Access control)
21
מערכות הפעלה ( אביב 2009) חגית עטיה ©21 שכבת Internet : פרוטוקול IP אחראית על ניתוב חבילות מתחנת המקור לתחנת היעד. הפרוטוקול בשכבה זו נקרא - Internet Protocol IP. מנתב חבילות בין רשתות שונות, באמצעות gateways. תחנות מיוחדות שמחוברות לכמה רשתות מעבירות חבילות בין הרשתות הפרוטוקול לא מבטיח שחבילה תגיע אל יעדה, אלא רק מחליט איך לנתב כל חבילה. כל חבילה מנותבת בנפרד, ללא קשר לחבילות אחרות ( הפרוטוקול הוא connectionless)
22
מערכות הפעלה ( אביב 2009) חגית עטיה ©22 כתובות IP מספר יחודי המזהה כל ממשק תקשורת שמחובר לרשת. למחשב אחד יכולים להיות מספר כתובות IP, לדוגמה, אם יש לו כמה כרטיסי רשת גודל של כתובת IP הוא 32 סיביות. מקובל לייצג כתובת IP ע “ י 4 מספרים עשרוניים לדוגמה : 132.68.37.66 הניתוב מתבסס על כתובת IP של החבילה ועל טבלאות ניתוב מיוחדות (routing tables), הקיימות בכל router router הינו מחשב שדרכו עוברות חבילות שלא מיועדות למחשב עצמו. ל – router יהיו בד " כ מספר ממשקי תקשורת. ניתן לגלות כמה ממשקי תקשורת יש למחשב ומה כתובות ה -IP שלהם באמצעות הפקודה ifconfig בתוך shell של Linux
23
מערכות הפעלה ( אביב 2009) חגית עטיה ©23 שכבת Transport: UDP / TCP מאפשרת תקשורת בין תהליכים ( שכבת IP מאפשרת תקשורת בין מחשבים ) TCP (Transport Connection Protocol) יוצר session בין שני תהליכים, ומבטיח : סדר : החבילות יגיעו ליעדן בסדר שבו נשלחו אמינות : כל החבילות יגיעו ליעדן ( חבילה שהולכת לאיבוד משודרת מחדש ) UDP (User Datagram Protocol): מעביר הודעה בודדת בין שני תהליכים, מבלי להבטיח סדר או אמינות
24
מערכות הפעלה ( אביב 2009) חגית עטיה ©24 שכבת האפליקציה מכילה פרוטוקולים של אפליקציות כגון : telnet, ftp, http ואחרות. אפליקציות אלה משתמשות בפרוטוקולי transport לתקשורת עם מחשבים מרוחקים.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.