IPv4

גרסה 4 של פרוטוקול האינטרנט, או בקיצור IPv4, היא הגרסה הנפוצה של פרוטוקול IP, ומהווה את הפרוטוקול הבסיסי של רשת האינטרנט. גרסה זו הוגדרה ב-RFC791 כחלק מחבילת הפרוטוקולים TCP/IP. ברשתות שעושות שימוש ב־IP יש להקצות לכל מחשב כתובת IP ייחודית. הגרסה העוקבת לגרסה 4 של הפרוטוקול (IPv4) נקראת IPv6. ההתפתחות של IPv4 הייתה תהליך ארוך שכלל מחקר ופיתוח רבים במסגרת פרויקטים שונים שהובילו להקמת האינטרנט המודרני. 1969: ARPANET, הרשת הראשונה שקדמה לאינטרנט, הוקמה על ידי סוכנות ARPA של משרד ההגנה האמריקאי. הרשת נועדה לאפשר שיתוף משאבי מחשוב בין חוקרים באוניברסיטאות שונות ברחבי ארצות הברית. 1973: וינט סרף ובוב קאהן הציעו את פרוטוקול TCP/IP כפתרון למגבלות של פרוטוקול NCP (Network Control Protocol) ששימש ב-ARPANET. TCP/IP נועד לשפר את היכולת לנתב ולנהל חבילות נתונים בצורה אמינה יותר על פני רשתות שונות. 1974: פרסום המאמר "A Protocol for Packet Network Intercommunication" על ידי וינט סרף ובוב קאהן, שתיאר את העקרונות של TCP/IP ואת החזון לאינטרנט גלובלי שמחבר רשתות שונות. 1980: הוגדר רשמית פרוטוקול IPv4 ב-RFC 760. הפרוטוקול הגדיר כתובות IP באורך 32 ביטים, מה שסיפק כ-4.3 מיליארד כתובות ייחודיות. 1981: הוגדר מחדש IPv4 ב-RFC 791, שהתווה את הבסיס לרוב הפיתוחים והשימושים המאוחרים בפרוטוקול. RFC זה כלל שיפורים רבים לעומת ההגדרה המקורית ב-RFC 760. 1983: פרוטוקול TCP/IP, כולל IPv4, הוטמע והחליף את NCP ב-ARPANET, והפך לפרוטוקול הרשת העיקרי של האינטרנט. 1991: התפשטות האינטרנט למסגרות אקדמיות ומסחריות העלתה את הביקוש לכתובות IP. בשנים אלו החל שימוש נרחב יותר באינטרנט מחוץ למסגרת האקדמית והממשלתית. 1993: הופעת טכנולוגיית NAT (Network Address Translation) כמענה חלקי למחסור בכתובות IP. NAT אפשרה שימוש בכתובות פרטיות בתוך רשתות מקומיות, מה שהפחית את הצורך בכתובות ציבוריות רבות. 1994: החלה עבודה על פרוטוקול IPv6 כמענה למחסור בכתובות IP. 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 פרוטוקול IP מחלק לחבילות את המידע שעליו להעביר, כאשר כל חבילה מורכבת מפתיח (header), נתונים, ואינה מכילה סוגר (trailer), בניגוד לפרוטוקולים אחרים. 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) מרפדים את סופו של הפתיח באפסים על-מנת להגיע לכפולה כזאת. מונחים ברשת מחשבים TCP/IP כתובת IP IP IPv6 Localhost מדיה וקבצים בנושא IPv4 בוויקישיתוף http://www.rfc-editor.org/rfc/rfc791.txt