User Datagram Protocol – הבדלי גרסאות
מ r2.5.2) (בוט משנה: gl:UDP |
אין תקציר עריכה |
||
שורה 3: | שורה 3: | ||
'''User Datagram Protocol''' (ב[[ראשי תיבות]]: '''UDP''') הוא פרוטוקול השייך ל[[שכבת התעבורה של מודל ה-OSI]] ול[[שכבת התעבורה של מודל ה-TCP/IP]] המאפשר העברת נתונים לא אמינה ([[חבילת מידע|חבילות מידע]]). |
'''User Datagram Protocol''' (ב[[ראשי תיבות]]: '''UDP''') הוא פרוטוקול השייך ל[[שכבת התעבורה של מודל ה-OSI]] ול[[שכבת התעבורה של מודל ה-TCP/IP]] המאפשר העברת נתונים לא אמינה ([[חבילת מידע|חבילות מידע]]). |
||
'''UDP''' אינו מספק אמינות או שימור סדר כפי שקורה ב-[[TCP]]. [[חבילת מידע|חבילות מידע]] עשויות להגיע בסדר שונה מזה שבו הן נשלחו, להגיע מספר פעמים או ללכת לאיבוד ולא להגיע כלל |
'''UDP''' אינו מספק אמינות או שימור סדר כפי שקורה ב-[[TCP]]. [[חבילת מידע|חבילות מידע]] עשויות להגיע בסדר שונה מזה שבו הן נשלחו, להגיע מספר פעמים או ללכת לאיבוד ולא להגיע כלל. |
||
חסכון המידע המבטיח את אמינות השליחה ועובדת היותו של הפרוטוקול "connectionless" (אינו מייסד קשר בדומה לפרוטוקול [[TCP]]), גורמים לפרוטוקול UDP לספק דיוור מהיר לחבילות הנשלחות דרכו. המהירות היחסית של הפרוטוקול הופכת אותו מתאים ביותר לאפליקציות שאינן דורשות אמינות מלאה של המידע (בין אם הן לא זקוקות לו או ממשות זאת בעצמן), לאפליקציות עבורן יש חשיבות גבוהה לזמן דיוור קצר (לדוגמה [[Domain Name System|DNS]]) ולאפליקציות בהן שני הפרמטרים מתאימים (לדוגמה [[VoIP]] בה עיכוב מוריד מאיכות השיחה ולעומת זאת מידע שאינו הגיע לא ישודר שוב). |
|||
⚫ | |||
בדומה ל-[[TCP]] גם '''UDP''' משתמש ב[[פורט (תקשורת)|פורטים]] (ports), על-מנת להפריד בין התקשרויות בנושאים שונים. |
בדומה ל-[[TCP]] גם '''UDP''' משתמש ב[[פורט (תקשורת)|פורטים]] (ports), על-מנת להפריד בין התקשרויות בנושאים שונים. |
||
⚫ | |||
ב-'''UDP''' מוקצות 16 [[סיבית|סיביות]] עבור כל פורט. כלומר, ערך פורט יהיה בין 0 ל-65,535. |
ב-'''UDP''' מוקצות 16 [[סיבית|סיביות]] עבור כל פורט. כלומר, ערך פורט יהיה בין 0 ל-65,535. |
||
למספר הפורט יש חשיבות, שכן מספרים שונים משמשים לשימושים שונים: |
למספר הפורט יש חשיבות, שכן מספרים שונים משמשים לשימושים שונים: |
||
שורה 15: | שורה 17: | ||
* מספרי הפורטים 49,152 עד 65,535 נועדו לשימוש זמני על ידי לקוחות בפניות אל השרת. |
* מספרי הפורטים 49,152 עד 65,535 נועדו לשימוש זמני על ידי לקוחות בפניות אל השרת. |
||
בניגוד לפרוטוקול [[TCP]] בו כל ייסוד קשר בין שני מחשבים "תופס" מספר [[פורט (תקשורת)|פורט]] באופן בלעדי, בפרוטוקול UDP ויכול מחשב להתקשר עם מספר מחשבים על אותו מספר [[פורט (תקשורת)|פורט]] במקביל. |
|||
⚫ | |||
⚫ | |||
פתיח של [[חבילת מידע|חבילת]] '''UDP''' מורכב מארבעה שדות - |
|||
מאחר ופרוטוקול UDP אינו מבטיח הגעת הודעות בסדר מסוים, או הגעת הודעות כלל ולעומת זאת מספק זמן דיוור נמוך עד להגעה ליעד, מבנה של החבילה הנו רזה. |
|||
ה[[תקורה]] של החבילה מכילה פתיח באורך 64 [[סיבית|סיביות]] בלבד. |
|||
=== מבנה הפתיח === |
|||
⚫ | |||
16 ה[[סיבית|סיביות]] הראשונות מכילות את פיתחת המקור(source port), מכיוון ש-'''UDP''' לא מקיים בהכרח תקשורת דו כיוונית שדה זה הוא אופציונלי ואם הוא לא בשימוש הוא יכיל אפסים. |
|||
| align="center" bgcolor="#6699EF" | 1 || align="center" bgcolor="#6699EF" | 2 || align="center" bgcolor="#6699EF" | 3 || align="center" bgcolor="#6699EF" | 4 || align="center" bgcolor="#6699EF" | 5 || align="center" bgcolor="#6699EF" | 6 || align="center" bgcolor="#6699EF" | 7 || align="center" bgcolor="#6699EF" | 8 || align="center" bgcolor="#6699EF" | 9 || align="center" bgcolor="#6699EF" | 10 || align="center" bgcolor="#6699EF" | 11 || align="center" bgcolor="#6699EF" | 12 || align="center" bgcolor="#6699EF" | 13 || align="center" bgcolor="#6699EF" | 14 || align="center" bgcolor="#6699EF" | 15 || align="center" bgcolor="#6699EF" | 16 || align="center" bgcolor="#6699EF" | 17 || align="center" bgcolor="#6699EF" | 18 || align="center" bgcolor="#6699EF" | 19 || align="center" bgcolor="#6699EF" | 20 || align="center" bgcolor="#6699EF" | 21 || align="center" bgcolor="#6699EF" | 22 || align="center" bgcolor="#6699EF" | 23 || align="center" bgcolor="#6699EF" | 24 || align="center" bgcolor="#6699EF" | 25 || align="center" bgcolor="#6699EF" | 26 || align="center" bgcolor="#6699EF" | 27 || align="center" bgcolor="#6699EF" | 28 || align="center" bgcolor="#6699EF" | 29 || align="center" bgcolor="#6699EF" | 30 || align="center" bgcolor="#6699EF" | 31 || align="center" bgcolor="#6699EF" | 32 |
|||
⚫ | |||
| align="center" bgcolor="#6699EF" colspan="16" | פורט המקור || align="center" bgcolor="#6699EF" colspan="16" | פורט היעד |
|||
|- |
|||
| align="center" bgcolor="#6699EF" colspan="16" | אורך החבילה || align="center" bgcolor="#6699EF" colspan="16" | [[Checksum]] |
|||
|} |
|||
16 ה[[סיבית|סיביות]] הבאות מכילות את פיתחת היעד (destination port) |
|||
16 ה[[סיבית|סיביות]] הבאות מגדירות את גודל חבילת ה-'''UDP''' ביחידות של 8 [[סיבית|סיביות]]. |
|||
*[[פורט (תקשורת)| פורט]] המקור (16 סיביות) - שדה המכיל את מספר הפורט במחשב המקור. שדה אופציונלי, מאחר ופרוטוקול UDP לא מקיים בהכרח תקשורת דו כיוונית. במקרה ואינו בשימוש השדה יכיל אפסים. |
|||
16 ה[[סיבית|סיביות]] האחרונות מכילות מספר [[Checksum]] - מספר שנוצר על ידי הפעלת פונקציה ידועה על כל נתוני החבילה ומשמש ע"מ לוודא שלא הייתה טעות בהעברת הנתונים. שדה זה הוא אופציונלי, וכשהוא לא בשימוש הוא יועבר כאפסים. |
|||
*[[פורט (תקשורת)| פורט]] היעד (16 סיביות) - שדה המכיל את מספר הפורט במחשב היעד. |
|||
*אורך החבילה (16 סיביות) - שדה המכיל את אורך החבילה ביחידות של [[בית (מחשב)|בתים]]. |
|||
* סיכום ביקורת (16 סיביות) - [[checksum]], מספר האימות של הפתיח והנתונים. שדה אופצינלי. |
|||
{| class="wikitable" style="margin: 0 auto; text-align: center;" |
|||
⚫ | |||
! + |
|||
! colspan="16" width="150px"|Bits 0 - 15 |
|||
! colspan="16" width="150px"|16 - 31 |
|||
|- align="center" |
|||
! 0 |
|||
| colspan="16" bgcolor="#FFDDDD"|פתחת מקור |
|||
| colspan="16"|פתחת יעד |
|||
|- align="center" |
|||
! 32 |
|||
| colspan="16"|אורך |
|||
| colspan="16" bgcolor="#FFDDDD"|Checksum |
|||
|- align="center" |
|||
! 64 |
|||
| colspan="32"| <br />Data<br /> |
|||
⚫ | |||
===פונקציית ה-Checksum=== |
===פונקציית ה-Checksum=== |
גרסה מ־19:32, 29 במרץ 2011
סיווג פרוטוקולים על פי מודל ה־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 |
User Datagram Protocol (בראשי תיבות: UDP) הוא פרוטוקול השייך לשכבת התעבורה של מודל ה-OSI ולשכבת התעבורה של מודל ה-TCP/IP המאפשר העברת נתונים לא אמינה (חבילות מידע).
UDP אינו מספק אמינות או שימור סדר כפי שקורה ב-TCP. חבילות מידע עשויות להגיע בסדר שונה מזה שבו הן נשלחו, להגיע מספר פעמים או ללכת לאיבוד ולא להגיע כלל.
חסכון המידע המבטיח את אמינות השליחה ועובדת היותו של הפרוטוקול "connectionless" (אינו מייסד קשר בדומה לפרוטוקול TCP), גורמים לפרוטוקול UDP לספק דיוור מהיר לחבילות הנשלחות דרכו. המהירות היחסית של הפרוטוקול הופכת אותו מתאים ביותר לאפליקציות שאינן דורשות אמינות מלאה של המידע (בין אם הן לא זקוקות לו או ממשות זאת בעצמן), לאפליקציות עבורן יש חשיבות גבוהה לזמן דיוור קצר (לדוגמה DNS) ולאפליקציות בהן שני הפרמטרים מתאימים (לדוגמה VoIP בה עיכוב מוריד מאיכות השיחה ולעומת זאת מידע שאינו הגיע לא ישודר שוב).
פתחות (Ports)
בדומה ל-TCP גם UDP משתמש בפורטים (ports), על-מנת להפריד בין התקשרויות בנושאים שונים.
ב-UDP מוקצות 16 סיביות עבור כל פורט. כלומר, ערך פורט יהיה בין 0 ל-65,535. למספר הפורט יש חשיבות, שכן מספרים שונים משמשים לשימושים שונים:
- פורט 0 שמור והשימוש בו הוא במקרה שבו השולח אינו מצפה לקבל תשובה.
- מספרי הפורטים 1 עד 1,023 שמורים לפורטים "ידועים" (Well-Known Ports).
- מספרי הפורטים 1,024 עד 49,151 הם פורטים רשומים לפרוטוקולים מסוימים או חברות מסוימות.
- מספרי הפורטים 49,152 עד 65,535 נועדו לשימוש זמני על ידי לקוחות בפניות אל השרת.
בניגוד לפרוטוקול TCP בו כל ייסוד קשר בין שני מחשבים "תופס" מספר פורט באופן בלעדי, בפרוטוקול UDP ויכול מחשב להתקשר עם מספר מחשבים על אותו מספר פורט במקביל.
מבנה חבילת UDP
מאחר ופרוטוקול UDP אינו מבטיח הגעת הודעות בסדר מסוים, או הגעת הודעות כלל ולעומת זאת מספק זמן דיוור נמוך עד להגעה ליעד, מבנה של החבילה הנו רזה. התקורה של החבילה מכילה פתיח באורך 64 סיביות בלבד.
מבנה הפתיח
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 |
פורט המקור | פורט היעד | ||||||||||||||||||||||||||||||
אורך החבילה | Checksum |
- פורט המקור (16 סיביות) - שדה המכיל את מספר הפורט במחשב המקור. שדה אופציונלי, מאחר ופרוטוקול UDP לא מקיים בהכרח תקשורת דו כיוונית. במקרה ואינו בשימוש השדה יכיל אפסים.
- פורט היעד (16 סיביות) - שדה המכיל את מספר הפורט במחשב היעד.
- אורך החבילה (16 סיביות) - שדה המכיל את אורך החבילה ביחידות של בתים.
- סיכום ביקורת (16 סיביות) - checksum, מספר האימות של הפתיח והנתונים. שדה אופצינלי.
פונקציית ה-Checksum
פונקציית ה-Checksum מבצעת את החישוב הבא: חילוק ההודעה לקטעים של 16 סיביות, סכימת כל הקטעים (תוך התעלמות מהשארית) וחיבור עם 111...1 (מילה עם 16 סיביות שכולן 1). הצד המקבל מבצע את אותו חישוב על ההודעה ומשווה ל-Checksum.
כקלט לפונקציית ה-Checksum מכניסים גם את כתובת ה-IP, את אורך ההודעה ואת סוג הפרוטוקול של UDP.
פרוטוקולים המשתמשים בUDP
TFTP, DNS, SNMP, DHCP, NFS, RIP