Presentation is loading. Please wait.

Presentation is loading. Please wait.

מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח  פרדיגמת שרת לקוח  מושג ה socket  מבנה שרת - לקוח  קצת יותר על רשתות.

Similar presentations


Presentation on theme: "מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח  פרדיגמת שרת לקוח  מושג ה socket  מבנה שרת - לקוח  קצת יותר על רשתות."— Presentation transcript:

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 לתקשורת עם מחשבים מרוחקים.


Download ppt "מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח  פרדיגמת שרת לקוח  מושג ה socket  מבנה שרת - לקוח  קצת יותר על רשתות."

Similar presentations


Ads by Google