กลับไปหน้าบทความ

อ่าน 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 ]
โปรโตคอล Shim6140ใช้สำหรับ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 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=IPv6_packet&oldid=1341296000 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แพ็กเก็ต IPv6

แพ็กเก็ต IPv6เป็นหน่วยข้อความที่เล็กที่สุดที่แลกเปลี่ยนกันโดยใช้โปรโตคอลอินเทอร์เน็ตเวอร์ชัน 6 (IPv6) แพ็กเก็ตประกอบด้วยข้อมูลควบคุมสำหรับการกำหนดที่อยู่และการกำหนด เส้นทาง และ...

ส่วนหัวคงที่

ส่วนหัวคงที่เริ่มต้นแพ็กเก็ต IPv6 และมีขนาด 40 ไบต์ (320 บิต ) [ 1 ] ไบต์ของฟิลด์หลายไบต์อยู่ใน ลำดับไบต์เครือ ข่าย

ส่วนหัวส่วนขยาย

ส่วนหัวส่วนขยายจะบรรจุ ข้อมูล เลเยอร์อินเทอร์เน็ต ที่เป็นตัวเลือก และจะอยู่ระหว่างส่วนหัวคงที่และส่วนหัวโปรโตคอลเลเยอร์บน [ 1 ] ส่วนหัวส่วนขยายจะสร้างเป็นลูกโซ่โดยใช้ฟิลด์ ส่วนหัว ถัดไป ฟิลด์ ส่วนหัวถัดไป ในส่วนหัวคงที่ระบุประเภทของส่วนหัวส่วนขยายแรก...

ตัวเลือกการเดินทางแบบต่อเครื่องและตัวเลือกจุดหมายปลายทาง

ส่วน หัวส่วนขยาย Hop-by-Hop Options สามารถตรวจสอบและเปลี่ยนแปลงได้โดยทุกโหนดบนเส้นทางของแพ็กเก็ต รวมถึงโหนดผู้ส่งและผู้รับ (สำหรับการตรวจสอบความถูกต้อง ค่าตัวเลือกที่อาจเปลี่ยนแปลงไปตามเส้นทางจะถูกละเว้น) ส่วนหัวส่วนขยาย Destination Options...