IPv4
![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Ipv4_address.svg/250px-Ipv4_address.svg.png)
גרסה 4 של פרוטוקול האינטרנט, או בקיצור IPv4, היא הגרסה הנפוצה של פרוטוקול IP, ומהווה את הפרוטוקול הבסיסי של רשת האינטרנט.
גרסה זו הוגדרה ב-RFC791[1] כחלק מחבילת הפרוטוקולים TCP/IP. ברשתות שעושות שימוש ב־IP יש להקצות לכל מחשב כתובת IP ייחודית.
הגרסה העוקבת לגרסה 4 של הפרוטוקול (IPv4) נקראת IPv6.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Carnabotnet_geovideo_lowres.gif/299px-Carnabotnet_geovideo_lowres.gif)
היסטוריה
[עריכת קוד מקור | עריכה]ההתפתחות של IPv4 הייתה תהליך ארוך שכלל מחקר ופיתוח רבים במסגרת פרויקטים שונים שהובילו להקמת האינטרנט המודרני.
שנות ה-60 וה-70: התחלה ופיתוח מוקדם
[עריכת קוד מקור | עריכה]- 1969: ARPANET, הרשת הראשונה שקדמה לאינטרנט, הוקמה על ידי סוכנות ARPA של משרד ההגנה האמריקאי. הרשת נועדה לאפשר שיתוף משאבי מחשוב בין חוקרים באוניברסיטאות שונות ברחבי ארצות הברית.
- 1973: וינט סרף ובוב קאהן הציעו את פרוטוקול TCP/IP כפתרון למגבלות של פרוטוקול NCP (Network Control Protocol) ששימש ב-ARPANET. TCP/IP נועד לשפר את היכולת לנתב ולנהל חבילות נתונים בצורה אמינה יותר על פני רשתות שונות.
- 1974: פרסום המאמר "A Protocol for Packet Network Intercommunication" על ידי וינט סרף ובוב קאהן, שתיאר את העקרונות של TCP/IP ואת החזון לאינטרנט גלובלי שמחבר רשתות שונות.
שנות ה-80: אימוץ והטמעה
[עריכת קוד מקור | עריכה]- 1980: הוגדר רשמית פרוטוקול IPv4 ב-RFC 760. הפרוטוקול הגדיר כתובות IP באורך 32 ביטים, מה שסיפק כ-4.3 מיליארד כתובות ייחודיות.
- 1981: הוגדר מחדש IPv4 ב-RFC 791, שהתווה את הבסיס לרוב הפיתוחים והשימושים המאוחרים בפרוטוקול. RFC זה כלל שיפורים רבים לעומת ההגדרה המקורית ב-RFC 760.
- 1983: פרוטוקול TCP/IP, כולל IPv4, הוטמע והחליף את NCP ב-ARPANET, והפך לפרוטוקול הרשת העיקרי של האינטרנט.
שנות ה-90: גידול וצורך בפתרונות חדשים
[עריכת קוד מקור | עריכה]- 1991: התפשטות האינטרנט למסגרות אקדמיות ומסחריות העלתה את הביקוש לכתובות IP. בשנים אלו החל שימוש נרחב יותר באינטרנט מחוץ למסגרת האקדמית והממשלתית.
- 1993: הופעת טכנולוגיית NAT (Network Address Translation) כמענה חלקי למחסור בכתובות IP. NAT אפשרה שימוש בכתובות פרטיות בתוך רשתות מקומיות, מה שהפחית את הצורך בכתובות ציבוריות רבות.
- 1994: החלה עבודה על פרוטוקול IPv6 כמענה למחסור בכתובות IP. IPv6 נועד להחליף את IPv4 באמצעות הגדלת טווח הכתובות האפשריות לשימוש.
שנות ה-2000 ואילך: מעבר ל-IPv6 ותחזוקת IPv4
[עריכת קוד מקור | עריכה]- 2000: השקת IPv6 באופן רשמי עם RFC 2460, והמלצה על אימוץ הדרגתי של הפרוטוקול החדש. IPv6 כולל כתובות באורך 128 ביטים, מה שמספק טווח רחב יותר של כתובות IP.
- 2011: חילק ה-IANA (Internet Assigned Numbers Authority) את טווחי הכתובות האחרונים של IPv4, מה שסימן את הצורך הדחוף במעבר ל-IPv6. בעקבות זאת, החל תהליך המעבר ההדרגתי ל-IPv6.
- 2017: רוב ספקי השירותים הגדולים (ISP) והתשתיות החלו לתמוך ולהטמיע IPv6, אך IPv4 עדיין נותר בשימוש נרחב. הטמעה של IPv6 נמשכת במקביל לשימוש בטכנולוגיות תאימות כמו NAT ו-IPv4-over-IPv6.
מציאות עכשווית
[עריכת קוד מקור | עריכה]- 2024: עדיין נעשה שימוש רחב ב-IPv4 במקביל ל-IPv6. טכנולוגיות כמו NAT ופתרונות של IPv4-over-IPv6 ממשיכים לאפשר תאימות ושימוש בכתובות IPv4 במקביל למעבר ההדרגתי ל-IPv6. השימוש המשולב בשני הפרוטוקולים מאפשר התמודדות עם המחסור בכתובות ומקנה יציבות וגמישות לרשת האינטרנט.
כתובות
[עריכת קוד מקור | עריכה]כתובת IPv4 מורכבת מ-32 סיביות ומיוצגת באמצעות 4 מספרים עשרוניים המופרדים בנקודה. כל מספר מהווה מקבץ של 8 סיביות וגודלו נע בין 0 ל-255.
דוגמה ליצוג עשרוני מקובל: 208.80.152.2
והייצוג הבינארי של הכתובת הזאת יהיה: 11010000.01010000.10011000.00000010
חבילת IPv4
[עריכת קוד מקור | עריכה]פרוטוקול IP מחלק לחבילות את המידע שעליו להעביר, כאשר כל חבילה מורכבת מפתיח (header), נתונים, ואינה מכילה סוגר (trailer), בניגוד לפרוטוקולים אחרים.
מבנה הפתיח
[עריכת קוד מקור | עריכה]1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
גרסת הפרוטוקול | אורך הפתיח | סוג השירות (ToS) | אורך החבילה | ||||||||||||||||||||||||||||
מספר הזיהוי | סיביות חלוקה | סדר הרכבת המידע | |||||||||||||||||||||||||||||
זמן החיים (TTL) | פרוטוקול שכבת התעבורה | Checksum של הפתיח | |||||||||||||||||||||||||||||
כתובת ה-IP של השולח | |||||||||||||||||||||||||||||||
כתובת ה-IP של היעד |
4 הסיביות הראשונות משמשות לסימון גרסת הפרוטוקול שבו נעשה שימוש. כאן יוצג המספר 4 (IPv4).
4 הסיביות הבאות מגדירות את אורך הפתיח, ביחידות של 32 סיביות (שהם 4 בתים). מכיוון שפתיח של חבילת IP יכולה להכיל נתונים שונים, בהתאם לאפשרויות השונות בהן נעשה שימוש, ולכן אורך הפתיח משתנה בין חבילה לחבילה. לדוגמה, פתיח בן 20 בתים יקבל את האורך 5 (20 בתים הם 160 סיביות). יש לשים לב שאורך הפתיח לא יכול לעלות על 60 בתים.
8 הסיביות הבאות נועדו במקור כדי לאפיין את סוג השירות (ToS – Type of Service), כלומר, האם על החבילה להעדיף מעבר מהיר על פני אמינות גבוהה. כיום השדה משמש ל-DiffServ או ל-ECN.
16 הסיביות הבאות מגדירות את גודלה הכולל של החבילה, ביחידות של בית אחד. הגודל המינימלי לחבילה מוגדר להיות 20 בתים (הגודל המינימלי של פתיח IP), והגודל המקסימלי הוא 65535 בתים.
16 הסיביות הבאות מייצגות את "מספר הזיהוי" של החבילה. שדה זה משמש בעיקר לצורך הרכבה מחדש של הודעות אשר חולקו (ראה בהמשך). במקרה בו יש מספר רב של חלקים (Fragments), הצד המקבל צריך לדעת את מי מהחלקים להרכיב מחדש. בזמן חלוקה של הודעה, מספר זה חייב להישמר. מערכת ההפעלה בדרך כלל מעלה את המספר באופן סדרתי בכל הודעה שיוצאת מהמחשב.
3 הסיביות הבאות נוגעות לחלוקת המידע ליותר מחבילה אחת. הביט הראשון שמור לשימוש עתידי וחייב להיות 0. הביט הבא מסמן האם אסור לנתבים בדרך לחלק את החבילה הנוכחית לחבילות קטנות יותר. אם שווה 1, אזי אסור על נתבים לבצע חלוקה כזו, ואם שווה 0 אזי מותר. הביט הבא מסמל האם לאחר חבילה זו יש חבילות נוספות, במקרה והחבילה המקורית חולקה לכמה חבילות.
13 הסיביות הבאות משמשות לזיהוי הסדר שבו צריך להרכיב את המידע, במקרה שהוא מחולק בין כמה חבילות. שדה זה מכיל את המיקום היחסי של המידע בחבילה הנוכחית, ביחס לחבילה המקורית שעברה חלוקה. המיקום נתון ביחידות של 8 בתים.
8 הסיביות הבאות מייצגות את "זמן החיים" של החבילה (TTL – Time To Live). השדה מקבל מספר כלשהו בעת השליחה, ובכל תחנה שהחבילה עוברת בדרך המספר מוקטן באחד. אם "זמן החיים" של החבילה הגיע לאפס לפני שהיא הגיעה ליעדה, היא מושמטת ולא מועברת הלאה. מנגנון זה הומצא כדי למנוע מחבילות שלא יכולות להגיע ליעדן להסתובב באופן אינסופי ברשת.
8 הסיביות הבאות מייצגות מספר, הקובע לאיזה פרוטוקול יש להעביר את המידע לאחר שהועבר. לדוגמה - 1 ICMP, 6 TCP, 17 UDP.
16 הסיביות הבאות מכילות מספר שנועד לוודא את המעבר התקין של הפתיח. מפעילים על הפתיח פונקציה ידועה, שעל-פי נתונים שונים שהוא מכיל מחזירה מספר בן 16 סיביות. התחנה המקבלת מפעילה את אותה הפונקציה על הפתיח ומשווה את התוצאה עם תכולת השדה על מנת לוודא שהפתיח הגיע תקין. IPv4 לא מוודא את אמינות הנתונים, אלא רק את אמינות הפתיח.
32 הסיביות הבאות מכילות את כתובת ה-IP של השולח.
32 הסיביות הבאות מכילות את כתובת ה-IP של הנמען.
בהמשך ניתן להוסיף אופציות שונות (למשל אפשרויות אבטחה). במקרה שהאופציות לא מגיעות למכפלה שלמה של 32 סיביות (שהרי גודל פתיח חבילת ה-IP חייב להיות כפולה שלמה של 32) מרפדים את סופו של הפתיח באפסים על-מנת להגיע לכפולה כזאת.
ראו גם
[עריכת קוד מקור | עריכה]קישורים חיצוניים
[עריכת קוד מקור | עריכה]הערות שוליים
[עריכת קוד מקור | עריכה]
סיווג פרוטוקולים על פי מודל ה־OSI | ||
---|---|---|
שכבת היישום | HTTP • SMTP • FTP • RTP • IRC • SNMP • SIP • DNS • DHCP | |
שכבת הייצוג | MIME • ASCII • Unicode • TLS | |
שכבת השיחה | ASP • PPTP • SSH • NFS • RPC • SOCKS | |
שכבת התעבורה | TCP • UDP • SCTP • DCCP | |
שכבת הרשת | IP (IPv4 • IPv6) • ICMP • IPX • ניתוב | |
שכבת הקו | אתרנט • Token ring • FDDI | |
השכבה הפיזית | E1 • 10Base-T • RS-232 • DSL • SONET |
פרוטוקולים במודל TCP/IP | ||
---|---|---|
שכבת יישום | HTTP • SMTP • FTP • DNS • DHCP • SSH • RTP • RTSP • IRC • SNMP • SIP • IMAP4 • MIME • Telnet • RPC • SOAP • LDAP | |
שכבת תעבורה | TCP • UDP • SCTP • DCCP | |
שכבת רשת | IP • IPv4 • IPv6 • ICMP • IPX • IGMP | |
שכבת קשר | אתרנט • 10BASE-T • 802.11 WiFi • Token ring • FDDI • ARP |