วันพุธที่ 4 พฤศจิกายน พ.ศ. 2552

IP Hedder IPV4และIPV6

IPv6 Packet Format

- สิ่งที่ควรจะรู้เกี่ยวกับ IPv6 เป็นอย่างแรกก็คือ packet format ของ IPv6 ครับ.. เพราะ packet format ก็คือ data structure ที่บอกว่า IPv6 สามารถทำอะไรได้บ้าง.. IPv6 packet ประกอบด้วย header, extended header, แล้วก็ payload ครับ .. Header ของ IPv6 ออกแบบมาให้มีขนาดคงที่และมีรูปแบบที่ง่ายที่สุดเท่าที่จะทำได้ โดย header จะประกอบด้วย field จำเป็นต้องใช้ในการ process packet ที่ทุกๆ router เท่านั้น พวก options ต่างๆ ที่อาจจะ process เฉพาะที่ต้น/ปลายทาง หรือ ที่ router บางตัวจะแยกออกมาไว้ที่ extended header แทน .. รายละเอียดของ extended header เดี๋ยวว่ากันในหัวข้อ extended header ละกันนะครับ.. ตอนนี้เรามาดูที่ header ของ IPv6 กันก่อน..

Extended Headers
- มาถึง extended header กันบ้าง .. จากเหตุผลข้างบนที่ย้ายหลายๆ field มาเป็น extended header ทำให้ IPv6 มี extended header หลายๆ แบบเลยครับ แต่ละแบบก็เอาไว้ใช้ทำงานเฉพาะอย่างเพียงงานเดียว ..ใน 1 packet เราสามารถใช้ extended header ได้มากกว่า 1 อัน ดังนั้น เราจึงขอ service จาก IPv6 ได้มากกว่า 1 อย่าง .. IPv6 specification ล่าสุดกำหนดให้มี extended header อยู่ 6 แบบ ทุกแบบจะขึ้นต้นด้วย field "Next Header" เสมอ เพื่อระบุว่า extended header อันถัดเป็นชนิดไหน..
> Hop-by-Hop Options: เป็น option ที่ระบุให้ทุก router ที่อยู่ในเส้นทางระหว่างต้น/ปลายทางจะต้องทำตาม ตอนนี้ใน IPv6 specification มี option อยู่เพียงสองอัน คือ Jumbogram options สำหรับให้ IPv6 packet มีขนาดใหญ่กว่า 65535 octets ได้ ขนาดของ jumbogram สูงสุดคือ 2^32 octets (4,294,967,295 octets) เชียวล่ะครับ..อีก option นึงเอาไว้ทำ padding
> Routing: ใช้สำหรับทำ source routing ครับ.. คือต้นทางสามารถระบุเส้นทางที่ packet ต้องผ่านได้ โดย list เป็น router ที่ต้องส่ง packet ผ่านไปจนถึงปลายทาง.. Source routing ของ IPv6 สามารถระบุแต่ละ router ใน list ได้เลยว่าเป็น strict source routing หรือ loose source routing (หมายความว่าเราระบุ ทั้ง strict และ loose source routing ผสมกันได้) ซึ่งยืดหยุ่นมากกว่า source routing ของ IPv4 ที่จะบังคับว่า router ใน list ต้องเป็น strict หรือไม่ก็เป็น loose source routing ทั้งหมด
> Fragment: ใช้สำหรับทำ fragmentation เหมือนของ IPv4 แต่ที่ต่างกันก็คือ IPv6 จะมี function สำหรับหา path MTU ไว้อยู่แล้วเพื่อจะได้รู้ว่าขนาด Maximum Transfer Unit ที่เหมาะสมของ path นั้นๆ มีค่าเป็นเท่าไหร่ ดังนั้นการทำ fragmentation จึงทำที่ source node เท่านั้น (IPv4 จะทำ fragmentation ทั้งที่ source node และ router)> Destination Options: ใช้งานคล้ายๆ กับ Hop-by-Hop option ครับ แต่จะเป็น option สำหรับปลายทางเท่านั้น.. ตอนนี้มีเพียง option เดียว คือเอาไว้ทำ padding > Authentication: อันนี้ชื่อก็บอกอยู่แล้ว..ใช้สำหรับทำ authentication รายละเอียดจะอยู่ในเรื่อง IP Security (IPSEC) เอาไว้ว่างๆ จะเขียนมาให้อ่านครับ ถ้าเอามารวมกับ IPv6 เดี๋ยวจะยาวเกินไป
> Encapsulated Security Payload: ใช้สำหรับทำ encryption และ cryptography อื่นๆ รายละเอียดก็จะอยู่ใน IP Security เหมือนกัน..
- Extended header มีอย่างมากไม่เกินแบบละ 1 อัน ยกเว้น destination option header ซึ่งอาจจะมีได้ 2 อัน..อืมม..ทีนี้พอมี extended header หลายๆ แบบอย่างนี้ก็ต้องมีลำดับการเรียง extended header ให้ถูกต้องด้วย...ถ้าใส่กันเต็มๆ ก็จะเรียงลำดับตามนี้:
1. IPv6 header
2. Hop-by-Hop Options header
3. Destination Options header
4. Routing header
5. Fragment header
6. Authentication header
7. Encapsulating Security Payload header
8. Destination Options header
9. Upper-layer header (e.g., TCP, UDP) - IPv6 header ได้ถูกออกแบบให้มีขนาด Header ลดน้อยลง โดยทำการย้ายฟิลด์ที่ไม่จำเป็น หรือที่เพิ่มออก โดยวางไว้หลัง IPv6 header และใช้การแจ้งเป็น Streamline header ซึ่งมีประสิทธิภาพในการดำเนินการติดต่อกับ Router ทันทีทันใด
- IPv4 header กับ IPv6 header ไม่สามารถใช้ง่ายร่วมกันได้ ซึ่งในการวางระบบทั้ง Ipv4 และ IPv6 ต้องทำทั้งคู่เพื่อให้รู้จักรูปแบบของ Header ซึ่ง Header ของ IPv6 ใหญ่กว่าของ IPv4 สองเท่า และตำแหน่งที่อยู่ใหญ่กว่าถึง 4 เท่า

ไม่มีความคิดเห็น: