תכנות מתקדם ב-Java/עבודה ברשת




פרק זה יוקדש לתקשורת בעזרת Java. תקשורת מחשבים היא תחום עצום הכולל בתוכו אינספור פרטים. אנו נדבר כאן על שני אופנים נפוצים, המשמשים אותנו במצבים כמו גלישה ברשת האינטרנט ומסרים מיידיים: תקשורת בעזרת הפרוטוקולים TCP ו-UDP (את פשר המושגים האלו נראה בהמשך).

מושגים עריכה

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

  • פרוטוקול - דרך ידועה ומוסכמת להתקשרות. כאשר מדובר בתקשורת אלקטרונית, חיוני ששני הצדדים ישתמשו בפרוטוקול שמוכר לשניהם, אחרת - לא יוכלו להבין אחד את השני. המקבילה האנושית לכך היא שיחה בין בני אדם: אם שני בני אדם דוברים את אותה השפה, הם יכולים לשוחח. אם לא - לא תהייה להם אפשרות לתקשר. כמובן שקיימים הבדלים רבים מאוד בין תקשורת אנושית ואלקטרונית, אך זו הכוונה הכללית.
  • חבילה (Packet) - כאשר מתבצעת תקשורת בין מחשבים, המידע הגולמי נפרס לחתיכות קטנות של מידע. כל פיסת מידע כזאת מכונה "חבילה", ובנוסף למידע המקורי, מכילה גם מידע נוסף, כמו רצף ביטים שמשמש לווידוא המידע.
  • TCP ו-UDP - שני סוגים נפוצים של פרוטוקולים להעברת נתונים. פרוטוקולים אלו אחראים להעברה של חבילות מידע ממחשב למחשב, מבלי להתייחס לתוכן החבילות. המימוש של הפרוטוקולים האלו מתבצע ברמת מערכת ההפעלה, והם "שקופים" למשתמש: מערכת ההפעלה דואגת להביא אל המשתמש את תוכן המידע המקורי שנשלח, מבלי שיהיה צורך להתעסק בחבילות המידע עצמן. פרוטוקול TCP הוא פרוטוקול שמספק אמינות: מנגנונים שונים מוודאים כי מידע שנשלח באמצעות TCP יגיע אל היעד בשלמותו, ובסדר הנכון בו הוא נשלח. פרוטוקול UDP הוא פשוט יותר, אך בעייתי כאשר יש צורך במידע מדוייק: חבילות שנשלח באמצעות UDP עלולות להשתבש, להיאבד ולהגיע בסדר לא נכון. היתרון של פרוטוקול UDP הוא בכך שהוא מהיר יותר וצורך פחות משאבים מ-TCP. לדוגמה, גלישה באינטרנט תיעשה באמצעות פרוטוקול TCP, כיוון שיש חשיבות שהמידע יהיה מדוייק ומסודר. שיחת טלפון על גבי הרשת תיעשה בעזרת UDP, בגלל שבמקרה זה הדגש הוא על תקשורת מהירה, ואין בעייה אם מדי פעם השיחה תשתבש מעט.
  • מודל השכבות - מודל נפוץ לתיאור אופן העבודה של תקשורת מחשבים, המתבסס על 7 (או 5) שכבות נפרדות, החל מהשכבות הנמוכות שתפקידן הוא להעביר - פיזית - אותות ממכונה למכונה, וכלה בשכבות העליונות שמתעלמות מהשאלה כיצד הועבר המידע ומתמקדות באופן שבו "מדברים ביניהם" יישומים ספציפיים.
  • כתובת IP - כתובת IP היא כתובת המורכבת (בשלב זה) מצירוף של 4 מספרים שנעים בין 0 ל-255. כאשר מחשבים מתקשרים ביניהם, הם משתמשים בכתובות ה-IP כדי לאתר זה את זה.
  • פורט - ערוץ לוגי להעברת נתונים. אם נקביל שליחת חבילות בין מחשבים לשליחת דואר, הרי שכתובת IP תהייה כתובת הבית, והפורט יהיה מספר הדירה. שימוש בפורטים מספק דרך נוחה לעבודה עם יישומים רבים שמחוברים לרשת בו זמנית. פורט מסומן במספר, ומספרים רבים "שמורים" לשימושים שונים. למשל: דפדפנים משתמשים בפורט 80.

איך זה עובד עריכה

מימוש עריכה

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



הפרק הקודם:
עבודה עם קבצים
עבודה ברשת הפרק הבא:
ממשק גרפי