TCP/IP

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
פרוטוקולים במודל TCP/IP
שכבת יישום
HTTP, SMTP, FTP, DNS, DHCP, SSH, RTP, RTSP, IRC, SNMP, SIP, IMAP4, MIME, TELNET, RPC, SOAP ...
שכבת תעבורה
TCP, UDP, SCTP, DCCP ...
שכבת רשת
IP, IPv4, IPv6, ICMP, ARP, IPX, IGMP ...
שכבת קשר
Ethernet, 10BASE-T, 802.11 WiFi, Token ring, FDDI ...

TCP/IP היא חבילת פרוטוקולי תקשורת שעליה מושתתת רשת האינטרנט, ושם למודל שכבתי המתאר תקשורת ברשתות מחשבים.

IP stack connections.svg

מה זה TCP/IP?[עריכת קוד מקור | עריכה]

TCP/IP הוא פרוטוקול תקשורת או משפחה של פרוטוקולים בסיסיים של רשת האינטרנט. פרוטוקול זה יכול לשמש גם כפרוטוקול תקשורת של רשת פרטית (intranet או extranet). הרעיון שעומד בבסיס TCP/IP הוא יצירת מערכת שמאפשרת לקשר בין רשתות רבות ושונות, ללא תלות במבנה הרשת ובטכנולוגיה שעומדת בבסיסה. הפרוטוקולים המרכיבים את TCP/IP מאפשרים לעשות זאת, ובכך ליצור רשת של רשתות. IP הוא פרוטוקול האינטרנט (אינטרנט - קיצור של inter-network, רשת בין רשתות). האינטרנט הוא המקרה הבולט ביותר של קישור בין רשתות. קיימים גם פרוטוקולים אחרים של "רשתות של רשתות", אבל TCP/IP הוא הנפוץ והשימושי ביותר. הסיבה העיקרית לכך היא העובדה שפרוטוקול IP משמש את האינטרנט. פרוטוקול IP מאפשר קישור בין רשתות מסביב לעולם, ולמעשה מאפשר תקשורת אוניברסלית. כך יכול, למשל, אדם היושב בביתו בכל מקום שיהיה, לשלוח דוא"ל לכל מקום אחר בעולם, או להתעדכן, לאסוף ולחלוק מידע בלי שדפדפן האינטרנט או תוכנת הדוא"ל יצטרכו לדעת איך להגיע ליעד: פרוטוקול IP דואג להגעה ליעד.

TCP/IP היא תוכנית בעל 2 שכבות. השכבה העליונה, פרוטוקול בקרת שליחה (TCP), מנהלת את חלוקת הקובץ שהוא ההודעה ל-packets קטנים שנשלחים ברשת האינטרנט ואוספת מחדש את ה-packets עד לקבלת ההודעה המקורית. השכבה התחתונה, פרוטוקול אינטרנט (IP), מטפלת בכתובת אליו נשלח כל packet כדי שיגיע ליעד הנכון. כל מחשב gateway ברשת בודק כתובת זו כדי לדעת לאן לשלוח את ההודעה. אפילו שחלק מה-packets של אותה הודעה מנותבים באופן שונה, הם יקובצו מחדש ביעד.

TCP/IP עושה שימוש במודל client/server של תקשורת כך שמחשב המשתמש (client) מבקש ומקבל שירות (כמו שליחת דפי Web) ממחשב אחר (server) ברשת. תקשורת TCP/IP ביסודה היא תקשורת מנקודה לנקודה, כלומר, קשר מנקודה אחת (מחשב host) ברשת לנקודה אחרת או מחשב host אחר. TCP/IP והיישומים שעושים בו שימוש נחשבים ל-stateless כי כל בקשה של client הינה בקשה חדשה שאינה תלויה בקודמות לה (שלא כמו בשיחת טלפון רגילה שדורשת חיבור ייעודי למשך כל השיחה). מעצם היותה stateless היא מאפשרת לשחרר נתיבי תקשורת כך שכולם יכולים להשתמש בהם באופן רציף. (יש לשים לב ששכבת ה-TCP עצמה אינה stateless כל עוד מתייחסים להודעה בודדת. הקישור שלה נשאר פתוח עד שכל ה-packets של ההודעה התקבלו.)

חבילת TCP/IP[עריכת קוד מקור | עריכה]

חבילת פרוטוקולי התקשורת של TCP/IP מהווה את הבסיס עליו מושתתת רשת האינטרנט. רשתות קטנות יכולות להתבסס כל אחת על תשתיות פיזיות שונות (קווי טלפון, רשתות Ethernet וכיוצא בזה). מאחר שרשתות גדולות, דוגמת האינטרנט, מחברות מספר גדול של רשתות מקומיות - דרוש תקן אחיד בו מחשבים מרשתות פיזיות שונות יוכלו לתקשר. ארכיטקטורת TCP/IP מאפשרת לשני מחשבים לתקשר גם אם הם נמצאים ברשתות עם אפיקי תקשורת נתונים עם מאפינים פיסים שונים, מריצים מערכות הפעלה שונות וכך הלאה. שני הפרוטוקולים העיקריים בחבילה הינם פרוטוקול Transmission Control Protocol, ופרוטוקול Internet Protocol. בנוסף לפרוטוקולים אלה, החבילה כוללת פרוטוקולי עזר רבים נוספים.

פרוטוקולי TCP/IP[עריכת קוד מקור | עריכה]

אוסף הכללים הקובעים אילו הודעות יש לשלוח ומתי, ואיך לעבד את ההודעות המתקבלות נקרא פרוטוקול. הודעות הנשלחות על ידי הפרוטוקולים בשכבות שונות נקראות יחידות מידע פרוטוקוליות (Protocol Data Units, או בקיצור PDUs).

התוכניות לשליחת הודעות מחולקות ל"תתי תוכניות" שנקראות שכבות. כל שכבה נותנת שירות לשכבה שמעליה ומקבלת שירות מזו שמתחתיה. לכל שכבה מוגדרים היטב השירות אותו היא נותנת לשכבה שמעליה באותו מחשב, ויחסי הגומלין שלה עם שכבה מקבילה במחשבים אחרים.

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

אף על פי שלכאורה כל אחד מהפרוטוקולים מממש שכבה אחרת במודל ה- TCP/IP המתואר בהמשך, פרוטוקול TCP ניתן לשימוש אך ורק כשכבה מעל פרוטוקול IP, ולא ניתן להשתמש בו מעל פרוטוקול אחר הממלא את אותו תפקיד במודל. צימוד זה נובע מכך שה- Checksum ב- TCP מחושב גם על חלק מהפתיח (header) של פרוטוקול ה- IP. הכיוון ההפוך הוא אפשרי, וניתן להשתמש במגוון של פרוטוקולים אחרים מעל לפרוטוקול ה- IP.

כיצד פותחה חבילת TCP/IP[עריכת קוד מקור | עריכה]

בתחילת שנות ה-60 של המאה ה-20 משרד ההגנה האמריקאי בשיתוף עם מוסדות אקדמיים החל בפיתוח חבילת תקני תקשורת שיאפשרו תקשורת בין ציוד קצה מיצרניות שונות. ב-1969 ארגון ARPA הקים רשת מיתוג מנות עם ארבע נקודות קצה במיקומים פיסים שונים. רשת ניסיונית זו התבססה על פרוטוקול תקשורת NCP ותמכה במהירות העברת נתונים של 56 Kbps. בשנת 1974 וינטון סרף ו-רוברט א. קאהן הציעו גרסה חדשה של חבילת תקנים עיקרים עבור רשת ARPANET אך זו אושרה רק בגרסה הרביעית שלה בשנת 1979. תרומה רצינית ביותר לפתוח הפרוטוקול ניתנה בשנות ה-70 המוקדמות על ידי חובבי רדיו בארצות הברית וגם על ידי קבוצת פיתוח בארץ אשר השתמשו בפרוטוקול הזה לתקשורת באמצעות מכשירי הקשר שלהם (packet radio) הקבוצה נקראה אז "קבוצת הפאקט".

מודל TCP/IP[עריכת קוד מקור | עריכה]

מודל TCP/IP (על שם חבילת הפרוטוקולים TCP/IP שעומדת בבסיס המודל) הוא מודל שכבתי המתאר תקשורת ברשתות מחשבים. מודל זה נבנה לאחר שהצטבר ידע נרחב באשר לחלוקה הדרושה במודל שכזה, והוא מבוסס במידת מה על מודל ה־OSI. מודל TCP/IP מורכב מארבע שכבות: שכבה מספר 1 היא הנמוכה ביותר, ושכבה מספר 4 היא הגבוהה ביותר, והיא מספקת שירותים למשתמש הקצה. כל אחת מהשכבות מקיימת את העקרונות הבאים:

  • כל שכבה מספקת שירותים לשכבה שמעליה;
  • כל שכבה משתמשת בשירותים שמספקת השכבה שמתחתיה;
  • כל שכבה מקיימת דיאלוג עם השכבה המקבילה לה במערכת שאיתה היא מתקשרת.

השכבות במודל[עריכת קוד מקור | עריכה]

4. שכבת היישום (Application) - פרוטוקול התקשורת שמופעל על ידי תוכנת הקצה, עיבוד נתונים, ניהול תהליכים.
3. שכבת התעבורה (Transport) - שמירה על סדר הנתונים ובקרת זרימה. בניגוד לפרוטוקול TCP, המבטיח גם כי כל הנתונים שנשלחו מצד אחד יגיעו אל הצד השני, שכבת התעבורה של המודל לא מתחייבת לספק שירות זה. למשל פרוטוקול UDP, המממש שכבה זו, לא מוודא הגעה של הנתונים.
2. שכבת הרשת (network) - העברת נתונים על פי כתובות לוגיות ( IP ) .
1. השכבה הפיזית (Physical) - העברת אותות בינאריים, וחלוקת נתונים על פי כתובות פיזיות ( Mac ) .

המודל וחבילת הפרוטוקולים[עריכת קוד מקור | עריכה]

מודל TCP/IP מתבסס במידה רבה על חבילת הפרוטוקולים TCP/IP, ולכן גם קיבל את שמה, אך ניתן לבחון באמצעותו גם רשתות בהן לא נעשה שימוש בTCP או בIP. חלוקת השכבות במודל תואמת את חלוקת העבודה בין TCP לIP, אך באותה מידה היא גם תואמת את חלוקת העבודה בין IPX לSPX ועל כן יש להפריד בין המודל וחבילת הפרוטוקולים.

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

מודל TCP/IP מול מודל OSI[עריכת קוד מקור | עריכה]

למעשה חבילת פרוטוקולי תקשורת TCP/IP הינה יישום מעשי של מודל ה-OSI המופשט. כך שניתן למפות שכבות חבילת TCP/IP לשכבות מודל OSI.

במודל TCP/IP ישנן השכבות הבאות:

OSI TCP/IP
7 Application Application
HTTP, FTP
6 Presentation ASCII, Unicode
5 Session DNS, SSL
4 Transport Transport TCP, UDP, RTP, SCTP
3 Network Network IP, ICMP, IGMP
2 Data Link Physical
Ethernet, Token ring
1 Physical T1, E1

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

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]