3/11/2553

Overview of IPv6 VS IPv4

IPv6 (RFC 2373) ได้ถูกพัฒนาขึ้นมาเพื่อแก้ไขปัญหาหลายๆ อย่างของ IPv4 ที่เป็นมาตรฐานปัจจุบันในขณะนี้ และจะต้องทำงานร่วมกับ IPv4 เดิมให้ได้ด้วย โดยที่คุณสมบัติเด่นๆ ของ IPv6 ที่เพิ่มขึ้นมาจาก IPv4 นั้น สรุปได้อย่างคร่าวๆ จะมีดังต่อไปนี้

Overview of IPv6 VS IPv4

1. ขยายขนาดของ Address Space จากเดิม 32 บิท ไปเป็น 128 บิท ดัง ฟอร์แมทดังด้านล่างนี้

203.148.145.241 - IPv4

1080:0:0:0:8:800:200C:417A – IPv6

2. มีความสามารถมากขึ้นในการ Routing, Security, Quality of Services (QoS) ภายใน IP Header

3. รองรับการ Authentication

4. สนับสนุน Real Time Services

5. สนับสนุนการ Assign หมายเลข IP Address โดยอัตโนมัติ ในขณะที่ IPv4 ต้องพึ่งโปรโตคอลอื่นๆ เช่น DHCP เป็นต้น

6. ปรับปรุงความสามารถในการติดต่อในรูปแบบของ มัลติคาสท์ (Multicast)

IPv6 Header

ภายใน IPv6 Header นั้น จะสามารถแสดงรายละเอียดได้ดังนี้

Version

Traffic Class

Flow Label

Payload Length

Next Header

Hop Count

Source Address

Destination Address






IPv6 Header Packet

Version

Header

Type of Service

Total Length

Identification

Flag

Fragment Offset

TTL

Protocol

Checksum

Source Address

Destination Address

Options

Padding

IPv4 Header Packet

จากรูป IPv6 จะมีขนาด Header Packet คงที่ คือ 40 Bytes ในขณะที่ IPv4 นั้นมีขนาดตั้งแต่ 20 60 Bytes ซึ่ง รายละเอียดในจุดต่างๆ ของ Header ภายใน IPv6 ก็จะสามารถแสดงได้ดังนี้

ตำแหน่งที่ยังคงมีอยู่ภายใน IPv6 เมื่อเทียบกับ IPv4

  • Version ยังคงต้องมีเหมือนเดิม เพื่อใช้บอกว่า packet นี้เป็น IP version ใด ซึ่งกรณีของ IPv6 ค่าของ version ก็จะเป็น 6
  • Header length ถูกตัดออกไป เพราะขนาดของมันจะเป็น 40 Bytes เสมอ การกำหนดให้เป็น fixed length header ทำให้ประสิทธิภาพโดยรวมของการประมวลผล packet ดีขึ้น
  • Total Length แทนที่ด้วย Payload length เพื่อระบุขนาดของ payload ในหน่วย octet (byte) ดังนั้นขนาดของ payload สูงสุดจะเป็น 65535 Bytes
  • Identification, Flag, Segmentation, Protocol, Options, และ Padding ถูกย้ายไปอยู่ในส่วนของ extended header เพราะถือว่าเป็นส่วนที่ไม่จำเป็นต้อง process ในทุก router
  • Hop Limit ถูกใช้แทน Time-To-Live ของ IPv4 ... ตาม IPv4 specification TTL จะเก็บเป็นเวลาจริงๆ หน่วยเป็นวินาที โดยระบุว่าแต่ละ router ต้องลด TTL ลงอย่างน้อย 1 วินาที แม้ว่าจะใช้เวลาประมวลผล packet น้อยกว่านั้นก็ตาม
  • Next Header ซึ่งใช้เป็นตัวบอกว่า extended header ตัวถัดไปเป็น header ประเภทไหน

ตำแหน่งที่เพิ่มขึ้นมาของ IPv6 เมื่อเทียบกับ IPv4

  • Type of Service ของ IPv4 ถูกแทนที่ด้วย Traffic Class ซึ่งใช้ระบุว่า packet นี้อยู่ใน class ไหนและมีระดับความสำคัญเท่าไหร่ เพื่อที่ router จะได้จัด QoS DiffServ ในการส่ง packet ให้เหมาะสม
  • Flow label ใช้ระบุ end-to-end traffic flow ระหว่างต้นทางกับปลายทาง ใน application หนึ่งๆสามารถสร้าง flow ได้หลายๆ อัน อย่างเช่น video conference เราสามารถแยก flow ของภาพและเสียงออกจากกันได้ แม้ว่าจะเปิด socket ในการทำงานเพียง socket เดียว

ตำแหน่งที่ถูกตัดออกภายใน IPv6

  • Header Checksum ถูกตัดออกเพราะว่ามันซ้ำซ้อนกับ function ของ protocol บน layer ที่อยู่สูงกว่า IP อีกทั้งเป็นการเพิ่มประสิทธิภาพของการประมวลผล packet ด้วย เพราะ checksum ต้องคำนวณใหม่ที่ router เสมอ หากตัดออกก็จะลดภาระงานที่ router ได้

Extended Headers

เป็นตำแหน่งของโปรโตคอลที่ อาจถูกใช้แค่ในการประมวลผลของเราเตอร์ ต้นทาง หรือ ปลายทางเท่านั้น ดังนั้น เราจะไม่ใส่ Field เหล่านี้ไว้ใน Header ปกติ เนื่องจาก ต้องการที่จะลดการประมวลผลภายในตัวเราเตอร์ ดังนั้นจึงมีการขยายส่วนของ Header เหล่านี้ไปอยู่ใน “Extended Headers” ซึ่งใน 1 Packet เราสามารถใช้ Extended Header ได้มากกว่า 1 Header ดังนั้น เราจึงขอ service จาก IPv6 ได้มากกว่า 1 อย่าง IPv6 specification ล่าสุดกำหนดให้มี Extended Header อยู่ 6 แบบ ทุกแบบจะขึ้นต้นด้วย Field "Next Header" เสมอ เพื่อระบุว่า Extended Header อันถัดเป็นชนิดไหน

รายละเอียดพอสังเขปของ Extended Header

1. Hop-by-Hop: เป็น option ที่ระบุให้ทุก router ที่อยู่ในเส้นทางระหว่างต้น/ปลายทางจะต้องทำตาม เช่น Jumbogram options เพื่อให้ IPv6 packet มีขนาดใหญ่กว่า 65535 Bytes ได้ ขนาดของ Jumbogram สูงสุดคือ 2^32 Bytes

2. 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 ทั้งหมด

3. Fragment: ใช้สำหรับทำ fragmentation เหมือนของ IPv4 แต่ที่ต่างกันก็คือ IPv6 จะมี function สำหรับหา path MTU ไว้อยู่แล้วเพื่อจะได้รู้ว่าขนาด Maximum Transfer Unit ที่เหมาะสมของ path นั้นๆ มีค่าเป็นเท่าไหร่ ดังนั้นการทำ fragmentation จึงทำที่ source เท่านั้น (IPv4 จะทำ fragmentation ทั้งที่ source และ router)

4. Authentication: ใช้สำหรับทำ authentication รายละเอียดจะอยู่ในเรื่อง IP Security (IPSEC)

5. Encapsulated Security Payload: ใช้สำหรับทำ encryption และ cryptography อื่นๆ รายละเอียดจะอยู่ใน IP Security

รายละเอียดทั้งหมดของ Extended Headers

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 Addresses

IPv6 Address ถูกจัดสรรอย่างเป็นระบบมากขึ้นเพื่อลดปัญหาเรื่องของ Routing อย่างที่เคยเกิดกับ IPv4 นอกจากนี้ก็ยังแบ่ง Address ออกเป็นหลายประเภท เพื่อใช้ในลักษณะงานที่ต่างๆ กัน โดยหลักๆ แล้ว IPv6 address ถูกแบ่งออกเป็นสามกลุ่มใหญ่ๆ คือ Unicast, Multicast, และ Anycast

1. Unicast address ใช้ในการ routing ตามปกติเหมือนใน IPv4 เป็น routing แบบ end-to-end จากเครื่องหนึ่งไปอีกเครื่องหนึ่ง

2. Multicast address ใช้ในการ routing แบบ multicasting (ถูกใช้ในกลุ่มของ Application ที่เป็น Multicast ด้วยกัน เช่น ใน Routing Protocol พวก RIPv2, OSPF) ใน Multicasting เครื่องแต่ละเครื่องจะถูกกำหนดให้อยู่ใน Group (1 Machine อาจจะอยู่ได้มากกว่า 1 Group) แต่ละ Group จะมี Multicast Address เป็นตัวกำหนด เครื่องที่มี Multicast Address เดียวกันก็จะหมายความว่าอยู่ใน Group เดียวกัน เมื่อไหร่ก็ตามที่เราส่งข้อมูลไปยัง Multicast Address เครื่องทุกเครื่องใน Group นั้นก็จะได้รับข้อมูลของเรา การทำ Multicasting ทำให้ลดความซ้ำซ้อนในการส่งข้อมูลไปหาเครื่องหลายๆ เครื่อง

3. Anycast Address จะคล้ายกับ Multicasting คือมีแบ่งเป็นกลุ่มที่เรียกว่า SET แต่ละ SET จะกำหนดโดยใช้ Anycast Address ที่ต่างก็คือเมื่อเราส่งข้อมูลไปยัง Anycast Address เครื่องใดเครื่องนึงใน SET นั้นจะเป็นได้รับข้อมูลของเรา ซึ่งโดยทั่วไปจะเป็นเครื่องที่อยู่ใกล้เราที่สุด

IPv6 Address Format

ใน IPv6 นั้นจะใช้เลขฐาน 16 (Hexadecimal) ในการกำหนดหมายเลข IP Address ซึ่งจะเริ่มตั้งแต่ 0-9 และ A-F โดยแบ่งเป็นส่วนๆ ละ 16-bit (เท่ากับเลขฐาน 16 จำนวน 4 หลัก) address หนึ่งจึงมีทั้งหมด 8 กลุ่ม แต่ละกลุ่มคั่นด้วยเครื่องหมาย Colon เช่น

FEDC:BA98:7654:3210:FEDC:BA98:7654:3210

IPv6 อนุญาตให้เขียน Address ย่อได้ตาม Format ดังต่อไปนี้

1. เลข 0 ที่นำหน้าตัวเลขในแต่ละกลุ่มถือว่าไม่มีนัยสำคัญก็สามารถตัดออกได้ เช่น

1080:0000:0000:0000:0008:0800:200C:417A

จะสามารถเขียนได้เป็น

1080:0:0:0:8:800:200C:417A

2. Address ที่มี 0 ติดกันเยอะๆ จะเขียนย่อเป็น "::" ได้ เช่น

FF01:0:0:0:0:0:0:101

จะสามารถเขียนได้เป็น

FF01::101

IPv6 Address Types

IPv6 นั้นจะมี รูปแบบของ IP Address อยู่ทั้งหมด 6 ประเภทหลักๆ ได้ดังต่อไปนี้

- Global Unicast Address

- Site-Local Unicast Address

- Link-Local Unicast Address

- IPv4 mapped IPv6 Address

- IPv4 compatible IPv6 Address

- Unspecified Address

IP Address Allocation

Allocation

Prefix

Fraction

Reserved

0000 0000

1/256

Unassigned

0000 0001

1/256

Reserved for NSAP Allocation

0000 001

1/128

Reserved for IPX Allocation

0000 010

1/128

Unassigned

0000 011

1/128

Unassigned

0000 1

1/32

Unassigned

0001

1/16

Aggregatable Global Unicast Addresses

001

1/8

Unassigned

010

1/8

Unassigned

011

1/8

Unassigned

100

1/8

Unassigned

101

1/8

Unassigned

110

1/8

Unassigned

1110

1/16

Unassigned

1111 0

1/32

Unassigned

1111 10

1/64

Unassigned

1111 110

1/128

Unassigned

1111 1110 0

1/512

Link-Local Unicast Addresses

1111 1110 10

1/1024

Site-Local Unicast Addresses

1111 1110 11

1/1024

Multicast Addresses

1111 1111

1/256

Global Unicast Address

- จะคล้ายคลึงกันกับการแบ่ง IP ออกเป็น Class A-C ของ IPv4 ซึ่งจะถูกใช้เป็น Public IP และ มีจำนวนมากที่สุด ก็คือ 1/8 ของ หมายเลข IPv6 ทั้งหมด เราสามารถดูรูปแบบของ Global Unicast Address ได้ดังนี้

Global Unicast Address Format

Site-Local Unicast Address

- จะมีลักษณะคล้ายคลึงกันกับ Private IP Address ของ IPv4 โดยที่ Router จะไม่ทำการ Forward IP Address นี้ไปยัง Internet โดยจะมี Prefix เป็น FEC0::/10

Site-Local Unicast Address Format

Link-Local Unicast Address

- จะถูกใช้ในกรณี Stateless Auto-configuration Process และการค้นหา+รักษาสถานการณ์เชื่อมต่อของเพื่อนบ้าน (Neighbor Discovery Protocol) ต่างๆ โดยที่มี Prefix เป็น FE80::/10

Link-Local Unicast Address Format

IPv4 Mapped IPv6 Address

- เป็นการ Encapsulated IP Address ของ IPv4 เข้าไปใน IPv6 ในตำแหน่ง bit ที่ 81-96 โดยที่รูปแบบของ Format คือ ::FFFF:A.B.C.D

IPv4-Compatible IPv6 Address

- เป็นการ Tunnel IPv6 Address ไปอยู่ใน IP Address ของ IPv4 โดยที่นำ IPv4 Addressไปใส่ในตำแหน่ง 4 Octets สุดท้าย ดัง Format ดังต่อไปนี้ ซึ่ง จะถูกใช้มากใน Dual Stack (เราเตอร์ที่ รันทั้ง IPv4 และ IPv6) ภายใน Network

0:0:0:0:0:0:A.B.C.D หรือ ::A.B.C.D

Unspecified Address

- ถูกใช้เมื่อ Host นั้นๆ ไม่ได้มี IP Address อยู่ (เหมือนในกรณีของ IPv4) หรือ อาจเกิดจากเมื่อได้รับ IP ที่ซ้ำกัน หรือเกิดการผิดพลาดเกิดขึ้น ซึ่ง Format ของ Unspecified Address นี้คือ 0::0/128 หรือ ::/128

อื่นๆ ที่เกี่ยวข้องกับ IPv6

  • Path MTU discovery เป็นการหา maximum transfer unit ที่เหมาะสมของ path ที่ใช้ในการส่งข้อมูลจากต้นทางไปยังปลายทาง การหา path MTU ทำให้ router ไม่จำเป็นต้องทำ fragmentation กันอีกเพราะ source node จะทำ fragmentation เพื่อให้ได้ packet ที่มีขนาดเหมาะสมที่สุดสำหรับปลายทางแต่ละแห่ง
  • Neighbor discovery ของ IPv6 ใช้สำหรับหา neighbor node รวมไปถึง router ด้วย ดังนั้นจึงสามารถหา default gateway ได้โดยอัตโนมัติ
  • IPv6 node มี feature ในการตั้ง IP address ให้ตัวเองได้โดยอัตโนมัติ เรียกว่า auto-address configuration ดังนั้นจึงไม่จำเป็นต้องใช้ BOOTP/DHCP ในการกำหนด IP address ซึ่ง IPv6 node สามารถใช้งานได้ทันทีหลังจากใช้ neighbor discovery ในการหา default gateway อย่างไรก็ตาม DHCP ยังคงได้ประโยชน์ใช้ในการกำหนด DNS, domain name, และ configuration อื่นๆ เหมือนเดิม
  • เกี่ยวกับ Security ก็จะมี authentication และ encapsulated security payload เพื่อเพิ่มความปลอดภัยให้กับข้อมูลในระดับ packet, functions ต่างๆ ของ security นี้ถูกกำหนดไว้ใน IP Security Specification.
  • จาก Feature ของ auto-address configuration ทำให้ IPv6 สนับสนุนการ mobile IP ในตัวและไม่จำเป็นต้องใช้งาน foreign agent เหมือนใน IPv4
  • IPv6 ไม่มี function สำหรับทำ Quality-of-Service routing แต่มีโครงสร้างที่สนับสนุนการทำ QoS หรือ CoS routing โดยใช้ Traffic Class และ Flow Labe Field ซึ่งในปัจจุบันมี standard ของ Differentiated Service ซึ่งเป็น Class-of-Service (CoS) routing สำหรับใช้บน IPv6 แล้ว

0 ความคิดเห็น:

แสดงความคิดเห็น