חבילת עץ חג המולד

ברשתות נתונים, חבילת עץ חג המולד (Christmas tree packet) ולעיתים חבילת קמיקזה היא חבילת מידע שבה כל האפשרויות הנתמכות בפרוטוקול מודלקות.
חבילות עץ חג המולד יכולות לשמש כטביעת אצבע הרומזת למימוש של TCP/IP, כאשר התגובה אליהן עשויה להיות שונה בין מימושים שונים של הפרוטוקול. כאשר משתמשים בחבילת עץ חג המולד לסריקת מערכת, הפתיח של חבילת ה־TCP יכיל דגלים מודלקים של FIN, URG, ו-PSH.
| Offsets> Octet | Octet> Bit | 0 | 0>  1 | 0>  2 | 0>  3 | 0>  4 | 0>  5 | 0>  6 | 0>  7 | 1>  8 | 1>  9 | 1> 10 | 1> 11 | 1> 12 | 1> 13 | 1> 14 | 1> 15 | 2> 16 | 2> 17 | 2> 18 | 2> 19 | 2> 20 | 2> 21 | 2> 22 | 2> 23 | 3> 24 | 3> 25 | 3> 26 | 3> 27 | 3> 28 | 3> 29 | 3> 30 | 3> 31 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 |  0 | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Source port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port | Destination port |
| 4 | 32 | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number |
| 8 | 64 | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) | Acknowledgment number (if ACK set) |
| 12 | 96 | Data offset | Data offset | Data offset | Data offset | Reserved 0 0 0 | Reserved 0 0 0 | Reserved 0 0 0 | N S | C W R | E C E | U R G | A C K | P S H | R S T | S Y N | F I N | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size | Window Size |
| 16 | 128 | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Checksum | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) | Urgent pointer (if URG set) |
| 20 ... | 160 ... | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options | Options |
מערכות הפעלה שונות מממשות באופן שונה את התמיכה שלהן בפרוטוקולי תקשורת, ובבחינה כיצד המערכת הגיבה לחבילת מידע מיוחדת, כדוגמת חבילת עץ חג המולד, ניתן להעריך את סוג מערכת ההפעלה. לדוגמה כלי nmap נעזר בכך (בפעולה הידועה כ־Xmas scan) לזיהוי גרסאות שונות של חלונות, מערכות של סיסקו ו-BSD/OS, שפועלות באופן שונה מהתקן לחבילות כאלו.
שימוש נוסף בחבילות עץ חג המולד הוא לצורך התקפות מניעת שירות, כיוון שהטיפול בחבילות מידע מיוחדות מצריך לרוב זמן עיבוד רב יותר ביחס לחבילות מידע רגילות.
חבילות עץ חג המולד ניתנות לגילוי בקלות באמצעות מערכת לגילוי חדירות או חומת אש.