IPng : ทำไมต้องเปลี่ยน IP เป็น version ใหม่ ?

สวัสดีค่ะ ฉบับนี้น้องมิ้นท์ลุยเอง .. ให้มันรู้ซะมั่งว่าไผเป็นไผ..อุ้ย..เสียงในฟิล์มออก..แหะๆ ..แต่จะเอาเรื่องอะไรดีอ่ะ..หันไปหันมาเจอคำนี้เข้าให้ IPng เอ้..สะกดคำสั่ง ping ผิดเหรอ .. ไม่ใช่แฮะ..เป็นคำย่อค่ะ มาจาก Internet Protocol Next Generation อู้หู ชื่อเท่ห์ดี ตกลงน้องมิ้นท์เขียนเรื่องนี้แหละ ใครห้ามแย่งน้องมิ้นท์นะ..

Internet Protocol ปัจจุบันไม่ดีตรงไหนล่ะ ?

ก่อน จะไป the next generation มาดู generation ปัจจุบันก่อนนะคะ Internet Protocol เป็นหนึ่งใน protocolหลักของเครือข่าย Internet ค่ะ (protocol หลักของ Internet ก็คือ TCP/IP ไง) ที่เราใช้ทุกวันนี้เรียกว่า Internet Protocol version 4 หรือจะย่อก็เป็น IPv4 .. อันว่า IPv4 นี้ถูกกำหนดเป็นมาตรฐานของ DARPA Internet Protocol Specifications มาตั้งแต่เดือนกันยายน 1981 (ก่อนน้องมิ้นท์เกิดเล็กน้อย..อิอิอิ) โดยจดเป็นมาตรฐานใน RFC 791 (ไม่ใช่ KFC ของโปรด momotaro นะ..อูย..พูดแล้วหิว) มีหน้าที่ในการ transfer ข้อมูลระหว่าง nodes ใน Internet ในสมัยนั้นก็ถือว่ารองรับงานได้ดีมากเลย ทั้งมหาวิทยาลัยแล้วก็หน่วยงานของรัฐบาลพากันต่อ Internet กันเพื่อแลกเปลี่ยนข้อมูลข่าวสารและ share computing resources กัน Internet ก็ค่อยๆ เติบโตตั้งแต่ไม่กี่ร้อยเครื่อง เป็นพัน เป็นหมื่น .. เป็นล้าน แล้วก็หลายๆ ล้านในปัจจุบัน ทีนี้พอมันเยอะๆ เข้าปัญหามันก็เริ่มเกิดขึ้นอะสิ

อย่างแรกเลยที่เจอก็คือ IP address ไม่พอ .. แหม..ต้องอธิบายกันหน่อย คือ เครื่องที่จะต่อ Internet จะต้องมี IP address ที่ไม่ซ้ำกับเครื่องอื่นๆ ค่ะ IPv4 ใช้ address ขนาด 32 bits รองรับได้เต็มที่ก็ 232 IP addresses ..อู้ย..ตั้ง 4 พันกว่าล้านเบอร์จะไม่พอได้ยังไงเนี่ย ..ไม่เชื่ออย่าลบหลู่..มันไม่พอจริงๆ ค่ะ เพราะว่า IP address ถูกแบ่งเป็นสองส่วนค่ะ คือ ส่วนของ network address แล้วก็ส่วนของ host address ตัว network address นี้ต้องขอจากหน่วยงานที่ได้เป็นคนจัดสรร IP ซึ่งก็คือ Network Information Center ค่ะ ขนาดของ network ที่ขอได้ก็มี 3 ขนาดคือ class A, class B, แล้วก็ class C อันใหญ่สุดคือ class A ค่ะ มี host address ได้มากถึง 224 addresses ประมาณ 16 ล้าน address แน่ะ แต่ class A มีได้ทั้งหมดไม่เกิน 127 networks ก็เลยจำกัดให้เฉพาะองค์กรที่ใหญ่มากๆ อย่างเช่นบริษัทที่มีสาขาทั่วโลกอย่าง IBM, HP หรือสถาบันการศึกษาอย่าง MIT ขนาดรองลงมาก็เป็น class B ค่ะ มีประมาณหมื่นหกพัน networks แต่ละ network ก็มี host ได้ 65,535 ตัว แล้วก็เล็กสุด class C มีประมาณสองล้าน network แต่ละวงมี host ได้ 255 เครื่อง ..

ในทางปฏิบัติจำนวน networks และ host ในแต่ละ network จะน้อยกว่านี้นิดหน่อย เพราะต้อง reserved ไปใช้อย่างอื่นด้วย ทีนี้ปัญหามันมีอยู่ว่าพอเราขอ network มาได้วงนึงก็หมายความว่าเราจอง host address ทั้งหมดของ network วงนั้นไว้แล้วไม่ว่าเราจะใช้จริงเท่าไหร่ก็ตาม .. อธิบายเองก็งงเอง .. ยกตัวอย่างดีกว่า อย่างเช่นถ้าเราได้ network class A มาวงนึงก็แปลว่าเราได้ใช้ address จาก Internet ไปแล้ว 16 ล้านเบอร์ถึงแม้ว่าในทางปฏิบัติเราจะใช้แค่ 10 – 20 เบอร์ก็ตาม address ที่เราไม่ใช้จะไปให้คนอื่นก็ไม่ได้ซะด้วย มันก็จะเสียทิ้งไปเฉยๆ ตอนนี้ class ที่จะถูกใช้มากที่สุดและมีแนวโน้มว่าจะหมดก่อนคือ class B ค่ะ เพราะหลายๆ หน่วยงานมีขนาดอยู่ในหลักร้อยหรือพัน hosts ก็เลยต้องการใช้ IP address มากกว่า 255 เบอร์ ถึงแม้ class B จะใหญ่กว่าที่ต้องการแต่ก็เลี่ยงไม่ได้เพราะ IPv4 กำหนดให้แบ่งอย่างนั้น ..

ปัญหา อันนี้ได้รับการแก้ใขโดยใช้ Classless Inter-Domain Routing (CIDR) คือแทนที่จะแบ่ง network เป็น class A, B, C ไม่เอาแล้ว..เปลี่ยนใหม่เป็นเอา network ขนาดเล็กๆ อย่าง class C มารวมกันเป็นขนาดที่ใหญ่ขึ้นได้ ทีนี้เราก็ขอ class C หลายๆ อันมาทำเป็น network ที่ขนาดเหมาะกับองค์กรได้ไงคะ CIDR ยังช่วยให้ routing table (ตารางที่เก็บข้อมูลว่า router จะส่ง packet ไปที่ปลายทางได้ยังไง) มีขนาดเล็กลงด้วย อันนี้ช่วยได้มากเลยเพราะ routing table ของ routers ที่เป็น backbone จะมีขนาดใหญ่มากเพราะต้องรู้โครงสร้างของ network ที่ต่ออยู่ทั้งหมด ตอนนี้เกือบทุก ISP บน Internet ไม่ว่าเล็กหรือใหญ่ก็ใช้ CIDR กันหมด ถ้าไม่มี CIDR ป่านนี้ Internet ล่มไปแล้ว (เรื่องจริงนะคะ)..แต่ว่านะ CIDR ก็ไม่ได้เป็นสิ่งที่จะใช้ได้ในระยะยาว นักวิจัยประมาณว่า IP addresses จะเริ่มไม่พอในช่วงปี 2000-2018 ถ้าไม่รีบแก้ใขมีหวังเดี้ยงจริงๆ คราวนี้..

ปัญหา IP address ไม่พอนี่ถือเป็นปัญหาใหญ่สุดของ IPv4 ค่ะ .. แต่ก็ยังมีปัญหาอื่นๆ อย่างเช่น ความปลอดภัยของข้อมูล IPv4 ไม่มีกลไกอะไรเกี่ยวกับ security เลย ทุกวันนี้เราก็ต้องทำ security ในระดับ application แทน สร้างความยุ่งยากอยู่เหมือนกันค่ะ การสนับสนุน mobility ก็ไม่มี (ว่างๆ น้องมิ้นท์จะเขียนเรื่องนี้..ตอนนี้แปะโป้งไว้ก่อน) จะย้ายเครื่องไป network อื่นก็แปลว่าเราไม่ได้อยู่ network เดิมซะแล้ว .. ทีนี้น้องมิ้นท์ก็เข้าไปก๊อป mp3 ไม่ได้นะสิ ไม่ดีเลยประสิทธิภาพก็ควรปรับปรุงเพิ่มเพราะว่า link-layer เดี๋ยวนี้ทำงานเร็วกว่าเดิมเยอะ อย่างพวก ATM, หรือ Gigabit Ethernet อู้ย..เร็วไฟแลบ แต่ว่า IPv4 process ช้าก็เลยใช้ network ได้ไม่เต็มที่อะไรทำนองนี้ค่ะ อ้อ..เรื่องการสนับสนุน real-time processing ด้วย..แหม..อันนี้ก็สำคัญนะคะ ถือเป็นจุดด้อยอันนึงของ Internet ลองนึกว่าเราใช้ Internet phone พูดไปแล้ว 5 นาทีเพื่อนเรายังไม่ได้ยินเสียงเรา โถ..มัวแต่ “ฮัลโหล..แคนยูเฮียร์มี๊” ..อีกด้านนึงก็ “ฮัลโหลๆ ฮัลโหล เฮียเหรอคะ..” ..หมดชั่วโมง ISP กันพอดี..เศร้า

The Next Generation of Internet Protocol

เห็น มั้ยคะ..สุดท้ายมันต้องแก้ใขปัญหาเพียบเลย ก็มีคนคิดว่าต้องเปลี่ยน Internet Protocol เป็นตัวใหม่แล้วล่ะ ก็เป็นที่มาของ The Next Generation ล่ะคะ .. นักวิชาการก็เลยประชุมกันว่า.. จะให้ IPng นี่ทำอะไรบ้าง จะแก้ใขปัญหาแต่ละอันยังไง กลไกการแก้ปัญหาจะทำยังไง และที่สำคัญมันต้องใช้งานได้ทุกที่ ทุกประเทศโดยไม่มีขีดจำกัดเรื่องสิทธิบัตรอะไรต่ออะไรด้วย อ้อ..แล้วก็ต้องเผื่อสำหรับอนาคตอีก..ไม่ง่ายเลยใช่มั้ยคะ..หลังจากรวบรวม ข้อมูลและตกลงกันก็ประกาศเป็น recommendation ของ IPng ขึ้นมา แล้วก็ตั้งทีมทำงานเรื่อง IPng ..สุดท้ายก็ได้ผลงานออกมาเป็น Internet Protocol version 6 หรือ IPv6 ค่ะ..อ้าวว..แล้ว version 5 ล่ะคะ..จริงๆ ก็มี version 5 ค่ะ แต่เอาไว้เล่าทีหลังนะคะ .. เอ้ IPv6 มันเป็นยังไงล่ะทีนี้.. น้องมิ้นท์ไปหาอ่านมาแล้ว.. อย่างแรกเลยคือเรื่อง address ไม่เอาแล้วค่ะ 32-bit เล็กไป..IPv6 ใช้ 128 bits ..บะเริ่มเฮิ่มเลย..หลายคนเห็น 128 bits หน้าเบ้..จะเท่าไหร่กันเชียวแค่ 4 เท่าของอันเก่า ใช่ค่ะแค่ 4 เท่าแต่เป็น 4 เท่าของเลขยกกำลังนะคะอย่าลืม ถ้าเทียบจริงๆ มันตั้ง 296 เท่าต่ะหาก น้องมิ้นท์จะเขียนให้ดู address ขนาด 128 bits มีจำนวนเท่ากับ 340 282 366 920 938 463 463 374 607 431 768 211 456 ตั้ง ~3.4×10^38 เชียวนะคะ..เครื่องคิดเลขน้องมิ้นท์ยังกดได้แค่ 12 หลักเอง ถ้ายังนึกไม่ออกว่าเยอะขนาดไหน น้องมิ้นท์มีคำที่ใช้เทียบมาให้ดูค่ะ พื้นผิวของโลกเรามีประมาณ 511 263 971 197 990 ตารางเมตร แปลว่าหนึ่งตารางเมตรมีได้ 665 570 793 348 866 943 898 599 IP addresses แน่ะ.. แต่ว่ามีนักวิชาการคนนึงคำนวณว่าจำนวน IP address ที่ใช้งานจริงจะอยู่ในช่วง 8×1017 ถึง 2×1033 ซึ่งก็ยังมากอยู่ดีนั่นแหละค่ะ ก็จำนวนอย่างต่ำ 8×10^17 แปลว่าเราใช้IP address ได้ 1,564 เบอร์ต่อตารางเมตร ห้องนอนน้องมิ้นท์มี IP ได้เป็นหมื่นเบอร์เลย ขนาดนี้คงมากพอที่จะใช้บนอาณานิคมต่างดาวด้วยมั้งเนี่ย..

IPv6 addresses จัดสรรดีกว่าเดิมเยอะค่ะ แบ่งเป็นลำดับขั้นได้ 5 ชั้น ตั้งแต่ registry, provider, subscriber, subnet และ interface ID แต่ละชั้นก็จะถูกกำหนดค่าโดยชั้นที่สูงกว่า .. สรุปคือ IPv6 Internet ก็จะมีหลาย registry แต่ละ registry ก็มีหลาย provider, แต่ละ provider ก็มีหลาย subscriber, and so on ค่ะ… ชั้นที่สูงกว่าก็จะดูแลและมีสิทธิกำหนด ID ของชั้นที่ต่ำกว่าได้ นอกจากนี้ก็ยังมี IP addresses ที่จองไว้สำหรับทำงานอย่างอื่นด้วย อย่าง multicasting, local-use network (network ที่ใช้ IPv6 แต่ยังไม่ต่อกับ IPv6 backbone), และ IPv4-compatible address แต่รวมๆ แล้ว address ที่กำหนดไว้เป็นเพียง 15% ของ address ทั้งหมดค่ะ เหลืออีก 85% ยังไม่ได้คิดว่าจะเอาไปทำอะไรก็เลย reserve ไว้เผื่อในอนาคต..น้าน..เหลือเฟือ

IPv6 มีอะไรดีอีก ?

มีเยอะ เหมือนกันค่ะ..อย่างความปลอดภัยในระดับ packet ก็มีเพิ่มขึ้นมาโดยใช้กลไกของ IP security framework (IPSec) ตัว IPv6 จะเข้ารหัสข้อมูลและตรวจสอบให้เอง สบายผู้ใช้และนักพัฒนาโปรแกรมไปหลายค่ะ mobility support ก็มีโดยเอากลไกของ Mobile IP มาใช้งาน ความเร็วประสิทธิภาพก็เพิ่มขึ้นเพราะ packet ถูกออกแบบใหม่ให้มี header คงที่ซึ่งง่ายต่อการ process .. หากมีการกำหนด options ต่างๆ options เหล่านั้นก็จะไม่ได้ใช้งานจนกว่าจะถึงปลายทางแปลว่า router ไม่ต้องทำงานตาม options พิเศษ ก็จะทำให้ router ประมวลผลงานได้เร็วขึ้น packet ก็ขนข้อมูลได้มากขึ้นด้วยค่ะ เดิมใน IPv4 ขนาด packet จะต้องไม่เกิน 65,535 octets (octet = byte ค่ะ เป็นหน่วยสำหรับใช้ใน networking ส่วน byte เอาใว้ใช้กับหน่วยความจำค่ะ) แต่ใน IPv6 มี option ที่เรียกว่า Jumbo Mambo..อุ๊ย..Jumbo payload ค่ะ ซึ่งทำให้ packet มีขนาดได้ถึง 4 พันล้าน octets หรือ 4GB นั่นแหละ..ก็เรียกว่าขน harddisk ไปได้ทั้งลูกล่ะค่ะ… IPv6 สนับสนุน Quality-of-Service (QoS) ด้วย ใน IPv6 traffic แต่ละประเภทสามารถกำหนดลักษณะของการส่งข้อมูลและระดับความสำคัญได้ ทำให้ real-time processing มีความเป็นไปได้ (มากขึ้น) บน Internet ค่ะ

ถ้าดีแล้วทำไมยังไม่ใช้ IPv6 กันล่ะ ?

IPv6 มีดีก็มีเสียเหมือนกัน ข้อเสียก็คือ…จะใช้ IPv6 ก็ต้องเลิกใช้ IPv4 ค่ะ ซึ่งเป็นปัญหาอยู่เหมือนกันเพราะว่าทุกวันนี้ Internet คือ IPv4 ทุกอย่างที่ทำงานบน Internet ขึ้นกับ IPv4 ถ้าจะเปลี่ยนทันทีก็สาหัสล่ะค่ะเพราะ IPv6 มันไม่ compatible กับ IPv4 จะเปลี่ยนก็จะกระทบถึง applications และ services อื่นๆ อีกมากมาย เรื่องนี้เค้าก็พยายามทำให้การเปลี่ยนแปลงค่อยเป็นค่อยไปค่ะ โดยมีการตั้งกลุ่มทำงานชื่อ IP Transition (IETF’s iptran) ทำการศึกษาวิจัยเพื่อหาทางเปลี่ยนจาก IPv4 เป็น IPv6 โดยให้มีผลกระทบน้อยที่สุด ซึ่ง iptran ได้เสนอวิธีหลายๆ อย่างที่ทุกวันนี้ก็กำลังใช้กันอยู่ เช่นใช้ dual stack คือให้ host run ทั้ง IPv4 และ IPv6 เพื่อจะได้ใช้งานได้ทั้งสอง protocol หรือใช้ translator เพื่อแปลง packet ระหว่าง IPv4 กับ IPv6 แบบนี้ยากหน่อยเพราะ IPv6 มีอะไรมากกว่าที่ IPv4 สนับสนุนอยู่ หรืออีกวิธีนึงคือขุดอุโมงค์ (tunneling) ค่ะ โดยเอา packet ของ IPv6 มาเป็น data ของ IPv4 เพื่อที่จะได้ส่งข้อมูลผ่าน IPv4 Internet ได้ค่ะ.. วิธี tunneling เป็นวิธีที่ดูจะนิยมกว่าเพื่อน แต่ก็ยังมีปัญหาทางเทคนิคเล็กๆ น้อยๆ บางอันที่ยังต้องแก้ไข

ตอนนี้มี IPv6 Network ใช้รึยัง ?

IPv6 Network มีใช้แล้วค่ะมีชื่อว่า 6BONE ..เป็น backbone ของ IPv6 network ของทั้งโลกใช้ในการศึกษาวิจัยมากกว่าจะเอามาใช้งานนะคะ 6BONE ตอนนี้ยังไม่กว้างมากเท่าไหร่ มีไม่กี่ประเทศที่เชื่อมบน 6BONE การเชื่อมต่อก็มีทั้งที่เป็น IPv6 จริงคือใช้อุปกรณ์ที่สนับสนุน IPv6 เลย, ใช้ translator ก็มี, ใช้ tunneling ก็มีค่ะ .. อะแฮ่ม..เมืองไทยก็มี node บน 6BONE เหมือนกันค่ะ ที่แน่ๆ ก็ที่ อ.จิ๊กเรียนอยู่ล่ะค่ะมีประมาณ 3 nodes (น้อยจัง..แต่จะมีเยอะๆ ไปทำไมล่ะ ไม่มีใครใช้ด้วยอ่ะ) มี node นึงทำหน้าที่ tunneling ไป 6BONE ที่ญี่ปุ่นค่ะ คิดว่าเกาะที่ 6BONE ของ WIDE นะคะ..แหม..ขอเม้าท์หน่อย.. division ที่ อ.จิ๊กเรียนเค้ามี T1 (1.536 Mbps) ไปญี่ปุ่นเชียวนะคะ ผ่านดาวเทียม JCSAT-3 ไปลงที่ NAIST แล้วก็เชื่อมไป WIDE อีกที มีชื่อเรียกอย่างเท่ห์ด้วยว่า AI3 network (AI3 ขยายมาเป็น AIII จะอ่านได้ว่า A, triple I) เป็น network งานวิจัยเฉพาะด้าน นอกจากนั้นก็มี link 1 Mbps ไปอเมริกา และก็มี 512 Kbps ไป NECTEC เป็น backup ใช้กันมันไปเลยค่ะ (น้องมิ้นท์เคยเห็นแผนภาพของศูนย์ remote sensing ที่ AIT มี T3 ความเร็ว 45 Mbps เชื่อมไปญี่ปุ่นที่ NACSIS ด้วยค่ะ .. 45 Mbps นี่กว้างพอๆ กับ bandwidth ของช่องทางไปต่างประเทศทั้งหมดของประเทศไทยเชียวนะคะ เรื่องค่าเช่าไม่ต้องพูดถึง..เดือนนึงเป็นล้าน) ..กลับมา 6BONE ต่อ..แหะๆๆ ได้เม้าท์แล้วก็ไหลทุกที.. เร็วๆ นี้วิศวฯ คอมฯ ม.ขอนแก่นก็อาจจะเกาะบน 6BONE มั่งโดย tunnel ไป AIT ค่ะ .. เอาล่ะค่ะ ตอนนี้น้องมิ้นท์คอแห้งแล้ว คงพอเท่านี้นะคะ วันหลังมีเรื่องอะไรน่าสนใจจะมาเล่าให้อีกนะคะ ..บ๊ายบาย

เดี๋ยวสิ..แล้ว version 5 ล่ะ ?

อุ้ย..นึก ว่าลืมไปแล้ว..กะจะชิ่งซะหน่อย แหะๆๆ .. โอเค้ ..แนะนำซักหน่อยนึงนะคะ.. Internet Protocol version 5 เป็น stream protocol มีชื่อทางการคือ ST-2 ค่ะ ST-2 เป็น experimental internet stream protocol ที่ทำงานเป็น connection-oriented ในระดับ network layer สนับสนุน QoS ได้ระดับนึงค่ะ ตอนนี้พัฒนาเป็น ST-2 plus แล้ว … ไหนๆ ก็พูดถึง IPv5 แล้วก็เอาให้ครบทุก v ละกันมี IP อีกหลาย v ยังกะตระกูลไอ้มดแดง-มดเอ็กซ์ เลย อันที่จริง IPv6 ไม่ได้เป็น IP version number สุดท้ายหรอก ตอนนี้มี IPv7 ชื่อทางการคือ TP/IX หรือ CATNIP ค่ะ แล้วก็มี IPv8 ชื่อ Paul’s Internet Protocol (PIP) และ IPv9 เป็นตัวสุดท้ายชื่อ TUBA – TCP and UDP with Bigger Address .. ทั้งสามตัวนี้ออกเป็น RFC ก่อน IPv6 แต่มี version number สูงกว่า..แปลกๆ เนาะ เก่ากว่า IPv6 แต่เป็น version สูงกว่า..รายละเอียดแต่ละตัวถ้าสนใจลองหาดูใน references ข้างล่างนะคะ.. เอาล่ะค่ะ ไปจริงๆ แล้ว จะไปหาเครื่องดื่มประจำภาคฯ ซะหน่อยล่ะค่ะ (ใครยังไม่รู้ ลองถาม momotaro ดูนะคะ) .. บ๊าย บาย.. *^^*


References

  1. Atkinson, R., 1995. Security Architecture for the Internet Protocol, RFC 1825.
  2. Callon, R., 1992. TCP and UDP with Bigger Addresses (TUBA) – A Simple Proposal for Internet Addressing and Routing. RFC 1347.
  3. Deering, S., and Hinden, R.,1995. Internet Protocol, version 6 (IPv6) Specification. RFC 1883.
  4. Francis, P., 1994. PIP Near-term Architecture. RFC 1621.
  5. Fuller, V., Li, T., Yu, J., and Varadhan, K., 1993. Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy. RFC 1519.
  6. Perkin, C. (ed.), 1996. IP Mobility Support. RFC 2002.
  7. Postel, J., 1981 Internet Protocol. RFC 791
  8. Topolcic, C., 1990. Experimental Internet Stream Protocol, Version 2 (ST-II). RFC1190.
  9. Ullmann, R., 1993. TP/IX: The Next Internet. RFC 1475.