Internet Protocol version 6

.. เหตุก็เกิดจากปลายเดือนกันยายน อาจารย์ที่ปรึกษาที่ดูแล thesis ผมอยู่ ส่งให้ไปเข้าฟัง IPv6 workshop ที่ปีนังล่ะครับ..

งานนี้เป็นส่วนนึงของ AI3 Meeting จัดที่ Universiti Sains Malaysia (University of Science Malaysia:USM) รัฐปีนัง มาเลเซีย ช่วงวันที่ 17-19 ตุลาคม 2543.. ที่เลือกจัดที่นี่ก็เพราะจะมีพิธีเปิด satellite ground station ของ USM เพื่อเชื่อมเข้า AI3 network ด้วย.. ก็เลยรวมสามงานไว้ในงานเดียวทั้ง workshop, meeting, แล้วก็งานเปิด ground station .. ผมไม่ได้ไปคนเดียวครับ มีผู้ร่วมเดินทางอีก 4 คนจากประเทศไทย เข้าร่วมประชุมกับสมาชิกของ AI3 network อีกหลายประเทศ เช่น ญี่ปุ่น สิงคโปร์ ฟิลิปปินส์ อินโดนีเซีย เวียตนาม และ มาเลเซีย รวมๆ แล้วก็ประมาณ 30 คนเห็นจะได้ ส่วนใหญ่ก็รู้จักกันมาก่อนแล้ว เพราะ meeting ครั้งนี้ไม่ใช่ครั้งแรก บรรยากาศของทั้ง workshop และ meeting ก็เลยไม่ซีเรียส และไม่เป็นทางการมากนัก ..(ประมาณเสื้อยืด กางเกงยีนส์… แต่ขอโทษ แต่ละคนเป็น professor กันทั้งนั้นเลย ^ ^) … กลับจาก workshop นี้ก็เลยได้อะไรมาเล่าให้ฟังกันเหมือนเคย.. เรามาเริ่มเนื้อหากันเลยดีกว่านะ..

Internet Protocol ในปัจจุบัน

คง ต้องเริ่มจาก Internet Protocol ที่เราใช้กันทุกวันนี้ก่อน ซึ่งก็คือ Internet Protocol version 4 หรือ IPv4 เราใช้เป็นมาตรฐานใช้ในการส่ง packet ในเครือข่าย Internet ตั้งแต่ปี 1981.. อืมม.. เกือบจะ 20 ปีแล้วล่ะครับ ในสมัยนั้นไม่มีใครคาดว่า Internet จะ popular แล้วก็กลายเป็นเครือข่ายในเชิงพาณิชย์อย่างในปัจจุบัน รูปแบบของข้อมูลที่รับส่งกันใน Internet ก็เปลี่ยนไป .. ปัญหาที่ใหญ่ที่สุดของ IPv4 คือเรื่องของ address space นักวิจัยเริ่มพบว่า address space ของ IPv4 ไม่พอเมื่อราวๆ 10 กว่าปีที่แล้ว เนื่องจากการแบ่ง network เป็น class ไม่เหมาะกับขนาดขององค์กร ทำให้ network class A และ B หมดไปอย่างรวดเร็ว เพราะมีจำนวนไม่มากนัก (class A มีประมาณ 120 networks, class B ประมาณ 16000 networks, ส่วน class C มีได้ทั้งหมดราวๆ 2 ล้าน networks) .. แม้ว่าเราสามารถจะขอ class C หลายๆ networks ได้ แต่ก็จะมีผลต่อ routing information ที่ต้องเก็บไว้ใน routers ต่างๆ โดยเฉพาะที่ backbone ของ Internet ซึ่งต้องเก็บ routing information ของทุกๆ networks ที่มีอยู่บนโลก (ในขณะที่ router ปกติเก็บได้ราวๆ 80,000 entries เท่านั้น)

Supernetting & Classless Inter-Domain Routing

ใน IPv4 เราสามารถแบ่ง network เป็น subnetwork ย่อยๆ โดยการกำหนด netmask .. ลักษณะของ supernetting ก็เหมือนกันครับ เราจะ mask ด้วยค่าที่น้อยกว่า 24 ซึ่งเป็นขนาดของ class C network ..เช่น กำหนดเป็น mask 22 ก็จะได้เป็น network ขนาดเท่ากับ class C network 4 วง (1024 IP addresses) เป็นต้น .. ดังนั้นเราจึงสามารถกำหนดให้ network มีขนาดเป็นจำนวน 256x(2^n), เช่น 512, 1024, 2048, 4096, and so on..ซึ่งจะปรับเข้ากับขนาดขององค์กรได้ดีกว่า จะเห็นได้ว่าทุกวันนี้เราจะเขียน network IP ตามท้ายด้วย /mask เสมอ เช่น 202.28.93.0/24 หมายความว่าเป็น block ที่เริ่มที่ 202.28.93.0 และมี netmask = 24 bits ..การทำเช่นนี้ยังช่วยลด routing information ได้ด้วย เช่น UniNet ม.ข. มี 4 class C คือ 202.28.92.0/24 – 202.28.95.0/24 ซึ่งเป็น block ติดกัน .. router สามารถเก็บ routing information เป็น 202.28.92.0/22 เพียง entry เดียว แทนที่จะแยกเก็บ 4 entries .. ดังนั้นถ้าเราจัดสรร IP ให้ดีๆ เราจะสามารถลดจำนวน routing information ได้เยอะ ช่วยให้ลดเวลาในการ lookup และส่งผลให้ routing ทำงานได้เร็วขึ้นด้วย

ปัญหานี้ในที่สุดก็แก้ได้โดยใช้เทคนิคการทำ Supernetting และ Classless Inter-Domain Routing (CIDR) ซึ่งยกเลิกการแบ่ง network เป็น class ออกไป แล้วใช้วิธีการรวมเอา network class C ที่อยู่ติดกันเป็น block ที่มีขนาดใหญ่ขึ้นมา (ดูรายละเอียดเพิ่มเติมในกรอบละกันครับ).. หรือ อีกวิธีนึงที่แก้ปัญหาเรื่อง IP ไม่พอได้ก็คือการใช้ Intranet ในองค์กร อย่าง ม.ข. เราก็ทำ Intranet โดยใช้ NAT เพื่อแปลง private IP (10.0.0.0/8) ให้เป็น public IP (12 class C networks)

Internet Protocol version 6

การ ทำ Intranet ที่เรานิยมใช้กันมีปัญหาใหญ่อยู่อย่างนึงก็คือต้องมีตัวกลางที่ทำหน้าที่ใน การแปลง IP address จาก private IP เป็น public IP .. จึงทำให้สูญเสีย concept ของ end-to-end communication ซึ่งส่งผลกระทบต่อ application หลายๆ อย่าง และวิธีนี้ยังไม่ใช่ทางแก้ที่แท้จริง มันเป็นเพียงการแก้ปัญหาเฉพาะหน้าเพื่อยืดอายุ IPv4 ออกไปเท่านั้น …เพราะในที่สุดแล้ว IP address ของ IPv4 จะต้องหมดลงอย่างแน่นอน หากเราดูจากสถิติการเติบโตของ Internet จะคำนวณคร่าวๆ ได้ว่า address space ของ IPv4 จะหมดลงในช่วงปี 2004-2008 ซึ่งเป็นอนาคตที่ค่อยข้างใกล้แล้วครับ.. ดังนั้นนักวิจัยหลายคนจึงหันมาเน้นงานวิจัย, สร้าง applications, และสนับสนุนให้มีการใช้งาน Internet Protocol version 6 แทน IPv4 … IPv6 ไม่เป็นแค่เพียง Internet Protocol ที่มี address ใหญ่ขึ้นเท่านั้น มันยังถูกออกแบบให้รองรับ applications ใหม่ๆ ที่จะเกิดขึ้นในอนาคต และเพิ่มประสิทธิภาพในการประมวลผล packet ให้ดีขึ้นด้วย ..

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 กันก่อน..

IPv4 Header Format

Ver HL ToS Total Length
Identification Flag Fragment Offset
Time-to-Live Protocol Header Checksum
Source
Destination
Options + Padding = (32 bits * n)

IPv6 Header Format

Ver TC Flow label
Payload Length Next Header Hop Limit
Source (128 bits)
Destination (128 bits)

จากรูปของ packet format จะเห็นว่า header ของ IPv6 ดู simple มากเมื่อเทียบกับ header ของ IPv4 เหตุผลก็เป็นไปตามนี้:

  • Version ยังคงต้องมีเหมือนเดิม เพื่อใช้บอกว่า packet นี้เป็น IP version ไหน.. กรณีของ IPv6 ค่าของ version ก็จะเป็น 6
  • Header length ถูกตัดออกไป เพราะขนาดของมันจะเป็น 40 octets เสมอ การกำหนดให้เป็น fixed length header ทำให้ประสิทธิภาพโดยรวมของการประมวลผล packet ดีขึ้น
  • Type of Service ของ IPv4 ถูกแทนที่ด้วย Traffic Class ซึ่งใช้ระบุว่า packet นี้อยู่ใน class ไหนและมีระดับความสำคัญเท่าไหร่ เพื่อที่ router จะได้จัด schedule ในการส่ง packet ให้เหมาะสม
  • Flow label ใช้ระบุ end-to-end traffic flow ระหว่างต้นทางกับปลายทาง ใน application นึงสามารถสร้าง flow ได้หลายๆ อัน อย่างเช่น video conference เราสามารถแยก flow ของภาพและเสียงออกจากกันได้ แม้ว่าจะเปิด socket ในการทำงานเพียง socket เดียว
  • Total Length แทนที่ด้วย Payload length เพื่อระบุขนาดของ payload ในหน่วย octet (byte) ดังนั้นขนาดของ payload สูงสุดจะเป็น 65535 octets
  • Identification, Flag, Segmentation, Protocol, Options, และ Padding ถูกย้ายไปอยู่ในส่วนของ extended header เพราะถือว่าเป็นส่วนที่ไม่จำเป็นต้อง process ในทุก router
  • Hop Limit ถูกใช้แทน Time-To-Live ของ IPv4 … ตาม IPv4 specification TTL จะเก็บเป็นเวลาจริงๆ หน่วยเป็นวินาที โดยระบุว่าแต่ละ router ต้องลด TTL ลงอย่างน้อย 1 วินาที แม้ว่าจะใช้เวลาประมวลผล packet น้อยกว่านั้น.. ในความเป็นจริงการประมวลผล packet เร็วมากครับ เพียงแค่ไม่กี่ usec เท่านั้น.. router ใหม่ๆ อาจจะทำได้น้อยกว่า 1 usec เสียอีก..router จึงลด TTL ครั้งละ 1 เสมอ .. TTL ก็เลยกลายเป็น hop count แทนที่จะเป็นเวลาจริงๆ ซึ่งก็เหมาะสมและง่ายต่อการประมวลผล… ใน IPv6 จึงเปลี่ยนมาใช้คำว่า Hop limit เพื่อให้ตรงกับความหมายจริงๆ ของมัน
  • Next Header ซึ่งใช้เป็นตัวบอกว่า extended header ตัวถัดไปเป็น header ประเภทไหน
  • Header Checksum ถูกตัดออกเพราะว่ามันซ้ำซ้อนกับ function ของ protocol บน layer ที่อยู่สูงกว่า IP อีกทั้งเป็นการเพิ่มประสิทธิภาพของการประมวลผล packet ด้วย เพราะ checksum ต้องคำนวณใหม่ที่ router เสมอ หากตัดออกก็จะลดภาระงานที่ router ได้ ..

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 Addresses

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

  • Unicast address ใช้ในการ routing ตามปกติเหมือนใน IPv4 น่ะล่ะครับ คือเป็น routing แบบ one-to-one จากเครื่องนึงไปอีกเครื่องนึง
  • Multicast address ใช้ในการ routing แบบ multicasting .. เป็นแบบ one-to-many (คล้ายๆ กับ broadcast แต่ broadcast จะเป็น one-to-all).. ใน multicasting เครื่องแต่ละเครื่องจะถูกกำหนดให้อยู่ใน group (1 เครื่องอาจจะอยู่ได้มากกว่า 1 group) แต่ละ group จะมี multicast address เป็นตัวกำหนด เครื่องที่มี multicast address เดียวกันก็จะหมายความว่าอยู่ใน group เดียวกัน เมื่อไหร่ก็ตามที่เราส่งข้อมูลไปยัง multicast address เครื่องทุกเครื่องใน group นั้นก็จะได้รับข้อมูลของเรา การทำ multicasting ทำให้ลดความซ้ำซ้อนในการส่งข้อมูลไปหาเครื่องหลายๆ เครื่อง ปัจจุบัน multicast ใช้ในการ update routing และการส่งข้อมูลพวก multimedia
  • Anycast Address อันนี้ก็จะคล้ายกับ multicasting ครับ คือมีแบ่งเป็นกลุ่มเหมือนกัน เรียกว่า set .. แต่ละ set จะกำหนดโดยใช้ anycast address .. ที่ต่างก็คือเมื่อเราส่งข้อมูลไปยัง anycast address เครื่องใดเครื่องนึงใน set นั้นจะเป็นได้รับข้อมูลของเรา (โดยทั่วไปจะเป็นเครื่องที่อยู่ใกล้เราที่สุด) … anycast address อาจจะได้ใช้กับ DNS server ในอนาคตล่ะครับ .. DNS server ทั้งโลกสามารถกำหนดให้เป็น set เดียวกันได้ .. ต่อไป user ก็ไม่จำเป็นต้องตั้ง IP ของ DNS server เองอีกแล้ว เพราะไม่ว่า network ไหนๆ ก็ใช้ IP address ของ DNS server เหมือนกัน หากว่า DNS server ที่เราใช้ล่ม anycast ก็จะหาเครื่องที่อยู่ใกล้ที่สุดที่เราติดต่อได้เองโดยไม่ต้องเปลี่ยน configuration อะไรเลย

Address space ของ IPv6 มีขนาด 128 bits ก็ประมาณ 3.4E38 addresses เยอะมากๆ เลยล่ะครับ.. แต่เราไม่สามารถใช้งานได้ทั้งหมด จะมีบางส่วนที่เสียไปเนื่องจากการจัดระเบียบของ address space นักวิจัยคำนวณออกมาได้ว่า address ที่เราใช้ได้จริงๆ จะอยู่ระหว่าง 8E17 ถึง 2E33 ซึ่งก็ยังเยอะอยู่ดีเพราะอย่างแย่ที่สุดเราจะมี address 8E17 addresses ถ้าเอามาเฉลี่ยด้วยของพื้นที่ของโลกก็จะได้ประมาณ 1,546 addresses/sq.m พอเหลือเฟือ.. เนื่องจาก address มันยาวมากจะเขียนเป็น dotted decimal notation เหมือน IPv4 ก็คงต้องคั่นด้วยจุดเป็นสิบๆ จุดเลย แล้วก็คงไม่มีใครจะจำ IPv6 address กันอีกแล้ว ดังนั้น IPv6 จึงเขียนเป็นเลขฐานสิบหกโดยแบ่งเป็นส่วนๆ ละ 16-bit (เท่ากับเลขฐานสิบหก 4 หลัก) address นึงจึงมีทั้งหมด 8 กลุ่ม แต่ละกลุ่มคั่นด้วยเครื่องหมาย colon .. อย่างเช่น

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

อ่านแล้วตาลายดีมั้ยครับ.. เลิกพูดเรื่องจะจำ address ได้เลย (^ ^) .. แต่ address ของ IPv6 ไม่จำเป็นต้องเขียนเต็มๆ อย่างนี้ก็ได้ IPv6 อนุญาตให้เขียน address ย่อได้โดย 0 ที่นำหน้าตัวเลขในแต่ละกลุ่มถือว่าไม่มีนัยสำคัญก็สามารถตัดออกได้ เช่น 1080:0000:0000:0000:0008:0800:200C:417A ก็จะเขียนได้เป็น 1080:0:0:0:8:800:200C:417A address มี 0 ติดกันเยอะๆ จะเขียนย่อเป็น “::” ได้ เช่น FF01:0:0:0:0:0:0:101 จะเขียนได้เป็น FF01::101

ใน ช่วงที่เปลี่ยนจาก IPv4 เป็น IPv6 อาจจะไม่สะดวกที่ต้องแปลง dotted decimal notation ของ IPv4 เป็น hexadecimal ของ IPv6 .. ก็เลยยอมให้เขียน 32 bit สุดท้ายใน format ของ IPv4 ได้ .. อันนี้จะได้ใช้ใน address ของ IPv4-compatible/mapped IPv6 address เช่น 0:0:0:0:0:0:202.28.93.9 (หรือจะเขียนอย่างนี้ก็ได้ ::202.28.93.9)

IPv6 Address มีรายละเอียดของการจัดสรรตามนี้ครับ…

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

จาก ตารางจะเห็นว่าส่วนที่ยังไม่ได้ใช้งาน (Unassigned) มีอยู่ประมาณ 85% ของ address space ซึ่งควรจะมากพอสำหรับอนาคตหากต้อง allocate เพิ่มเติม .. address แต่ละแบบจะมี format ของมันเองครับโดยที่ prefix จะเป็นตัวแยกว่า address นั้นเป็นแบบไหน และใช้ format อะไร …

ที่เราจะใช้งานเป็นหลักก็คือตัว aggregatable global unicast address .. ความหมายของแต่ละ field มีตามนี้ครับ..

  • FP = Format Prefix = 001 เสมอ เป็นตัวบอกว่า address นี้มี format เป็น aggregatable global unicast address
  • TLA = Top-Level Aggregator เป็น ID ที่ใช้ระบุ provider ที่อยู่ชั้นบนสุดของการ routing ครับ เช่น NSP/ISP ใหญ่ๆ ที่เกาะกันเป็น backbone ของ Internet
  • RES = Reserved สำหรับขยายส่วนของ TLA หรือ NLA ในอนาคต .. อันนี้เค้าเตรียมไว้เพราะยังไม่รู้ว่า TLA กับ NLA จะถูกใช้จริงๆ ไปมากน้อยขนาดไหน ก็เลย reserve ตรงรอยต่อระหว่าง TLA กับ NLA ไว้ เพื่อให้สามารถจัดการได้อย่างเหมาะสม
  • NLA = Next-Level Aggregator เป็น ID ในระดับขององค์กร (เช่น มหาวิทยาลัย บริษัทใหญ่ๆ) ซึ่งจะถูก assign โดย TLA .. เนื่องจาก NLA มีขนาดค่อนข้างใหญ่ (24 bits) มันอาจจะมี sub-format ของมันเองได้ ซึ่งขึ้นอยู่กับ TLA ว่าจะจัดการอย่างไร ตาม standard แนะนำว่าควรจะทำเป็น hierarchical ลงไปเรื่อยๆ เหมือน CIDR
  • SLA = Site-Level Aggregator เป็น ID ที่ใช้ภายในองค์กรเพื่อสร้าง subnetwork ..ดังนั้นใน 1 องค์กรมี subnetwork ได้มากถึง 65,535 subnetworks ..อันนี้ก็ควรจะทำเป็น hierarchical เหมือนกัน
  • Interface ID = เป็น ID ที่ใช้กำหนดให้ interface แต่ละอันภายใน subnetwork ดังนั้นจะต้องไม่ซ้ำกัน Interface ID สามารถสร้างได้จาก Hardware Address (MAC address) ของ Interface ก็ได้ โดยจะมี format ตาม IEEE EUI-64

จะเห็นว่าการจัดการ aggregatable global unicast address ของ IPv6 จะแบ่งเป็นลำดับชั้นชัดเจน และแบ่งอำนาจการดูแล address เป็นชั้นๆ ด้วย (TLA เป็นผู้กำหนดค่า NLA, NLA เป็นผู้กำหนด SLA, แต่ละ SLA ก็จะมี space สำหรับ allocate ให้ interface) โครงสร้างของมันก็เลยเป็น tree และเป็นที่มาของคำว่า “aggregatable” เพราะ address space ลำดับล่างๆ จะเอามารวมกันเป็น address space ในลำดับที่สูงขึ้น มีขนาดใหญ่ขึ้น ดังนั้นการทำ routing จึงเป็นลำดับขั้นเหมือนกันกับ CIDR

Unicast address ยังมีส่วนที่แบ่งเป็น link-local ไว้ใช้บริการ auto-address configuration, neighbor discovery ส่วน site-local ก็จะเอาไว้ใช้ภายใน site นั้นๆ โดยไม่ต้องระบุ prefix ..site-local address จะไม่มีการกำหนด นอกจากนี้ยังมี unicast address ที่ใช้งานในช่วงที่ transit จาก IPv4 ไปเป็น IPv6 อีกสองแบบคือ IPv4-compatible IPv6 address และ IPv4-mapped IPv6 address

ถ้าดูจากตารางที่แบ่ง address space เป็นส่วนๆ จะเห็นว่ามันไม่มีส่วนของ anycast address เพราะ anycast address จริงๆ แล้วก็คือ unicast address แบบนึงครับ ..anycast address format จะเริ่มด้วย subnet prefix ของ unicast address ที่ครอบคลุมทุก member ของ anycast group นั้นๆ แล้วตามด้วย 0 จนครบ 128 bits.. address นี้จะ assign กับ router เท่านั้น การทำงานของ anycast จะเริ่มโดย host จะส่ง packet ที่กำหนด destination เป็น anycast address ออกไป ดังนั้นมันก็จะถูกส่งไปที่ router ..ตัว router ก็จะหาว่าใน group ที่ระบุมีปลายทางที่ใกล้ที่สุดที่ไหน แล้วก็แทรก unicast address ของปลายทางเข้าไปใน anycast address มันก็จะสามารถส่งไปปลายทางได้ ปัญหาเท่าที่พบใน anycast ตอนนี้ก็คือการใช้ global anycast group ซึ่ง member ของ group ไม่มี subnet prefix ที่ใช้ร่วมกันเลย หรือมีน้อยมากๆ (เช่น DNS) address ก็จะมี subnet prefix จะเป็น null .. anycast address ก็จะเป็น 0000…0 ตอนนี้ตาม standard จึงไม่แนะนำให้ใช้งาน global anycast หรือถ้าจะใช้ก็จะจำกัดมากๆ .. เชื่อกันว่า anycast address format จะมีการเปลี่ยนแปลงค่อนข้างแน่นอน เวลานี้นักวิจัยยังคงรอรอให้พบปัญหาในการใช้งาน anycast address เพื่อจะได้เสนอทางแก้และเลือก format ที่เหมาะสมกันต่อไป

อะไรใหม่ๆ ใน IPv6

ใน IPv6 มีการกำหนดบริการใหม่ๆ เพิ่มขึ้นมากมายครับ อย่าง anycast ก็เป็นบริการอันนึงที่ไม่มีใน IPv4 .. IPv6 บังคับให้ทุก node ต้อง multicasting ได้ ในขณะที่ IPv4 จะมีไม่กี่ node ที่ support การทำงาน multicasting จริงๆ เพราะเป็นส่วนที่ขยายจาก IPv4 ..นอกจากนี้ก็ยังมีบริการอื่นๆ อีก เช่น

  • 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 .. รายละเอียดเกี่ยวกับ foreign agent ลองหาในรายงาน seminar ปีก่อนๆ นะครับ..
  • IPv6 ไม่มี function สำหรับทำ Quality-of-Service routing แต่มีโครงสร้างที่สนับสนุนการทำ QoS หรือ CoS routing โดยใช้ Traffic Class และ Flow Labe Field .. ปัจจุบันมี standard ของ Differentiated Service ซึ่งเป็น Class-of-Service (CoS) routing สำหรับใช้บน IPv6 แล้ว

IPv6 ในความเป็นจริง

อ่านๆ ไปก็อาจจะคิดว่าเมื่อไหร่มันจะเกิดจริงๆ ซะที .. IPv6 specification ออกมาครั้งแรกตั้งแต่ปี 1993 (RFC 1883) และมีการแก้ไขอีกครั้งในปี 1998 (RFC 2460) แต่ถึงทุกวันนี้เรายังไม่เห็น IPv6 ใช้งานจริงๆ จังๆ กัน … จะว่าไปแล้วก็ถ้าอยากใช้งาน IPv6 เวลานี้สามารถทำได้แล้วนะครับ.. Unix หลายๆ อัน support IPv6 แล้ว เช่น AIX, BSDi, Compaq Tru64 (Digital UNIX), Linux, FreeBSD, NetBSD, OpenBSD, Solaris, HP Unix ..ในส่วนของ Linux support IPv6 มาหลายปีแล้ว …IPv6 implementation บน Linux/FreeBSD ทุกวันนี้ก็มี KAME, INRIA, และ patch ของ Bieringer ไปหา download มา compile ติดตั้งได้.. applications และ services ต่างๆ สำหรับ Linux มีให้ใช้แล้ว (มี quake ให้เล่นด้วย) เพียงแต่เลือกไม่ได้มากนัก .. สำหรับ Macintosh Mac OS X ที่มี IPv6 built-in น่าจะ release ภายในเดือนกุมภาพันธ์ 2544 .. และสำหรับคนรัก Windows ตอนนี้ Trumpet Winsock version ล่าสุดใช้ IPv6 ได้แล้ว Microsoft เองก็พัฒนา platform ของ TCP/IPv6 กันอยู่…ตอนนี้ใครที่ใช้ Windows 2000 ติดตั้ง SP1 แล้วสามารถ download TCP/IPv6 มาลองใช้กันได้.. Internet Explorer 5 ขึ้นไปสามารถกรอก URL เป็น IPv6 ได้ด้วย.. ดังนั้นถ้ามองที่ end-user ตอนนี้ IPv6 กำลังค่อยๆ โตขึ้น (ผมรู้สึกว่ามันเหมือนเมื่อซัก 7-8 ปีก่อน สมัยที่ PC ใช้งาน Internet ได้ช่วงแรกๆ เลย .. อ๊ะ..เราแก่ขนาดนี้แล้วเหรอเนี่ย.. ^ ^”) .. ขอให้มี application ให้ใช้งาน ทำงานได้เร็ว ใช้ง่าย ผมว่า user ไม่สนหรอกว่ามันจะเป็น IP version ไหน….. ผมมีตัวอย่างเครื่องที่ลง IPv6 เอาไว้นะครับ เครื่อง banana.cs.ait.ac.th เป็น Linux + IPv6 stack ..

ใน ส่วนของ IPv6 ผมไม่ได้กำหนดค่าอะไรเลย ทั้ง IP และ routing table .. อย่างที่บอกว่า มันมี auto-address config แล้วก็ neighbor discovery พอ boot เครื่องมันก็จะ config ตัวเองอัตโนมัติ พร้อมจะใช้งานได้ ..

มา ดู network กันบ้าง .. Routing protocol สำหรับใช้ใน IPv6 มีออกมาแล้วครับ.. interior gateway protocol อย่าง RIPng for IPv6 ใช้งานได้แล้ว เช่นเดียวกับ BGP4+ ซึ่งเป็น exterior gateway protocol ก็ใช้บน IPv6 ได้แล้วเหมือนกัน ..ทางกลุ่ม OSPF protocol ตอนนี้มี specification ใหม่ของ OSPFv3 ออกมาแล้วซึ่งจะสนับสนุนการทำงานบน IPv6 แต่ protocol software ของ OSPFv3 ปัจจุบันยังไม่สมบูรณ์ และยังไม่ stable ตอนนี้ก็อยู่ระหว่างการปรับปรุง.. routing protocol พวกนี้ถ้าต้องการใช้งานก็ download ได้ฟรีครับ package ชื่อ GNU Zebra ทำงานบน Linux/FreeBSD + IPv6 stack ของ KAME, INRIA หรือ Bieringer. … ส่วน hardware implementation ที่เป็นพวก router ก็มีของ Hitachi, Telebit, Nortel ..อืมม.. Cisco ก็ใช้ได้แต่ต้อง update IOS เป็นรุ่น IPv6 beta (IPv6 performance ของ Cisco ยังไม่ดี ประมาณ 8Kpps เท่านั้นเอง)

ทีนี้ถ้าจะใช้งาน IPv6 เราจะไปต่อที่ไหนได้ ในเมื่อ Internet ยังเป็น IPv4 อยู่เลย ถึงจะลง package IPv6 วันนี้ก็ไม่รู้จะไปใช้กับใคร ? .. ที่จริงใน Internet ที่เราใช้ทุกวันนี้มีเครือข่าย IPv6 ทำงานซ้อนอยู่ด้วย ตัว backbone ของ IPv6 เรียกว่า 6Bone .. 6Bone ปัจจุบันยังเป็นเครือข่ายสำหรับทดสอบ IPv6 อยู่ และยังไม่มีการให้บริการในเชิงพาณิชย์เพราะ infrastructure ยังไม่พร้อม และ demand ยังไม่มากพอ ดังนั้นเครือข่ายจึงไม่หนาแน่นมากนัก ในส่วนที่ผมเกี่ยวข้องก็มีการเชื่อมต่อ IPv6 network ของ Internetworking Research Lab (IRL/AIT) เข้ากับ 6Bone ผ่านทาง AI3 และ APAN network ที่ญี่ปุ่น เวลานี้มีเพียง 2 เครื่องที่เชื่อมต่ออยู่เป็น FreeBSD/KAME กับ Linux/Bieringer .. ที่วิศว.คอม. ม.ข. ผม set Linux ไว้อีกเครื่องนึง (ipv6.en.kku.ac.th) เพื่อทำเป็น IPv6 node เชื่อมผ่าน tunnel มาที่ AIT .. ทั้งสามเครื่องตอนนี้ยังคงใช้ pseudo TLA (prefix = 0011) ซึ่งเป็น IPv6 address สำหรับทดสอบการใช้งานบน 6Bone อยู่ครับ.. อย่างไรก็ตามตอนนี่ AIT ได้ IPv6 network address ที่ใช้งานจริงมาแล้ว (network address = 2001:0200:0840/48) โดยแบ่งมาจาก 6Bone ของญี่ปุ่น เร็วๆ นี้คงได้ setup IPv6 network กันใหม่อีกครั้ง … สำหรับพวกเราที่ไม่สามารถเชื่อมกับ IPv6 node เหล่านี้ได้โดยตรงก็สามารถทำ tunnel ไปต่างประเทศได้ครับโดยใช้บริการของ freenet6.net ซึ่งให้บริการ access point สำหรับเชื่อมเข้า 6Bone โดยเราต้อง set tunnel เชื่อมไปหา.. สมัครได้ฟรีครับ หลังจากสมัครแล้วเราจะได้ IPv6 address มาใช้งาน 1 address พร้อมกับ script สำหรับ config tunnel และ routing .. เท่าที่ลองก็ใช้ง่ายดี แล้วก็งานได้จริง

หลายคนคิดว่า IPv6 จะไม่เกิดง่ายนัก เนื่องจากต้องเปลี่ยนแปลงค่อนข้างมากจาก IPv4 .. การใช้งาน Intranet ก็ช่วยได้มากพอสมควรแล้ว ประเด็นที่ IPv6 ไม่ก้าวหน้ามากนักเกิดมาจากไม่มีคนพัฒนา application ..พอไม่มี application มันก็ไม่น่าสนใจสำหรับผู้ใช้.. และพอผู้ใช้ไม่สนใจก็ไม่มีนักพัฒนาจะสร้าง application บน IPv6

เพราะ ไม่มีใครใช้ ทำไปก็ขายไม่ได้.. กลายเป็น infinite loop อยู่อย่างนี้ล่ะครับ.. อย่างไรก็ตาม loop นี้เริ่มจะถูก break แล้ว เพราะความต้องการใช้งาน IPv6 เริ่มมากขึ้น.. ให้ทายดีกว่าว่าประเทศอะไรจะใช้ IPv6 จริงๆ จังๆ ก่อน ??? … ประเทศญี่ปุ่นครับ (เป็นคำตอบสุดท้าย ^ ^) .. ทุกวันนี้ญี่ปุ่นพัฒนา IPv6 ไปได้ไกลกว่าประเทศอื่น เนื่องจากเขาเล็งเห็น application ที่ตลาดบ้านเค้ากำลังต้องการ และมันมีความจำเป็นที่จะต้องใช้ IPv6 .. นอกจากนี้ก็ยังมีแรงหนุนจากรัฐบาลด้วย เชื่อหรือไม่ครับ..นายกรัฐมนตรีญี่ปุ่นเคยกล่าวว่าญี่ปุ่นจะเริ่มใช้ IPv6 ให้เร็วที่สุดเท่าที่จะเป็นไปได้ .. Prof. Jun Murai บอกว่าได้ยินครั้งแรกก็แปลกใจ แต่ก็นับว่าเป็นเรื่องที่ดีเพราะหมายถึงนักวิจัยจะได้รับการสนับสนุนจาก รัฐบาลญี่ปุ่นมากขึ้น ..ก็กลายเป็นว่า IPv6 ถูกใช้เป็นเรื่องทางการเมืองญี่ปุ่นไปแล้ว ..หึๆๆ…. ส่วนนักข่าวได้ยินครั้งแรกก็งงกันหมด เพราะไม่รู้ว่า IPv6 ที่นายกพูดนั่นมันคืออะไร ^ ^”.. อ๊ะ..ลืมแนะนำไปครับ.. Prof. Jun Murai นี่อยู่ในระดับ big ของนักวิจัยด้าน Internet ทั้งของญี่ปุ่นและนานาชาติ.. ตอนนี้ก็เป็นสมาชิกใน board ของ ICANN ซึ่งดูแลนโยบายการใช้งาน Internet ทั่วโลก (ในกลุ่มนักวิจัยด้วยกันแซวๆ กันว่า Prof. Jun เป็น godfather ของ Internet ในญี่ปุ่น .. big ไม่ big ก็คิดเอาเองล่ะครับ) … เวลานี้นักวิจัยของญี่ปุ่นกำลังทำให้โทรศัพท์มือถือใช้ Internet ได้อย่างสมบูรณ์จริงๆ ใช้ IP Telephony (แปลว่าโทรศัพท์จะมี IP ติดไว้ที่เครื่องเลย เป็น IP node จริงๆ .. ไม่ใช่ WAP ไป WAP มาเหมือนทุกวันนี้) ..ทีนี้ address space ของ IPv4 มันไม่มากพอ ก็เลยจะใช้ IPv6 กันล่ะครับ โทรศัพท์จะไม่มีแค่เสียงอีกแล้ว ข้อมูลที่เป็น digital สามารถส่งผ่านข่ายของ IP Telephony ได้ … Home network (network ของอุปกรณ์ไฟฟ้าในบ้านนะครับ) จำเป็นต้องใช้ IPv6 เหมือนกัน อุปกรณ์ไฟฟ้าแต่ละชิ้นจะมี IP address ติดไว้ อีกหน่อยจะกลายเป็นว่าทุกบ้าน TV ดูผ่าน Internet ..พวกโฆษณาจะประมาณว่ามีปุ่ม “click here to order” อยู่ที่มุม TV .. รายการหมึกแดงแผลงฤทธิ์ สามารถส่งตำหรับอาหารไปโปรแกรมเตาไมโครเวฟที่บ้านได้ รวมทั้งส่งรายการเครื่องปรุงบันทึกไว้ใน memo ของ PDA.. (หรือจะให้ดีกว่านั้น .. ส่ง order ไปที่ supermarket ที่ใกล้บ้านที่สุด) .. สัญญาณกันขโมยจะส่ง real-time IPv6 packet ไปแจ้งตำรวจหรือสายตรวจที่อยู่ใกล้บ้านเราที่สุด .. นอกจากนี้ Internet Car ก็กำลังพัฒนาจวนจะเสร็จแล้ว โดยใช้ IPv6 ร่วมกับ GPS เพื่อบอกตำแหน่งเนื่องจาก GPS ใช้ในเมืองยากเพราะตึกสูงๆ จะบังสัญญาณ ใช้ wireless/mobile Internet จะดีกว่า … พูดถึง wireless ได้ยินข่าวว่า Yahoo! ร่วมกับ บ. taxi เปิดบริการ Taxi Internet ให้คนใช้บริการ taxi ในอเมริกาใช้ Internet บนรถได้… ที่จริงบ้านเราก็ไม่ใช่ย่อยครับ..ผมอ่านข่าวครั้งแรกยังไม่อยากเชื่อ เลย..”TukTuk Internet” เป็นรถตุ๊กตุ๊กมี notebook ต่อกับจานดาวเทียมเล็กๆ บนหลังคารถ เล่น Internet ได้ .. บ๊ะ.. ไม่ธรรมดาเหมือนกัน (^ ^)… .. เรื่อง (เว่อร์ๆ) แบบนี้เกิดขึ้นได้จริงๆ เมื่อ infrastructure ของ IPv6 พร้อม… Prof. Jun คาดการณ์ไว้ว่าปี 2003 Internet จะย้ายมาใช้ IPv6 และจะกลายเป็น IPv6 เต็มรูปแบบราวๆ ปี 2005..ใครที่เรียนปีสองตอนนี้ จบไปก็อาจจะทันได้ใช้ IPv6 ล่ะครับทีนี้..

ของแถม..

เฮ่อ… มา workshop ครั้งนี้แทบจะกระดิกตัวไม่ได้เลยครับ มาถึงปีนังดึกๆ ก็เข้าที่พัก เช้าวันแรก 8 โมงก็เข้าฟัง workshop ทั้งวัน ช่วงเย็นมีเลี้ยงอาหารต้อนรับ กลับมาถึงที่พักก็ค่ำซะแล้ว.. วันที่สองก็เข้า meeting แต่เช้าเหมือนเดิม แล้วช่วงบ่ายๆ จะเป็นการเปิด satellite ground station .. ช่วงเช้าก็เลยอยู่ฟัง meeting ซึ่งได้อะไรเยอะทีเดียว ถึงจะไม่เกี่ยวกับ IPv6 ตรงๆ ก็เถอะ.. วันรุ่งขึ้นผมกับนักเรียนรุ่นน้องก็เดินทางกลับเมืองไทยก่อน ส่วนที่เหลือยังต้องประชุมต่ออีก 1 วัน…. มาถึง AIT ก็เข้าที่ทำงานก่อนเลยครับ เพราะในช่วงเย็นวันเดียวกันนี้จะมี class วิชา Data Structure โดย ดร. กาญจนาซึ่งเวลานั้นอยู่ที่ปีนังจะสอน class นี้ให้กับนักเรียน AIT ผ่านทาง Internet .. เราเพิ่งจะเคยทำการสอนทางไกลผ่าน Internet จริงๆ กันครั้งแรกก็เลยตื่นเต้นกันทั้งคนเรียน คนสอน แล้วก็คนเตรียมเครื่องไม้เครื่องมือ .. software ที่เราใช้งานกันคือ Multimedia Conference System (MCS) ซึ่งพัฒนาโดย USM ..โปรแกรมตัวนี้ Dr. Sureswaran เจ้าของ MCS project เล่าให้ฟังว่า Ericsson สนใจจะซื้อไปใช้ในโทรศัพท์ G4 … อุปกรณ์ที่จำเป็นจริงๆ ก็มีกล้องวิดีโอ, capture card, sound card, ลำโพง แล้วก็ไมโครโฟน (แต่ที่ set กันจริงๆ ต้องพ่วง video projector, เครื่องอัดวิดีโอแล้วก็ทีวีสำหรับ monitor เข้าไปอีกเพราะว่าต้องการเก็บภาพเพื่อจะได้มาดูกันทีหลังได้ว่าผลเป็น อย่างไรบ้าง) .. จากที่เคยสงสัยว่าการสอนทางไกลเป็นไปได้จริงๆ หรือ ?.. ผมได้คำตอบก็วันนี้นี่เอง.. ประสบการณ์ครั้งนี้ทำให้รู้ว่าการสอนทางไกลแบบ real-time แบบนี้เป็นไปได้สูงทีเดียวครับ ตัวอย่างการสอนครั้งนั้นเรา set เป็นการสอนผ่าน Internet bandwidth (< 64 Kbps) แต่ภาพและเสียงที่ได้อยู่ในระดับที่ดีทีเดียว โดยเฉพาะเสียง และ response time เวลาที่ต้องโต้ตอบระหว่างผู้เรียนและผู้สอนอยู่ในระดับที่ดีมาก เสียงชัดเจน ฟังได้ต่อเนื่อง ไม่มีกระตุก (ดีกว่า netmeeting ของ Microsoft) การสอนที่ผ่านมาใช้ปากกาเขียนบนกระดาษเปล่าธรรมดาๆ แล้วก็จับภาพเป็นวิดีโอส่งมาครับ ภาพจะกระตุกนิดๆ และไม่ละเอียดมากนัก แต่ก็อ่านข้อความที่เขียนด้วยลายมือได้สบาย frame rate ของภาพค่อนข้างคงที่ซึ่งให้ความรู้สึกที่ดีกว่าภาพละเอียดแต่กระตุกแบบไม่ เป็นจังหวะ .. ที่น่าสนใจก็คือในห้องเรียนเองก็ยังให้ความรู้สึกของห้องเรียนเหมือนเดิมถึง แม้ว่าจะไม่มีผู้สอนยืนอยู่หน้าชั้นก็ตาม .. สรุปว่า class สอนทางไกลที่ผ่านมาประสบความสำเร็จพอสมควรทีเดียว …

ที่จริง class แบบนี้ทำเป็นเรื่องเป็นราวก็มีแล้วนะครับ.. School of Internet ของ WIDE Project ได้ set การสอนทางไกลวิชา Introduction to Computer Networks ผ่านทาง Internet2 (ไม่ได้พิมพ์ผิดนะครับ Internet2 จริงๆ) โดยใช้ IPv6 Multicasting.. ผู้สอนคือ Prof. Larry Landweber ซึ่งสอนอยู่ที่ University of Wisconsin และ Prof. Jun Murai ซึ่งสอนที่ Keio University ผู้เรียนจะมีทั้งที่ U. of Wisconsin, Keio U., และ Nara Institute of Science and Technology นักศึกษาลงทะเบียนเรียนกันจริงๆ มี credit ให้ มีการประเมินผลเหมือนการเรียนปกติทุกอย่าง จากภาพซ้ายมือจะเห็น class ที่นักศึกษาที่ Keio U. เข้าเรียน ในขณะที่ Prof. Landweber กำลังสอนอยู่ที่ U.of Wisconsin ด้านขวาของภาพเป็น presentation ที่ถ่ายทอดส่งมาเหมือนกัน กลางๆ ภาพจะเห็นกล้องจับภาพนักศึกษาที่เข้าเรียนเพื่อส่งกลับไปที่ U.of Wisconsin .. การสอนประสบความสำเร็จสูงมากทั้งในแง่ของ class ที่เรียน และแง่ของการเรียนการสอนทางไกล (Prof. Jun บอกว่า “ประสบความสำเร็จสูงมาก แต่อย่าถามเรื่องค่าใช้จ่ายว่าหมดไปกี่ตังค์” .. โฮะๆๆ) ..การโต้ตอบนอกจากเป็นภาพและเสียงแล้วก็มี chat ผ่านทาง irc เพื่อความสะดวกในการ discuss เป็นกลุ่ม และมี bulletin board system สำหรับถาม – ตอบกันเวลาที่ไม่ได้ online พร้อมกันด้วย ถ้าสนใจก็ลองเข้าไปดูที่ webpage ของวิชานี้ ได้ครับ… เอาไว้มีโอกาสเหมาะๆ อาจจะมี class บรรยายพิเศษผ่าน Internet ไปที่ มข. กันบ้างล่ะครับ…^^


References

  1. Postel, J., 1981. Internet Protocol Specification version 4. RFC 791 (STD 5). ISI/USC.
  2. Deering, S., and Hinder, R., 1993. Internet Protocol Specification version 6. RFC 1883 (Obsolete). Xerox PARC, and Ipsilon Networks.
  3. Deering, S., and Hinder, R., 1998. Internet Protocol Specification version 6. RFC 2460. Nokia, and Cisco.
  4. Hinder, R., and Deering, S., 1998. IP version 6 Address Architecture. RFC 2373. Nokia, and Cisco.
  5. Hinder, R., O’Dell, M., and Deering, S., 1998. IP version 6 Aggregatable Global Unicast Address Format. RFC 2374. Nokia, UUNET, and Cisco.
  6. Malkins, G., and Minnear R., 1997. RIPng for IPv6. RFC 2080. Xylogics, and Ipsilon Networks.
  7. Coltun, R., Furguson, D., and Moy, J. 1999. OSPF for IPv6. RFC 2740 Siara Systems, Juniper Networks, and Sycamore Networks.

Participants – Thailand

  • Assoc. Prof. Dr. Kanchana Kanchanasut – AI3/APAN Project leader (Thailand), AIT
  • Dr. Aekavute Sujare – Specialist, Distance Education Center, AIT
  • Mr. Olivier Nicole – Senior lab supervisor, CSIM division, AIT
  • Mr. Kitt Tientanopajai – Doctoral student (QoS/IPv6/Security) , Internetworking Research Lab., AIT
  • Ms. Tippyarat Tansupasiri – Doctoral student (RSVP/DiffServ), Internetworking Research Lab., AIT

Acknowledgment

The author would like to express his sincere appreciation to Assoc. Prof. Dr. Kanchana Kanchanasut for giving him an opportunity to attend the workshop. Grateful thank is also addressed to the Internetworking Research Lab. (IRL) of AIT for support all expenses of the trip.