อ่าน 8 นาที
แพ็กเก็ต IPv6
แพ็กเก็ต IPv6เป็นหน่วยข้อความที่เล็กที่สุดที่แลกเปลี่ยนกันโดยใช้โปรโตคอลอินเทอร์เน็ตเวอร์ชัน 6 (IPv6) แพ็กเก็ตประกอบด้วยข้อมูลควบคุมสำหรับการกำหนดที่อยู่และการกำหนด เส้นทาง และ...
แพ็กเก็ต IPv6
แพ็กเก็ต IPv6เป็นหน่วยข้อความที่เล็กที่สุดที่แลกเปลี่ยนกันโดยใช้โปรโตคอลอินเทอร์เน็ตเวอร์ชัน 6 (IPv6) แพ็กเก็ตประกอบด้วยข้อมูลควบคุมสำหรับการกำหนดที่อยู่และการกำหนด เส้นทาง และ ข้อมูลผู้ใช้ ข้อมูลควบคุมในแพ็กเก็ต IPv6 แบ่งออกเป็นส่วนหัว คงที่ที่จำเป็น และส่วนหัวเพิ่มเติมที่ไม่จำเป็น ข้อมูลผู้ใช้ของแพ็กเก็ต IPv6 โดยทั่วไปจะเป็นดาตาแกรม หรือเซ็กเมนต์ของโปรโตคอล เลเยอร์การขนส่งระดับสูงแต่ก็อาจเป็นข้อมูลสำหรับเลเยอร์อินเทอร์เน็ต (เช่นICMPv6 ) หรือเลเยอร์ลิงก์ (เช่นOSPF ) แทนก็ได้
โดยทั่วไป แพ็กเก็ต IPv6 จะถูกส่งผ่านเลเยอร์ลิงก์ (เช่น ผ่านอีเธอร์เน็ตหรือWi-Fi ) ซึ่งจะห่อหุ้มแต่ละแพ็กเก็ตไว้ในเฟรมนอกจากนี้ แพ็กเก็ตอาจถูกส่งผ่านโปรโตคอลการส่งข้อมูลแบบอุโมงค์ใน เลเยอร์ที่สูงกว่า เช่นIPv4เมื่อใช้เทคโนโลยีการเปลี่ยนผ่าน 6to4หรือTeredo
ตรงกันข้ามกับ IPv4 เราเตอร์จะไม่แบ่งแพ็กเก็ต IPv6 ที่มีขนาดใหญ่กว่าหน่วยการส่งข้อมูลสูงสุด (MTU) ซึ่งเป็นความรับผิดชอบของโหนดต้นทางแต่เพียงผู้เดียวIPv6 กำหนดให้มี MTU ขั้นต่ำ 1,280 ไบต์ แต่ โฮสต์ "แนะนำอย่างยิ่ง" ให้ใช้Path MTU Discoveryเพื่อใช้ประโยชน์จาก MTU ที่มากกว่าขั้นต่ำ[ 1 ]
ตั้งแต่เดือนกรกฎาคม พ.ศ. 2560 หน่วยงาน Internet Assigned Numbers Authority (IANA) มีหน้าที่รับผิดชอบในการลงทะเบียนพารามิเตอร์ IPv6 ทั้งหมดที่ใช้ในส่วนหัวของแพ็กเก็ต IPv6 [ 1 ]
ส่วนหัวคงที่
ส่วนหัวคงที่เริ่มต้นแพ็กเก็ต IPv6 และมีขนาด 40 ไบต์ (320 บิต ) [ 1 ]ไบต์ของฟิลด์หลายไบต์อยู่ในลำดับไบต์เครือข่าย
| ออฟเซ็ต | อ็อกเท็ต | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| อ็อกเท็ต | นิดหน่อย | 0 | 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 |
| 0 | 0 | เวอร์ชั่น | คลาสจราจร | ฉลากการไหล | |||||||||||||||||||||||||||||
| 4 | 32 | ความยาวของน้ำหนักบรรทุก | ส่วนหัวถัดไป | ขีดจำกัดการกระโดด | |||||||||||||||||||||||||||||
| 8 | 64 | ที่อยู่แหล่งที่มา | |||||||||||||||||||||||||||||||
| 12 | 96 | ||||||||||||||||||||||||||||||||
| 16 | 128 | ||||||||||||||||||||||||||||||||
| 20 | 160 | ||||||||||||||||||||||||||||||||
| 24 | 192 | ที่อยู่ปลายทาง | |||||||||||||||||||||||||||||||
| 28 | 224 | ||||||||||||||||||||||||||||||||
| 32 | 256 | ||||||||||||||||||||||||||||||||
| 36 | 288 | ||||||||||||||||||||||||||||||||
- เวอร์ชัน: 4 บิต
- ค่าคงที่ 6 (ลำดับบิต0110 )
- ประเภทการรับส่งข้อมูล: 6+2 บิต
- บิตของฟิลด์นี้เก็บค่าสองค่า บิตที่มีนัยสำคัญที่สุดหกบิตเก็บฟิลด์บริการที่แตกต่างกัน (ฟิลด์ DS) ซึ่งใช้ในการจำแนกแพ็กเก็ต[ 2 ] [ 3 ]ปัจจุบัน ฟิลด์ DS มาตรฐานทั้งหมดจะลงท้ายด้วยบิต '0' ฟิลด์ DS ใดๆ ที่ลงท้ายด้วยบิต '1' สองบิตมีไว้สำหรับการใช้งานในพื้นที่หรือเพื่อการทดลอง[ 4 ]บิตที่เหลืออีกสองบิตใช้สำหรับการแจ้งเตือนความแออัดแบบชัดเจน (ECN) [ 5 ]ค่าลำดับความสำคัญจะแบ่งออกเป็นช่วงต่างๆ ได้แก่ ทราฟฟิกที่แหล่งที่มามีการควบคุมความแออัด และทราฟฟิกที่ไม่มีการควบคุมความแออัด
- ป้ายกำกับการไหล: 20 บิต
- ตัวระบุเอนโทรปีสูงของการไหลของแพ็กเก็ตระหว่างแหล่งที่มาและปลายทาง การไหลคือกลุ่มของแพ็กเก็ต เช่น เซสชัน TCP หรือสตรีมสื่อ ป้ายกำกับการไหลพิเศษ 0 หมายความว่าแพ็กเก็ตนั้นไม่ได้เป็นของการไหลใดๆ (โดยใช้รูปแบบนี้) รูปแบบเก่ากว่าระบุการไหลโดยใช้ที่อยู่และพอร์ตต้นทาง ที่อยู่และพอร์ตปลายทาง และโปรโตคอล (ค่าของ ฟิลด์ Next Header สุดท้าย ) [ 6 ] นอกจากนี้ยังมีการเสนอแนะให้ใช้ป้ายกำกับการไหลเพื่อช่วยตรวจจับแพ็กเก็ตปลอม[ 7 ]
- ความยาวของข้อมูลที่ส่ง: 16 บิต
- ขนาดของเพย์โหลดในหน่วยอ็อกเท็ต รวมทั้งส่วนหัวส่วนขยาย ความยาวจะถูกตั้งค่าเป็นศูนย์เมื่อ ส่วนหัวส่วนขยาย Hop-by-HopมีตัวเลือกJumbo Payload [ 8 ]
- ส่วนหัวถัดไป: 8 บิต
- ระบุประเภทของส่วนหัวถัดไป โดยปกติฟิลด์นี้จะระบุ โปรโตคอล เลเยอร์การขนส่งที่ใช้โดยเพย์โหลดของแพ็กเก็ต เมื่อมีส่วนหัวเพิ่มเติมอยู่ในแพ็กเก็ต ฟิลด์นี้จะระบุว่าส่วนหัวเพิ่มเติมใดตามมา ค่าในฟิลด์นี้จะใช้ร่วมกับค่าที่ใช้ในฟิลด์โปรโตคอล IPv4 เนื่องจากทั้งสองฟิลด์มีฟังก์ชันเดียวกัน (ดูรายชื่อหมายเลขโปรโตคอล IP )
- ขีดจำกัดการกระโดด: 8 บิต
- ใช้แทน ฟิลด์ เวลาในการคงอยู่ (Time to Live)ใน IPv4 ค่านี้จะลดลงทีละหนึ่งที่แต่ละโหนดส่งต่อ และแพ็กเก็ตจะถูกทิ้งหากค่าเป็น 0 อย่างไรก็ตาม โหนดปลายทางควรประมวลผลแพ็กเก็ตตามปกติแม้ว่าจะได้รับแพ็กเก็ตที่มีขีดจำกัดจำนวนฮอปเป็น 0 ก็ตาม
- ที่อยู่ต้นทาง: 128 บิต
- ที่อยู่ IPv6แบบ unicast ของโหนดผู้ส่ง
- ที่อยู่ปลายทาง: 128 บิต
- ที่อยู่ IPv6 แบบ unicast หรือ multicast ของโหนดปลายทาง
เพื่อเพิ่มประสิทธิภาพ และเนื่องจาก เทคโนโลยี เลเยอร์ลิงก์และโปรโตคอลเลเยอร์การขนส่งในปัจจุบันถือว่ามีการตรวจจับข้อผิดพลาดที่เพียงพอ[ 9 ]ส่วนหัวจึงไม่มีการตรวจสอบผลรวมเพื่อป้องกัน[ 1 ]
ส่วนหัวส่วนขยาย
ส่วนหัวส่วนขยายจะบรรจุ ข้อมูล เลเยอร์อินเทอร์เน็ต ที่เป็นตัวเลือก และจะอยู่ระหว่างส่วนหัวคงที่และส่วนหัวโปรโตคอลเลเยอร์บน[ 1 ]ส่วนหัวส่วนขยายจะสร้างเป็นลูกโซ่โดยใช้ฟิลด์ ส่วนหัว ถัดไป ฟิลด์ ส่วนหัวถัดไปในส่วนหัวคงที่ระบุประเภทของส่วนหัวส่วนขยายแรก ฟิลด์ส่วน หัวถัดไปของส่วนหัวส่วนขยายสุดท้ายระบุประเภทของส่วนหัวโปรโตคอลเลเยอร์บนในเพย์โหลดของแพ็กเก็ต ส่วนหัวส่วนขยายทั้งหมดมีขนาดเป็นจำนวนเท่าของ 8 ไบต์ ส่วนหัวส่วนขยายบางส่วนจำเป็นต้องมีการเติมภายในเพื่อให้ตรงตามข้อกำหนดนี้
มีการกำหนดส่วนหัวส่วนขยายหลายรายการ และอาจมีการกำหนดส่วนหัวส่วนขยายใหม่ในอนาคต ส่วนหัวส่วนขยายส่วนใหญ่จะถูกตรวจสอบและประมวลผลที่ปลายทางของแพ็กเก็ตตัวเลือกแบบ Hop-by-Hopสามารถประมวลผลและแก้ไขได้โดยโหนดกลาง และหากมีอยู่ จะต้องเป็นส่วนขยายแรก ส่วนหัวส่วนขยายทั้งหมดเป็นตัวเลือกและควรปรากฏเพียงครั้งเดียว ยกเว้น ส่วนหัวส่วนขยาย ตัวเลือกปลายทางซึ่งอาจปรากฏสองครั้ง[ 1 ]
หากโหนดไม่รู้จักส่วนหัวส่วนขยายเฉพาะ โหนดนั้นควรทิ้งแพ็กเก็ตและส่ง ข้อความ ปัญหาพารามิเตอร์ ( ICMPv6ประเภท 4 รหัส 1) [ 1 ]
ส่วนหัวส่วนขยายที่กำหนดไว้ด้านล่างนี้เรียงลำดับตามลำดับที่ต้องการ ในกรณีที่มีส่วนหัวส่วนขยายมากกว่าหนึ่งรายการตามหลังส่วนหัวคงที่
| ส่วนหัวส่วนขยาย | ค่าฟิลด์ส่วนหัวถัดไป | คำอธิบาย |
|---|---|---|
| ตัวเลือกแบบทีละขั้นตอน | 0 | ตัวเลือกที่อุปกรณ์ทุกเครื่องในเส้นทางต้องตรวจสอบ |
| การกำหนดเส้นทาง | 43 | วิธีการกำหนดเส้นทางสำหรับดาตาแกรม (ใช้กับMobile IPv6 ) |
| เศษชิ้นส่วน | 44 | ประกอบด้วยพารามิเตอร์สำหรับการแบ่งส่วนข้อมูล (datagrams) |
| ส่วนหัวการตรวจสอบสิทธิ์ (AH) | 51 | ประกอบด้วยข้อมูลที่ใช้ในการตรวจสอบความถูกต้องของชิ้นส่วนส่วนใหญ่ในพัสดุ |
| การห่อหุ้มข้อมูลความปลอดภัย (ESP) | 50 | ส่งข้อมูลที่เข้ารหัสเพื่อการสื่อสารที่ปลอดภัย |
| ตัวเลือกปลายทาง (ก่อนส่วนหัวของเลเยอร์บนสุด) | 60 | ตัวเลือกที่จำเป็นต้องตรวจสอบโดยปลายทางของแพ็กเก็ตเท่านั้น |
| การเคลื่อนที่ (ปัจจุบันยังไม่มีส่วนหัวระดับบน) | 135 | พารามิเตอร์ที่ใช้กับMobile IPv6 |
| โปรโตคอลระบุตัวตนโฮสต์ | 139 | ใช้สำหรับโปรโตคอลระบุตัวตนโฮสต์เวอร์ชัน 2 (HIPv2) [ 10 ] |
| โปรโตคอล Shim6 | 140 | ใช้สำหรับShim6 [ 11 ] |
| ที่สงวนไว้ | 253 | ใช้สำหรับการทดลองและการทดสอบ[ 12 ] [ 4 ] |
| ที่สงวนไว้ | 254 | ใช้สำหรับการทดลองและการทดสอบ[ 12 ] [ 4 ] |
ค่า 59 (ไม่มีส่วนหัวถัดไป) ในฟิลด์ส่วนหัวถัดไปบ่งชี้ว่าไม่มีส่วนหัวถัดไปใดๆ ต่อจากส่วนหัวนี้เลย แม้แต่ส่วนหัวของโปรโตคอลระดับบนก็ตาม หมายความว่า จากมุมมองของส่วนหัว แพ็กเก็ต IPv6 จะสิ้นสุดลงทันทีหลังจากนั้น: เพย์โหลดควรว่างเปล่า อย่างไรก็ตาม อาจยังมีข้อมูลอยู่ในเพย์โหลดหากความยาวของเพย์โหลดในส่วนหัวแรกของแพ็กเก็ตมากกว่าความยาวของส่วนหัวส่วนขยายทั้งหมดในแพ็กเก็ต ข้อมูลนี้ควรถูกละเลยโดยโฮสต์ แต่จะถูกส่งผ่านโดยไม่เปลี่ยนแปลงโดยเราเตอร์[ 1 ] : 4.7
ตัวเลือกการเดินทางแบบต่อเครื่องและตัวเลือกจุดหมายปลายทาง
ส่วน หัวส่วนขยาย Hop-by-Hop Optionsสามารถตรวจสอบและเปลี่ยนแปลงได้โดยทุกโหนดบนเส้นทางของแพ็กเก็ต รวมถึงโหนดผู้ส่งและผู้รับ (สำหรับการตรวจสอบความถูกต้อง ค่าตัวเลือกที่อาจเปลี่ยนแปลงไปตามเส้นทางจะถูกละเว้น) ส่วนหัวส่วนขยาย Destination Optionsจำเป็นต้องได้รับการตรวจสอบโดยโหนดปลายทางเท่านั้น ส่วนหัวส่วนขยายทั้งสองมีขนาดอย่างน้อย 8 ไบต์ หากมีตัวเลือกมากกว่าที่สามารถใส่ลงในพื้นที่นั้นได้ บล็อกขนาด 8 ไบต์ที่มีตัวเลือกและส่วนเติมเต็มจะถูกเพิ่มเข้าไปในส่วนหัวซ้ำๆ จนกว่าจะแสดงตัวเลือกทั้งหมด
| ออฟเซ็ต | อ็อกเท็ต | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| อ็อกเท็ต | นิดหน่อย | 0 | 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 |
| 0 | 0 | ส่วนหัวถัดไป | ความยาวส่วนขยายส่วนหัว | ตัวเลือกและการเว้นระยะ | |||||||||||||||||||||||||||||
| 4 | 32 | ตัวเลือกและการเว้นระยะ | |||||||||||||||||||||||||||||||
| 8 | 64 | ตัวเลือกเสริม: ตัวเลือกเพิ่มเติมและระยะห่าง | |||||||||||||||||||||||||||||||
| 12 | 96 | ||||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
- ส่วนหัวถัดไป: 8 บิต
- ระบุประเภทของส่วนหัวถัดไป
- ความยาวของส่วนขยายส่วนหัว: 8 บิต
- ความยาวของส่วนหัวนี้เป็นหน่วย 8 ไบต์ โดยไม่รวม 8 ไบต์แรก
- ตัวเลือกและการเว้นระยะ: ปรับเปลี่ยนได้
- ประกอบด้วยตัวเลือกอย่างน้อยหนึ่งรายการ และช่องเติมข้อมูลเสริมเพื่อจัดแนวตัวเลือกและทำให้ความยาวส่วนหัวทั้งหมดเป็นจำนวนเท่าของ 8 ไบต์ ตัวเลือกจะถูกเข้ารหัสแบบTLV
การกำหนดเส้นทาง
ส่วน หัวส่วน ขยายการกำหนดเส้นทางใช้เพื่อกำหนดทิศทางแพ็กเก็ตไปยังโหนดกลางหนึ่งโหนดหรือมากกว่าก่อนที่จะส่งไปยังปลายทาง ส่วนหัวมีขนาดอย่างน้อย 8 ไบต์ หาก ต้องการ ข้อมูลเฉพาะประเภทมากกว่าที่จะพอดีกับ 4 ไบต์ จะมีการเพิ่มบล็อกขนาด 8 ไบต์ลงในส่วนหัวซ้ำ ๆ จนกว่าจะใส่ข้อมูลเฉพาะประเภท ทั้งหมด [ 1 ]
| ออฟเซ็ต | อ็อกเท็ต | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| อ็อกเท็ต | นิดหน่อย | 0 | 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 |
| 0 | 0 | ส่วนหัวถัดไป | ความยาวส่วนขยายส่วนหัว | ประเภทการกำหนดเส้นทาง | ส่วนที่เหลือ | ||||||||||||||||||||||||||||
| 4 | 32 | ข้อมูลเฉพาะประเภท | |||||||||||||||||||||||||||||||
| 8 | 64 | ตัวเลือกเสริม: ข้อมูลเฉพาะประเภทเพิ่มเติม... | |||||||||||||||||||||||||||||||
| 12 | 96 | ||||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
- ส่วนหัวถัดไป: 8 บิต
- ระบุประเภทของส่วนหัวถัดไป
- ความยาวของส่วนขยายส่วนหัว: 8 บิต
- ความยาวของส่วนหัวนี้เป็นจำนวนเท่าของ 8 ไบต์ โดยไม่รวม 8 ไบต์แรก
- ประเภทการกำหนดเส้นทาง: 8 บิต
- ค่าระหว่าง 0 ถึง 255 ตามที่IANAกำหนด[ 13 ]
พิมพ์ สถานะ ความคิดเห็น 0 เลิกใช้แล้ว เนื่องจากความจริงที่ว่าด้วยส่วนหัวการกำหนดเส้นทางประเภท 0 สามารถโจมตีแบบปฏิเสธการให้บริการที่ เรียบง่ายแต่มีประสิทธิภาพได้ [ 14 ]ส่วนหัวนี้จึงถูกยกเลิกในปี 2550 และโฮสต์และเราเตอร์จำเป็นต้องเพิกเฉยต่อส่วนหัวเหล่านี้[ 15 ] 1 เลิกใช้แล้ว ใช้สำหรับโครงการ Nimrod [ 16 ]ที่ได้รับทุนจากDARPAถูกยกเลิกการใช้งานในปี 2009 2 อนุญาต เป็นเวอร์ชันจำกัดของประเภท 0 และใช้สำหรับMobile IPv6ซึ่งสามารถเก็บที่อยู่บ้านของอุปกรณ์เคลื่อนที่ได้ 3 อนุญาต ส่วนหัวเส้นทางแหล่งที่มาของ RPL [ 17 ]สำหรับเครือข่ายพลังงานต่ำและมีการสูญเสีย 4 อนุญาต ส่วนหัวการกำหนดเส้นทางเซกเมนต์ (SRH) [ 18 ] 253 สำหรับการใช้งานส่วนตัว อาจใช้สำหรับการทดสอบ ไม่ใช่สำหรับการใช้งานจริงการทดลองแบบ RFC3692 ครั้งที่ 1 [ 12 ] 254 สำหรับการใช้งานส่วนตัว อาจใช้สำหรับการทดสอบ ไม่ใช่สำหรับการใช้งานจริงการทดลองแบบ RFC3692 ครั้งที่ 2 [ 12 ]
- เซ็กเมนต์ด้านซ้าย: 8 บิต
- จำนวนโหนดที่แพ็กเก็ตนี้ยังต้องผ่านก่อนที่จะถึงปลายทางสุดท้าย
- ข้อมูลเฉพาะประเภท: ตัวแปร
- ข้อมูลที่อยู่ในส่วนหัวการกำหนดเส้นทางประเภทนี้
เศษชิ้นส่วน
เพื่อส่งแพ็กเก็ตที่มีขนาดใหญ่กว่าMTU ของเส้นทาง โหนดผู้ส่งจะแบ่งแพ็กเก็ตออกเป็นส่วนย่อย ส่วน หัวส่วน ขยายส่วนย่อยจะบรรจุข้อมูลที่จำเป็นในการประกอบแพ็กเก็ตเดิม (ที่ไม่ถูกแบ่งส่วน) กลับคืนมา[ 1 ]
| ออฟเซ็ต | อ็อกเท็ต | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| อ็อกเท็ต | นิดหน่อย | 0 | 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 |
| 0 | 0 | ส่วนหัวถัดไป | ที่สงวนไว้ | ออฟเซ็ตส่วนย่อย | เรส | เอ็ม | |||||||||||||||||||||||||||
| 4 | 32 | การระบุตัวตน | |||||||||||||||||||||||||||||||
- ส่วนหัวถัดไป: 8 บิต
- ระบุประเภทของส่วนหัวถัดไป
- สงวนไว้: 8 บิต; สงวนไว้ == 0
- กำหนดค่าเริ่มต้นเป็นศูนย์ทั้งหมด
- ระยะห่างของส่วนย่อย: 13 บิต
- ค่าออฟเซ็ต ในหน่วย 8 ไบต์ เทียบกับจุดเริ่มต้นของส่วนที่สามารถแยกย่อยได้ของแพ็กเก็ตดั้งเดิม
- Reserved2 (Res): 2 บิต; Res == 0
- สงวนสิทธิ์ไว้ และกำหนดค่าเริ่มต้นเป็นศูนย์
- ธง M (M): 1 บิต
- 1 หมายถึงมีชิ้นส่วนเพิ่มเติมตามมา; 0 หมายถึงชิ้นส่วนสุดท้าย
- รหัสประจำตัว: 32 บิต
- ค่าระบุแพ็กเก็ตที่สร้างโดยโหนดต้นทาง จำเป็นสำหรับการประกอบแพ็กเก็ตเดิมขึ้นใหม่
ส่วนหัวการตรวจสอบสิทธิ์ (Authentication Header: AH) และส่วนข้อมูลความปลอดภัยที่ห่อหุ้ม (Encapsulating Security Payload: ESP)
ส่วนหัวการตรวจสอบสิทธิ์และเพย์โหลดความปลอดภัยที่ห่อหุ้มเป็นส่วนหนึ่งของIPsecและถูกใช้เหมือนกันใน IPv6 และ IPv4 [ 19 ] [ 20 ]
เพย์โหลด
ส่วนหัว IPv6 แบบคงที่และแบบเลือกได้จะตามด้วยส่วนข้อมูลระดับบนซึ่งเป็นข้อมูลที่จัดเตรียมโดยเลเยอร์การขนส่ง เช่น เซ็กเมนต์ TCPหรือดาตาแกรมUDP ฟิลด์ Next Headerในส่วนหัว IPv6 สุดท้ายจะระบุประเภทของข้อมูลที่อยู่ในแพ็กเก็ตนี้
ความยาวมาตรฐานของน้ำหนักบรรทุก
ฟิลด์ความยาวเพย์โหลดของ IPv6 (และIPv4 ) มีขนาด 16 บิต สามารถระบุความยาวสูงสุดได้65,535 ไบต์สำหรับเพย์โหลด ในทางปฏิบัติ โฮสต์จะกำหนดความยาวเพย์โหลดที่ใช้งานได้สูงสุดโดยใช้ Path MTU Discovery (ซึ่งจะให้ ค่า MTUขั้นต่ำตามเส้นทางจากผู้ส่งไปยังผู้รับ) เพื่อหลีกเลี่ยงการแบ่งแพ็กเก็ต โปรโตคอลระดับลิงก์ส่วนใหญ่มีค่า MTU ที่เล็กกว่านี้มาก65,535 อ็ อกเท็ต
จัมโบแกรม
คุณสมบัติเสริมของ IPv6 ตัวเลือก เพย์โหลดจัมโบ้ในส่วนหัวส่วนขยายHop-By-Hop Options [ 8 ]อนุญาตให้แลกเปลี่ยนแพ็กเก็ตที่มีเพย์โหลดไม่เกิน 1 อ็อกเท็ตน้อยกว่า 4 GB (2 32 − 1 = 4,294,967,295 ไบต์ ) โดยใช้ฟิลด์ความยาว 32 บิต แพ็กเก็ตที่มีเพย์โหลดดังกล่าวเรียกว่าจัมโบแกรม
เนื่องจากทั้งTCPและUDPมีฟิลด์ที่จำกัดไว้ที่ 16 บิต (ความยาว, ตัวชี้ข้อมูลเร่งด่วน) การรองรับจัมโบแกรม IPv6 จึงต้องมีการปรับเปลี่ยนการใช้งานโปรโตคอลเลเยอร์การขนส่ง[ 8 ]จัมโบแกรมมีความเกี่ยวข้องเฉพาะกับลิงก์ที่มีMTUใหญ่กว่า65,583 อ็อกเท็ ต (มากกว่า(แพ็กเก็ตข้อมูลมีขนาด 65,535ไบต์สำหรับส่วนข้อมูลหลัก บวกกับ 40 ไบต์ สำหรับส่วนหัวคงที่ และ 8 ไบต์ สำหรับ ส่วนหัวขยายแบบ Hop-by-Hop ) มีเพียงไม่กี่โปรโตคอลระดับลิงก์เลเยอร์เท่านั้นที่สามารถประมวลผลแพ็กเก็ตที่มีขนาดใหญ่กว่านี้ได้65,535 อ็ อกเท็ต
การแตกแยก
ต่างจากใน IPv4 เราเตอร์ IPv6 จะไม่แบ่งแพ็กเก็ต IPv6 ออกเป็นส่วนย่อย แพ็กเก็ตที่มีขนาดเกินหน่วยการส่งสูงสุด (MTU) ของลิงก์ปลายทางจะถูกทิ้ง และสภาวะนี้จะถูกส่งสัญญาณโดย ข้อความ ICMPv6 " Packet too big" ไปยังโหนดต้นทาง คล้ายกับวิธีการของ IPv4 เมื่อตั้งค่าบิต"Don't Fragment" [ 1 ]โหนดปลายทางใน IPv6 คาดว่าจะทำการค้นหา Path MTUเพื่อกำหนดขนาดสูงสุดของแพ็กเก็ตที่จะส่ง และโปรโตคอลระดับบนคาดว่าจะจำกัดขนาดของเพย์โหลด หากโปรโตคอลระดับบนไม่สามารถทำได้ โฮสต์ผู้ส่งอาจใช้ส่วนหัวส่วนขยายFragmentแทน
เลเยอร์ดาต้าลิงก์ใดๆที่ส่งข้อมูล IPv6 จะต้องสามารถส่งแพ็กเก็ต IP ที่มีขนาดไม่เกิน 1,280 ไบต์ได้ ดังนั้น ปลายทางผู้ส่งจึงสามารถจำกัดขนาดแพ็กเก็ตของตนไว้ที่ 1,280 ไบต์ และหลีกเลี่ยงความจำเป็นในการแบ่งส่วนแพ็กเก็ตหรือการค้นหา Path MTU ได้
การแตกเป็นชิ้นเล็กชิ้นน้อย
แพ็กเก็ตที่บรรจุส่วนแรกของแพ็กเก็ตดั้งเดิม (ขนาดใหญ่กว่า) ประกอบด้วยห้าส่วน ได้แก่ ส่วนหัวต่อส่วน (ส่วนหัวดั้งเดิมที่สำคัญซึ่งใช้ซ้ำในแต่ละส่วน) ตามด้วย ส่วนหัวส่วนขยาย ของส่วนที่มีออฟเซ็ตเป็นศูนย์ จากนั้นส่วนหัวส่วนขยายดั้งเดิมที่เหลือทั้งหมด จากนั้นส่วนหัวเลเยอร์บนดั้งเดิม (หรือส่วนหัว ESP) และส่วนหนึ่งของเพย์โหลดดั้งเดิม[ 1 ]แพ็กเก็ตถัดไปแต่ละแพ็กเก็ตประกอบด้วยสามส่วน ได้แก่ ส่วนหัวต่อส่วน ตามด้วย ส่วนหัวส่วนขยาย ของส่วนและส่วนหนึ่งของเพย์โหลดดั้งเดิมตามที่ระบุโดยออฟเซ็ตของส่วน
ส่วนหัวของแต่ละส่วนย่อยจะถูกกำหนดโดยพิจารณาว่าส่วนหัวต้นฉบับมี ส่วนหัวส่วนขยาย RoutingหรือHop-by-Hopหรือไม่ หากไม่มีส่วนหัวใดส่วนหนึ่ง ส่วนหัวของแต่ละส่วนย่อยจะเป็นเพียงส่วนหัวคงที่ หาก มีส่วนหัวส่วน ขยาย Routingส่วนหัวของแต่ละส่วนย่อยจะรวมถึงส่วนหัวคงที่และส่วนหัวส่วนขยายทั้งหมดจนถึงส่วน หัว Routingหาก มีส่วนหัวส่วนขยาย Hop-by-Hopส่วนหัวของแต่ละส่วนย่อยจะประกอบด้วยส่วนหัวคงที่และส่วนหัวส่วนขยาย Hop-by-Hop เท่านั้น
ไม่ว่าในกรณีใด ส่วนหัวสุดท้ายของส่วนต่อแฟรกเมนต์จะมี ค่า Next Headerตั้งไว้ที่44เพื่อระบุว่า มีส่วนหัวส่วนขยาย แฟรกเมนต์ ตามมา ส่วนหัวส่วนขยายแฟรกเมนต์แต่ละส่วน จะมีแฟล็ก Mตั้งไว้ที่1 (แสดงว่ามีแฟรกเมนต์เพิ่มเติมตามมา) ยกเว้นส่วนสุดท้ายซึ่งแฟล็กตั้งไว้ที่0ความยาวของแต่ละแฟรกเมนต์เป็นจำนวนเท่าของ 8 ไบต์ ยกเว้นแฟรกเมนต์สุดท้าย (ซึ่งอาจเป็นจำนวนเต็ม)
ส่วนหัวต่อส่วนย่อยในอดีตเรียกว่า "ส่วนที่ไม่สามารถแบ่งย่อยได้" ซึ่งหมายถึงความเป็นไปได้ในการแบ่งย่อยส่วนที่เหลือของส่วนหัวก่อนปี 2014 ปัจจุบันไม่มีส่วนหัวใดที่สามารถแบ่งย่อยได้จริง[ 21 ]
การประกอบใหม่
โหนดผู้รับจะประกอบแพ็กเก็ตต้นฉบับขึ้นใหม่โดยการรวบรวมชิ้นส่วนทั้งหมดและวางชิ้นส่วนแต่ละชิ้นไว้ที่ตำแหน่งออฟเซ็ตที่ระบุไว้ พร้อมทั้งตัด ส่วนหัวส่วน ขยายของแพ็กเก็ตที่บรรจุชิ้นส่วนเหล่านั้นออกไป แพ็กเก็ตที่มีชิ้นส่วนไม่จำเป็นต้องมาถึงตามลำดับ โหนดผู้รับจะทำการจัดเรียงใหม่เอง
หากไม่ได้รับชิ้นส่วนทั้งหมดภายใน 60 วินาทีหลังจากได้รับแพ็กเก็ตแรกที่มีชิ้นส่วน การประกอบแพ็กเก็ตเดิมจะถูกยกเลิกและชิ้นส่วนทั้งหมดจะถูกทิ้ง หากได้รับชิ้นส่วนแรกแล้ว (ซึ่งมีส่วนหัวคงที่) และชิ้นส่วนอื่น ๆ หายไปอย่างน้อยหนึ่งชิ้นข้อความTime Exceeded ( ICMPv6ประเภท 3 รหัส 1) จะถูกส่งกลับไปยังโหนดที่ส่งแพ็กเก็ตที่มีชิ้นส่วนนั้นมา
เมื่อโหนดประกอบใหม่ตรวจพบส่วนย่อยที่ทับซ้อนกับส่วนย่อยอื่น การประกอบแพ็กเก็ตเดิมจะถูกยกเลิกและส่วนย่อยทั้งหมดจะถูกทิ้ง โหนดอาจเลือกที่จะเพิกเฉยต่อส่วนที่ซ้ำกันอย่างแม่นยำแทนที่จะถือว่าส่วนที่ซ้ำกันอย่างแม่นยำนั้นทับซ้อนกัน[ 1 ]
โฮสต์ผู้รับต้องพยายามอย่างเต็มที่ในการประกอบข้อมูล IP ที่แตกเป็นส่วนๆ ซึ่งหลังจากประกอบแล้วจะมีขนาดไม่เกิน 1500 ไบต์ โฮสต์ได้รับอนุญาตให้พยายามประกอบข้อมูลที่มีขนาดใหญ่กว่า 1,500 ไบต์ แต่ก็ได้รับอนุญาตให้ทิ้งข้อมูลนั้นโดยไม่แจ้งให้ทราบล่วงหน้าหากเห็นได้ชัดว่าแพ็กเก็ตที่ประกอบใหม่แล้วจะมีขนาดใหญ่กว่า 1,500 ไบต์ ดังนั้น ผู้ส่งควรหลีกเลี่ยงการส่งข้อมูล IP ที่แตกเป็นส่วนๆ ซึ่งมีขนาดรวมหลังจากประกอบใหม่แล้วใหญ่กว่า 1,500 ไบต์ เว้นแต่จะทราบว่าผู้รับสามารถประกอบข้อมูลขนาดใหญ่ดังกล่าวได้
ความปลอดภัย
งานวิจัยแสดงให้เห็นว่าการใช้การแบ่งส่วนสามารถนำมาใช้เพื่อหลีกเลี่ยง การควบคุม ความปลอดภัยของเครือข่ายได้ ส่งผลให้ในปี 2014 การอนุญาตให้มีการล้นของห่วงโซ่ส่วนหัว IPv6 เกินกว่าส่วนแรกถูกห้ามเพื่อหลีกเลี่ยงกรณีการแบ่งส่วนที่ผิดปกติบางกรณี[ 21 ]นอกจากนี้ จากผลการวิจัยเกี่ยวกับการหลีกเลี่ยงRouter Advertisement Guard [ 22 ] การใช้การแบ่งส่วนกับNeighbor Discoveryจึงถูกยกเลิก และการใช้การแบ่งส่วนกับSecure Neighbor Discovery (SEND) ก็ไม่แนะนำ[ 23 ]
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แพ็กเก็ต IPv6
แพ็กเก็ต IPv6เป็นหน่วยข้อความที่เล็กที่สุดที่แลกเปลี่ยนกันโดยใช้โปรโตคอลอินเทอร์เน็ตเวอร์ชัน 6 (IPv6) แพ็กเก็ตประกอบด้วยข้อมูลควบคุมสำหรับการกำหนดที่อยู่และการกำหนด เส้นทาง และ...
ส่วนหัวคงที่
ส่วนหัวคงที่เริ่มต้นแพ็กเก็ต IPv6 และมีขนาด 40 ไบต์ (320 บิต ) [ 1 ] ไบต์ของฟิลด์หลายไบต์อยู่ใน ลำดับไบต์เครือ ข่าย
ส่วนหัวส่วนขยาย
ส่วนหัวส่วนขยายจะบรรจุ ข้อมูล เลเยอร์อินเทอร์เน็ต ที่เป็นตัวเลือก และจะอยู่ระหว่างส่วนหัวคงที่และส่วนหัวโปรโตคอลเลเยอร์บน [ 1 ] ส่วนหัวส่วนขยายจะสร้างเป็นลูกโซ่โดยใช้ฟิลด์ ส่วนหัว ถัดไป ฟิลด์ ส่วนหัวถัดไป ในส่วนหัวคงที่ระบุประเภทของส่วนหัวส่วนขยายแรก...
ตัวเลือกการเดินทางแบบต่อเครื่องและตัวเลือกจุดหมายปลายทาง
ส่วน หัวส่วนขยาย Hop-by-Hop Options สามารถตรวจสอบและเปลี่ยนแปลงได้โดยทุกโหนดบนเส้นทางของแพ็กเก็ต รวมถึงโหนดผู้ส่งและผู้รับ (สำหรับการตรวจสอบความถูกต้อง ค่าตัวเลือกที่อาจเปลี่ยนแปลงไปตามเส้นทางจะถูกละเว้น) ส่วนหัวส่วนขยาย Destination Options...