ความต้องการใช้งาน Internet ทำให้เกิดการเติบโตทางโครงสร้างพื้นฐานของเครือข่ายเพิ่มขึ้น ทั้ง server, workstation, router, switch และ media แบบต่างๆ ถูกผลิดและใช้งานกันมากมาย ปัญหาที่ตามมาก็คือความเข้ากันได้ของระบบ โชคดีที่ Internet มีการวางมาตรฐานของ protocol ที่ใช้งานมาตั้งแต่ต้นว่าเป็น TCP/IP protocol suite ก็เลยทำให้ปัญหาเรื่องความเข้ากันได้ในระดับ software protocol หมดไป แต่ปัญหาที่ตามมาก็คือข้อจำกัดของมาตรฐาน โชคไม่ดีเลยที่ TCP/IP มีข้อจำกัดอยู่ไม่น้อยซึ่งมีผลทำให้ application ใหม่ๆ บนอ Internet ถูกจำกัดเพราะตัว TCP/IP ไปด้วย.. แต่วันนี้ข้อจำกัดเหล่านี้กำลังจะหมดไปแล้ว
เริ่มกันที่ปัญหา
อย่าง ที่บอกครับว่า TCP/IP เป็นมาตรฐานที่ทำให้เราสื่อสารกันบน Internet ได้ .. แต่ก็เพราะ TCP/IP นี่ละที่ทำให้เวลานี้การทำงานบน Internet ทำได้อย่างไม่เต็มประสิทธิภาพ และไม่ได้ดั่งใจ เพราะ TCP จะพยายามสร้างความน่าเชื่อถือในการส่งข้อมูล ซึ่ง application บางอย่างไม่ต้องการ ยกตัวอย่างพวก stream ทั้งหลาย ทั้ง audio/video พวกนี้ออกแบบให้ทนต่อ loss แต่ไม่ทนต่อ delay ดังนั้นถ้าส่งไม่ทัน ก็ไม่จำเป็นต้องส่งข้อมูลเลยก็ได้ .. แต่ TCP จะพยายาม retransmit ข้อมูลเสมอซึ่งไม่ใช่สิ่งที่ stream protocol ต้องการ .. ดังนั้น stream protocols ส่วนใหญ่ในเวลานี้จึงหนีไปใช้ UDP/IP แทน เพราะสามารถควบคุมการส่งได้เอง .. แต่นั้นไม่ใช่สิ่งที่นักวิจัยพอใจนัก เพราะในที่สุดข้อจำกัดก็ยังคงมีอยู่ที่ตัว UDP และ IP เอง .. เวลานี้เราเลี่ยงสิ่งเหล่านี้ไม่ได้เพราะเราต้องการความเป็นมาตรฐาน..
.. จากข้างต้น หลายคนอาจจะคิดว่า ในเมื่อ TCP/IP มีข้อจำกัดมาก ทำไมถึงไม่เปลี่ยนไปใช้อย่างอื่น .. ที่จริงแล้วไม่ใช่ทำไม่ได้นะครับ แต่ทำได้ช้า (มากๆๆๆ) เนื่องจากว่า Internet โตเร็วกว่าที่นักวิจัยคาดคิด มันโตเร็วจนเวลานี้ไม่สามารถควบคุมอะไรได้แล้ว การจะเปลี่ยนแปลงอะไรก็ตามที่เกี่ยวกับ protocol บน Internet เวลานี้แทบจะเป็นไปไม่ได้เลย .. จากสถิติพบว่ากว่า protocol ใดจะใช้งานบน Internet ได้จะเสียเวลาประมาณ 10 ปี (โอ้โฮ..) ถึงจะเริ่มแพร่หลายและมีการยอมรับเพราะว่ากว่าจะ เห็นว่ามันดี กว่าจะทำให้อุปกรณ์สนับสนุนการทำงานได้ กว่าจะ upgrade อุปกรณ์เกือบจะทั้งโลก มันเสียเวลาไม่ใช้น้อยเพราะระบบ Internet มันเป็นแบบ static มันปรับเปลี่ยนตัวเองไม่ได้ administrators จะเป็นคนไปปรับเปลี่ยนอุปกรณ์เหล่านี้ อย่างเช่น upgrade OS ของ router ใหม่ กว่าจะเปลี่ยนกันทั้งโลกต้องรอนานขนาดไหน เกิดเอาไปใช้แล้วมาเจอ bugs ก็แย่อีก..ต้องรอตัวแก้ bugs แล้วค่อย upgrade ใหม่ ซึ่งไม่สะดวกแลย .. เอ.. ไม่มีทางเลือกอื่นเลยเหรอ ???
ทางเลือก (ทางออก ??)
เมื่อสองปีที่แล้ว Defense Advanced Research Project Agency : Information Technology Office (DARPA ITO) ของ กระทรวงกลาโหมสหรัฐ ซึ่งเดิมเคยให้ทุนวิจัยพัฒนาเครือข่าย Internet ได้พูดถึงเทคโนโลยีทางเครือข่ายอันใหม่และพูดถึงศัพท์คำว่า “Active Network” ว่าเป็น network ที่อาจจะมาแทน Internet ในอนาคต ..แต๊แน.. DARPA ITO ได้วาง concept และกรอบการทำงานของ active network และเริ่มให้ทุนทำวิจัยกับมหาวิทยาลัยต่างๆ ในช่วงปลายปี 1996 ซึ่งมีมหาวิทยาลัยชั้นนำในสหรัฐเข้าร่วมโครงการ..Active Network คืออะไร ?? .. จะเอามาแทน TCP/IP บน Internet ได้เชียวเหรอ แล้วจะดีกว่ายังไง ?
Active Network พัฒนามาจากระบบ Packet Switched Network อย่าง Ethernet หรือ IP นั่นล่ะครับ (แล้วแต่ว่าจะพิจารณา layer ไหน) แต่จะเพิ่มความสามารถในการ “ประมวลผล” เข้าไปในอุปกรณ์ของเครือข่าย อย่าง router หรือ switch อุปกรณ์เหล่านี้จะไม่เพียงแต่ส่งข้อมูลต่อเป็นทอดๆ (forward) จนถึงปลายทาง แต่จะสามารถคำนวณและประมวลผลเพื่อเปลี่ยนแปลงข้อมูลหรือเปลี่ยนการทำงานของ router/switch ได้ Packet ที่รับ-ส่งใน Active Network จะมีส่วนของโปรแกรมที่จะไปสั่งงานฝังอยู่ โปรแกรมนี้จะถูกสั่งให้ทำงานเมื่อ Packet ถูกส่งมาถึง router ที่กำหนด อันนี้คือหลักการคร่าวๆ ของ Active Network.. เอ.. แล้วเราจะได้อะไรบ้างจาก Active Network ล่ะ..?
.. จะว่าไปแล้วมันเข้าตากรรมการจังๆ เลย .. เพราะเมื่อมันเปลี่ยนแปลงการทำงานของ router/switch ได้ด้วยโปรแกรมที่ฝังอยู่ใน packet งั้นต่อไปเราอาจจะไม่มีความจำเป็นต้องใช้ standard protocol กันอีกเลยก็ได้ เพราะเราสามารถโปรแกรม protocol ฝังลงใน packet ได้เลย .. อย่างเช่นการส่ง stream video จากเครื่องนึงไปอีกเครื่องนึงสามารถทำได้โดยการส่งคำสั่งในการประมวลผล stream ไปเก็บไว้ที่ active router แล้วจึง forward stream data packet ไปตาม active router นั้นๆ.. ด้วยวิธีนี้เราจึงลดข้อจำกัดต่างๆ ของ standard protocol ออกไปได้ อีกทั้งยังลด overhead ในการประมวลผลหลายๆ layer ลงเหลือแค่ process เล็กๆ อันเดียว ประสิทธิภาพจึงสูงกว่าและที่สำคัญคือเราสามารถสร้าง protocol ใหม่ ฝัง code ลงไปใน packet แล้วก็ปล่อยไป execute ตาม active router ได้ในทันที .. การนำ protocol ใหม่ๆ มาใช้งานก็ทำได้เร็วขึ้น ไม่ต้องรอนานถึงสิบปี เพราะตัว active router hardwareไม่ต้องเปลี่ยนอะไรเลย การเปลี่ยนแปลงอยู่ที่ code ใน packet เท่านั้นเอง เราอาจจะเขียน code สำหรับบีบอัดข้อมูลใส่ลงไปใน packet เพื่อให้ active router บีบข้อมูลให้อัตโนมัติเวลาส่งข้อมูล เราอาจเขียนโปรแกรมเข้ารหัสข้อมูลส่งให้ router ต้นทาง และโปรแกรมถอดรหัสส่งให้ router ปลายทางเพื่อทำการส่งข้อมูลผ่านการเข้ารหัสระหว่าง router สองตัว เราอาจสั่งให้ router ทำงานเป็น firewall ได้โดยการกำหนด routing table ใหม่ เราอาจเปลี่ยนภาพการเชื่อมต่อทางกายภาพให้เป็นแบบอื่นได้โดยการสั่งให้ router หลายๆ ตัวทำงานลวงผู้ใช้ เราสามารถดักจับผู้บุกรุกและลวงให้ผู้บุกรุกติดกับได้โดยใช้ code หลอก .. จะพูดอีกอย่างก็คือ Active Network ก็คือ “Programmable Network” .. เครือข่ายที่ไม่เพียงใช้ส่งข้อมูล แต่สามารถสั่งงานและควบคุมการประมวลผลได้โดยผู้ใช้..^^
ช่วงปี 1996-1997 นักวิจัยรุ่นแรกทางด้าน Active Network ได้ร่วมกันพัฒนาโดยมีแกนนำจากหลายมหาวิทยาลัย เช่น University of Pennsylvania, Massachusetts Institute of Technology (MIT), Cornell Universiry, University of Arizona,University of Kansas และอื่นๆ อีกสองสามแห่ง แม้ว่าจะมีการระดมความคิดในการทำงาน แต่การพัฒนาแต่ละที่ได้แยกเป็นทางใครทางมัน ผลที่ได้จากการวิจัยที่ออกมาในปลายปี 1997 และเมื่อไม่กี่เดือนก่อนคือระบบต้นแบบของ Active Network ที่ต่างกัน แต่มี concept ตรงกัน เช่น PLAN ของ UPenn, ANTS ของ MIT และ Ensemble ของ Cornell ทั้งสามมหาวิทยาลัยเป็นผู้นำในเรื่อง Active Network แต่ก็แยกกันทำคนละแบบ
PLAN : Programming Language for Active Network สร้างภาษาใหม่ที่ใช้กับ Active Network โดยเฉพาะ ระบบทั้งหมดทำงานบน Java หรือ OCaml เพื่อความสะดวกในเรื่องของ platform independence PLAN แยก code กับ data ไว้คนละ packet ระบบทั้งหมดถูกออกแบบให้เป็นอิสระต่อ TCP/IP ถึงแม้ปัจจุบันยังใช้ TCP/IP เป็นตัวส่งข้อมูล (ใช้ IP address..ว่างั้นเถอะ) แต่ PLAN เตรียมทางสำหรับใช้งานได้ต่ำถึงระดับ data link layer เลยทีเดียว
ANTS : Active Network Transfering System เขียนด้วย Java เหมือนกัน code สำหรับ execute บน router ก็เป็น class ของ Java ต่างจาก PLAN ที่ code กับ data จะถูกรวมไว้ใน packet เดียวกันเรียกว่า “Capsule” .. มีคนเอา ANTS ไปใช้งานและทำวิจัยกันบ้างแล้ว (คนใน MIT เองนั่นแหละ) และประสบผลสำเร็จในการพัฒนาระบบป้องกัน network flooding โดยสร้าง protocol ป้องกันไว้ ลักษณะของ ANTS จะใช้วิธี cache code เอาไว้ที่ active router ..ถ้า code ที่ต้องการ execute ไม่ได้อยู่ใน cache ตัว active router จะจัดการหา code นั้นให้เองอัตโนมัติ ..
ส่วน Ensemble พัฒนามาจากระบบ Horus ซึ่งพัฒนาจาก x-Kernel อีกที ระบบ x-Kernel เป็นระบบที่เรียกว่า adaptive system ในระบบจะมี code เรียกว่า micro-protocol ซึ่งเอามาเรียงต่อกันเป็นชั้นๆ เพื่อสร้างเป็น protocol ได้ ..แทนที่จะต้องเขียน code เองหมด ก็เป็นการเลือก micro-protocol มาใช้งานรวมกันแทน .. ทำให้พัฒนาได้เร็วกว่าแต่มีความยืดหยุ่นน้อยกว่าการเขียน code .. Ensemble ก็เป็นอย่างนั้น ..micro-protocol ของ Ensemble ตอนนี้เขียนด้วย C/C++ Ensemble เลยติดปัญหาเรื่อง platform independence อยู่ อย่างไรก็ตาม Ensemble ก็เป็นอีกระบบนึงที่มีคนเอาใปใช้ในงานวิจัยกันบ้างแล้วในตอนนี้ เพราะทำงานได้เร็วกว่าระบบอื่นๆ ..
ถ้าสนใจเรื่อง Active Network น่าจะเริ่มต้นกันที่ DARPA ITO ก่อนเลย จะได้เห็นว่าใครได้ทุนพัฒนากันบ้างและกำลังพัฒนาระบบอะไรกันอยู่ ถ้าอ่านเรื่องนี้จบแล้วเข้าใจ (ฮ่าๆๆ..) ก็ภูมิใจได้เลยว่า คุณเป็นหนึ่งในไม่ถึงร้อยคนในประเทศไทย และเป็นหนึ่งในไม่กี่พันคนของโลก (ณ วันที่ publish webpage นี้) ที่รู้จัก “Active Network” .. อนาคตของเครือข่าย Internet
References
- Tennenhouse D.L., Smith J.M., Sincoskie, W.D., Wetherall, D.J., and Minden, G.J., A Survey of Active Network Research, IEEE Communications Magazine, pp.80-86, January 1997.
- Tennenhouse, D.L., and Wetherall D.J., Toward an Active Network Architecture, Computer Communication Reviews, Vol. 25, No. 2, April 1996.
- Tientanopajai, K., and Kanchansut, K. A Design of Security Services for Active Network, Proceeding of the 1st Mobile Agents for Telecommunication Applications , October 1999.
- Hicks, M., Moore, J.T., Alexander, S.D., Kakkar, P., Gunter, C.A., and Mettles, S.M., The PLAN System for Building Active Networks, Department of Computer and Information Science, University of Pennsylvania, February 1998.
- Gunter, C.A, Hicks, M, Kakkar, P., Moore, J., and Mettles, S., PLAN : A Programming Language for Active Networks, Department of Computer and Information Science, University of Pennsylvania, 1997.
- Wetherall, D. J., Guttag J. V., and Tennenhouse D. L, ANTS : A Toolkit for Building and Dynamically Deploying Network Protocols, Laboratory of Computer Science, Massachusetts Institute of Technology, April 1998.
- Hayden, M., The Ensemble System, Ph.D. dissertation, Department of Computer Science, Cornell University, December 1997.
- Birman K., Gou, K., Hayden, M, Hickey, T., Friedman, R., Maffeis, S., Van Renesse, R., Vaysburd, A., and Vogels, W., Ensemble Groupware System, Cornell University, 1996.