למה פרוטוקול IPv6 ? (חלק ג')

קורס IPv6

(בהמשך לחלק ב – מאמר מאת צבי שחם)

השוואת מנות IPv4 ו- IPv6

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

מנת IPv4 כוללת 12 שדות שונים, לעומת 8 שדות בלבד במנת IPv6. חמישה שדות של IPv4 נעלמו, והם: HL, Identification, Flags, Fragment Offset, Header Checksum (כולם מסומנים באדום במנת IPv4 מצד שמאל). שלושה שדות נשארו באותו שם:
DA, SA Version,. ארבעה שדות שינו את שמם וצורת תפקודם: TOS, Total Length, TTL, Protocol. שדה אחד חדש נוסף ל- IPv6 והוא Flow Label.

נסקור את השינויים שחלו בשדות של IPv4:
שדה HL ירד משום שכעת אורך מנת IPv6 הוא קבוע, ולכן אין בו צורך יותר.

שלושת השדות Identification, Flags, Fragment Offset משמשים ב- IPv4 לצורך חלוקת מנה גדולה למנות קטנות יותר ע"י הנתב (תהליך הנקרא פרגמנטציה). יכולת זו בוטלה ב- IPv6, כיוון שהיא דורשת משאבים יקרים בנתב, ולכן הוחלט שהיא תבוצע בתחנות הקצה בלבד. נתבי IPv6 לא יבצעו פרגמנטציה, והדבר אמור לשפר את יכולת התעבורה שלהם. תחנות הקצה תוכלנה לבצע תהליך הנקרא PMTU (או Path MTU Discovery) ולשדר מנות קצרות בהתאם.

Compare

שדה Header Checksum תפקידו לבדוק שגיאות בכותרת מנת IPv4, ואם נתגלו שגיאות כאלה הנתב בדרך כלל משמיט את המנה. במנת IPv6 בוטלה בדיקה זאת, כיוון שהיא ממילא מתבצעת גם במסגרת אתרנט (בשכבה השנייה), וגם בשכבה הרביעית ע"י TCP/UDP. גם כאן המטרה היא לשפר את יכולת התעבורה של הנתבים ברשת.

שדה version לא השתנה, אבל כעת כתוב בו המספר ”6“ במקום המספר ”4“.

שדות הכתובות DA ו- SA נשארו באותו שם, אבל כעת הם בגודל 128 סיביות (במקום 32 סיביות במנת IPv4). ברור שהפורמט שלהם השתנה, כפי שיתואר בהמשך.

שדה TOS (או Type of Service) עבר מספר שינויים במנת IPv4 במרוצת השנים וכעת הוא נקרא DS (כלומר Differentiated Services). הוא מכיל תת-שדה בעל 6 סיביות הנקרא DSCP ( או DiffServe CodePoint), המאפשר להקצות עד 64 דרגות עדיפות לסוגי מנות שונים, תהליך הנקרא (COS (Class of Service. הפונקציונאליות של שדה זה נשארה ב- IPv6 והיא קיימת בשדה הנקרא Traffic Class.

שדה Total Length של IPv4 מייצג את האורך הכולל של המנה (כותרת + נתונים), המוגבל ל- 65 k בתים. שדה זה הוחלף ב- IPv6 בשדה Payload Length המייצג את אורך שדה הנתונים בלבד (ללא הכותרת), והוקצו לו 16 סיביות כמו ב- IPv4. אולם IPv6 מאפשר שימוש במנות גדולות מאד הנקראות Jambograms, היכולות להגיע עד 4 GB, וזאת לצורך עבודה בסביבת אלמנטים בעלי יכולת I/O גבוהה. במקרים כאלה שדה ה- Payload Length מקבל את הערך ”0“ ואורך המנה נקבע ע"י אופציה של כותרת המנה שתתואר בהמשך.

שדה TTL (או Time to Live) משמש למניעת הסתחררות של מנות בתוך הרשת.
ב-IPv6 שונה השם ל- Hop Limit משום שזאת הפונקציה האמיתית שהוא מבצע – מחסר 1 בכל מעבר בנתב, ולכן הוא מודד Hop Count ולא מודד זמני מעבר (כמו שהייתה הכוונה במקור).

שדה Protocol מציין מהו הפרוטוקול העילי (מהשכבה הרביעית) אשר עטוף בתוך מנת IPv4, לדוגמה: TCP = 6, UDP = 17. את הפונקציה הזאת ממלא ב- IPv6 השדה Next Header, אשר מציין האם קיימת הרחבה אופציונאלית לכותרת. קיימות מספר הרחבות כאלה הנקראות Extension Headers, הניתנות לשרשור לאחר המנה הבסיסית של IPv6. בשדה ההרחבה האחרון נמצא מציין הפרוטוקול העילי.

שדה Next Header הוא אחת התוספות החשובות של IPv6 ומאפשר גמישות, יעילות ויכולת הוספת יישומים חדשים בעתיד. אחת (או יותר) כותרות הרחבה יכולות להופיע בין הכותרת הבסיסית לבין שדה הנתונים. כותרות הרחבה אלה מתייחסות לפעולות הדורשות טיפול מיוחד, כך שהכותרת הבסיסית היא קצרה ומינימאלית ומכילה רק את השדות הדרושים לרוב המנות. לכל כותרת הרחבה יש מבנה משלה, הכולל גם הוא שדה
Next Header המצביע על הכותרת הבאה. שדה Next Header בכותרת האחרונה מציין את הפרוטוקול העילי (TCP/UDP) שבו משתמשים.

ציור 5א מתאר מבנה בסיסי ללא הרחבה. הכותרת הבסיסית של IPv6 מכילה את הערך ”6“ בשדה של Next Header, שפירושו שהפרוטוקול העילי הוא TCP (בדיוק כמו ב- IPv4). בציור 5ב קיימת בכותרת הבסיסית הפנייה לכותרת הרחבה מסוג Routing, בעזרת הערך ”43“. בכותרת ההרחבה של Routing מופיע הערך ”6“ המראה כי אחריה מופיע כותרת TCP. ציור 5ג מתאר שרשור של 3 כותרות: הכותרת הבסיסית עם מציין ”43“, כותרת Routing עם מציין ”51“, כותרת Authentication עם מציין ”6“ ולבסוף כותרת TCP.
הציור ממחיש את עקרון השרשור של הכותרות, כאשר כל כותרת דואגת לטיפול מסוג מסוים.

Extension_Headers

כל כותרת יכולה להופיע פעם אחת בלבד במנה (למעט כותרת Destination). יש לכותרות סדר הופעה פנימי מחייב והוא:

1. כותרת בסיסית
2. כותרת Hop-by-Hop (מציין ”0“) המגדירה אופציות שכל נתב בדרך צריך לבדוק. אחת האופציות האפשריות היא Jumbogram, שהיא מנה הגדולה מ- 64K.
3. כותרת Destination Options 1 (מציין ”60“) מכילה מידע המיועד לנתבים המצוינים בכותרת Routing בלבד.
4. כותרת Routing (מציין ”43“) המאפשרת Source Routing, כלומר הגדרת המסלול מראש ע"י התחנה המשדרת.
5. כותרת Fragmentation (מציין ”44“) מופיעה כאשר המנה כוללת רק חלק מהמנה המקורית.
6. כותרת Authentication (מציין ”51“) מכיל מידע לצורך אימות הנתונים.
7. כותרת Encapsulating Security Payload (מציין ”50“) מכיל מידע מוצפן, חלק ממנגנון IPSec.
8. כותרת 2 Destination Options (מציין ”60“) מכילה מידע המיועד לתחנת היעד בלבד.

מצייני Next Header נוספים אפשריים הם:
”1“ – ICMPv4
”2“ – IGMPv4
”4“ – מנת IPv4 עטופה בתוך מנת IPv6
”8“ – EGP
”41“ – מנת IPv6 עטופה בתוך IPv6
”58“ – ICMPv6
”59“ – No Next Header

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


כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *