วันอังคารที่ 24 สิงหาคม พ.ศ. 2553

HTTP (Hyper Text Transfer Protocol)

HTTP (Hyper Text Transfer Protocol)


HTTP ย่อมาจาก Hyper Text Transfer Protocol เป็นโปรโตคอลสื่อสารที่ทำงานอยู่บนระบบโปรโตคอล TCP HTTP ใช้ในระบบเครือข่ายใยแมงมุม (World Wide Web)จำหน่าย,แจกจ่าย รวมไปถึงการรับข้อมูล จากระบบสื่อกลางชั้นสูง (Hypermedia System) ที่ประกอบด้วยเครื่องให้บริการ (Server) ที่มีอยู่มากมายทั่วโลก โปรโตคอล HTTP วิ่งอยู่บน TCP/IP อีกชั้นหนึ่ง รูปแบบการทำงานจะไม่มีการจองสายโดย Client จะเรียกข้อมูลจาก Server โดยการส่ง Request ไปแล้วจะตัดการติดต่อทันที จากนั้นรอจน Server ส่งข้อมูลมาให้



ประโยชน์ของการทำงานแบบไม่จองสายของ HTTP ทำให้ WWW server สามารถให้บริการ client ได้หลายๆ คนพร้อมๆ กัน การสื่อสารของ WWW จึงมีประสิทธิภาพมากขึ้น

WWW (World Wide Web) คืออะไร

ปัจจุบัน World Wide Web เป็นหนึ่งในเทคโนโลยีด้านข่าวสารที่สำคัญที่สุดอันหนึ่ง ได้มีผู้นิยามความหมายของ World Wide Web อย่างมากมาย ่ในที่นี้จึงไม่ขอเพิ่มคำนิยามใดๆอีก แต่จะสร้างความเข้าใจให้กับคุณ
รูปแบบของลูกข่ายและเครื่องให้บริการ ( The client/server model) หากมองกันในมุมมองของนักเขียนโปรแกรมแล้ว World Wide Web ก็คือระบบ client/server ที่มีขนาดใหญ่ที่สุด ประกอบด้วยเครื่องให้บริการ (Server) และ เครื่องลูกข่าย (Client) จำนวนมากมายนับไม่ถ้วน โดยทั้งหมดจะทำการแลกเปลี่ยนข้อมูลข่าวสารซึ่งกันและกันตลอดเวลา ในระบบ client/serve การติดต่อสื่อสารระหว่างเครื่องลูกข่ายและเครื่องให้บริการโดยปกติจะเกิดขึ้นเพื่อกระทำงานบางอย่าง โดยอาจเป็นคำสั่งซื้อทางจดหมายที่สั่งมาที่บริษัท หรือข้อมูลของระบบการวางแผนสำหรับกลุ่มผู้บริหาร web จะเปลี่ยนสิ่งเหล่านี้ให้เป็นงานที่ยุ่งยากสลับซับซ้อนและเป็นงานที่ง่ายไปพร้อมกัน ส่วนที่ง่ายก็คือส่วนที่มาจากโปรโตคอลที่ออกแบบอย่างดี ที่ใช้ระหว่างเครื่องให้บริการและเครื่องลูกข่าย ส่วนที่ยากก็คือส่วนที่มาจากโปรโคคอลที่ผู้เขียนโปรแกรมออกแบบ ซึ่งอาจจะยากและสิ้นเปลืองการคำนวนมาก หากจะอธิบายให้ละเอียดให้เป็นรูปธรรมขึ้นอีกสักนิด นั่นคือ ถ้าคุณจะต้องเขียนโปรแกรม applicationที่เข้าจัดการกับงานลงทะเบียนลำดับ (order entry) คุณจะต้องกำหนดชนิดของการติดต่อ (transaction) ที่จะใช้ระหว่างเครื่องลูกข่ายของคุณกับเครื่องให้บริการ ซึ่งอาจเป็นการแลกเปลี่ยนข้อมูลเพื่อค้นหาค่า (look up) ลักษณะรูปร่างของสิ่งของในบัญขีหรือรายชื่อ เครื่องลูกข่ายจะต้องสร้างการเชื่อมต่อกับเครื่องให้บริการแล้ว ส่งคำร้องขอซึ่งอาจอยู่ในรูปแบบของข้อความ (text) หรือรหัสเลขฐานสอง (binary) จะส่งไปสู่เครื่องให้บริการ จากนั้นจะได้รับคำตอบกลับมาซึ่งโดยมาก คำตอบกลับจะอยู่ในรูปแบบของข้อความ แต่บางครั้งมีรหัสเลขฐานสองผสมมาด้วยในกรณีที่เป็นรูปภาพ ถ้าเราใช้ซอกเก็ต ของ TCP/IP ในการติดต่อนั้น เครื่องลูกข่ายจะต้องสร้างการเชื่อมต่อสู่ port ที่เครื่องให้บริการรออยู่ แล้วจึงจะส่งแพกเกจข้อมูลไปสู่เครื่องให้บริการ เราอาจจะต้องกำหนดโครงสร้างของแพกเกจร้องขอ (request packet) ให้มีขนาด 4 byte เพื่อให้ง่ายต่อการแปลข้อมูล เครื่องให้บริการจะอ่าน 4 byte นี้ออกจากซอกเก็ตเพื่อตีความตามนั้น และส่งข้อมูลตอบกลับไปสู่เครื่องลูกข่ายในรูปแบบที่กำหนดไว้แน่นอน (ดูรูป)



ในกรณีนี้คุณได้กำหนดให้มีส่วนหัว (header) 4 byte ที่ประกอบด้วยความยาวของคำอธิบาย (length of description) ในรูปของข้อความ (text) และมีตัวคำบรรยาย (description)นั้นตามต่อมา จากนั้นก็เป็นอีก 4 byte ที่บอกถึงความยาวของข้อมูลรหัสฐานสอง และตามด้วยชุดรหัสฐานสองนั้น (รหัสฐานสองนี้เป็นรูปภาพ) เมื่อเครื่องลูกข่ายได้รับข้อมูลเรียบร้อยแล้ว เครื่องให้บริการก็จะปิดการเชื่อมต่อและถือเป็นอันสิ้นสุดการดำเนินงาน จะเห็นได้ว่าในกรณีที่คุณเป็นผู้เขียนโปรแกรมนั้นจะเป็นงานที่ยืดหยุ่นมากทีเดียว คุณสามารถจะกำหนดรูปแบบที่แน่นอนของแพกเกจ สร้างรหัสนั้นให้มีประสิทธิภาพ ลดจำนวนการติดต่อทางระบบเครือข่ายหรือที่เรียกว่า network trafic ลงให้น้อยที่สุด และเพิ่มจำนวนของข้อมูลที่ส่งในแต่ละการติดต่อให้ได้มากที่สุด ในส่วนของ application ก็สามารถจะกำหนดและดำเนินงานส่งถ่ายข้อมูล (transaction) ระหว่างเครื่องลูกข่ายกับเครื่องให้บริการได้อย่างรวดเร็ว ปัญหาอาจเกิดขึ้นหลังจากที่ใช้งานไปแล้วประมาณ2 -3 เดือน เมื่อ application อันสวยหรูของคุณเป็นที่ต้องการใช้ในกลุ่มเครื่องที่มีระบบปฎิบัติการ (OS) ที่เป็น Windows 95 หรือ OS/2 ในเวลานั้นคุณจะต้องกลับไปสร้างโปรแกรมใหม่อีกสองตัวเพื่อสนับสนุนทั้งสองระบบนี้ และอาจจะต้องทำเพิ่มขึ้นอีกเพื่อใช้กับระบบอื่นๆ ที่อาจตามมาในไม่ช้า คงดีกว่าถ้าสามารถเขียนโปรแกรมครั้งเดียวแล้วสามารถใช้ได้ทุกๆระบบปฎิบัติการ (นั่นคือคุณต้องหันมาพึ่งHTTP แล้ว) แทนที่คุณจะต้องเขียนโปรแกรมสำหรับทุกๆระบบ คุณก็ใช้เครื่องลูกข่ายบน Web (Web client) อย่างเช่น Netscape Navgator ทำงานสื่อสารกับเครื่องให้บริการบน Web (Web server) เพื่อสร้างระบบ client/server ของคุณ

รูปแบบเฟรมของ HTTP

เนื่องจาก HTTP เป็นโปรโตคอลที่ทำงานบน TCP ดังนั้น รูปแบบเฟรมของ HTTP จึงถูกจัดเป็นส่วนของข้อมูลของเฟรม TCP ดังรูป เฮดเดอร์ของ HTTP จะอยู่ในรูปของข้อความ (text) ข้อมูลของ HTTP โดยปกติจะเป็นข้อความ (text) ด้วยเช่นกัน แต่ก็เป็นรหัสฐานสอง (binary) ได้ใน เช่นกรณีที่เป็นรูปภาพ



การติดต่อสื่อสารของ HTTP

รูปแบบการสื่อสารของ HTTP เป็นรูปแบบที่ง่ายมาก : เครื่องลูกข่ายจะสถาปณาการเชื่อมต่อกับเครื่องให้บริการ (remote server) จากนั้นก็ส่งคำร้องขอ (Requests)ไปให้เครื่องให้บริการ เครื่องให้บริการเมื่อได้รับการร้องขอก็จะประมวลผลและส่งการตอบกลับ (Response) กลับไปให้เครื่องลูกข่าย แล้วปิดการเชื่อมต่อ

การร้องขอ (Requests)

คำร้องขอของ HTTP นั้นง่ายมาก บรรทัดแรกจะระบุวัตถุ (Object) พร้อมด้วยชื่อคำสั่งที่ระบุถึงวิธีการ คำสั่งที่ใช้โดยทั่วไปคือ "GET" ซึ่งเป็นการขอให้เครื่องให้บริการส่งสำเนาของวัตถุ (Object) นั้นมาให้เครื่องลูกข่าย เครื่องลูกข่ายสามารถส่งเฮดเดอร์ตัวเลือก (Optional headers) ตามมาอย่างต่อเนื่องได้ ตามรูปแบบของ RCF-822

เฮดเดอร์ที่ใช้โดยทั่วไปคือ

"Accept" ซึ่งจะแจ้งให้เครื่องให้บริการทราบว่า เครื่องลูกข่ายสามารถรับหรือทำงานกับวัตถุ (object) ชนิดใดได้บ้าง และ

"User-Agent" ซึ่งจะให้ชื่อการอิมพลีเมนท์ของเครื่องลูกข่าย



เมื่อไคลเอนต์ต้องการติดต่อกับเซิร์ฟเวอร์จะทำการส่ง Request Message โดยมีรูปแบบดังนี้

[method] http://[host]:[port]/[abs-path][? query] HTTP/1.0 [CRLF]

Content-Length: [msg-body-len][CRLF]

Proxy-Connection: [proxy-conn][CRLF]

[CRLF]

[msg-body]

[method] เพื่อระบุว่า Client ต้องการทำอะไรกับ Sever

[host] เพื่อระบุ Server ในรูปแบบ dot decimal เช่น 10.0.0.1

[port] เพื่อระบุ Port ที่ใช้ในการติดต่อ (ค่ามาตรฐานคือพอร์ตหมายเลข 80)

[abs-path] เพื่อระบุว่าต้องการไฟล์ไหนที่อยู่บน server ต้องเป็น Absolute Path และCase-sensitive

[query] เพื่อระบุค่าต่างๆในกรณีที่มีการส่งค่าไปประมวลผลฝั่งเซิร์ฟเวอร์

[msg-body] เพื่อระบุข้อความซึ่งส่งไปยังเซิร์ฟเวอร์เก็บข้อมูลแบบ Text

[msg-body-len] เพื่อระบุความยาวของข้อความในเลขฐานสิบมีหน่วยเป็นไบท์

[proxy-conn] เพื่อระบุว่าการเชื่อต่อจะเป็นแบบ Keep-Alive (เชื่อต่อแบบ Persistence) หรือ Close (เพื่อหยุดการเชื่อมต่อ)

[CRLF] คือตัวอักษรในระบบ ASCII 2 ตัวคือ Carrier Return (No.15) และตามด้วย Line Feed (No. 12)





การตอบกลับ (Responses)

การตอบกลับก็ยังคงอยู่ในรูปแบบที่ง่ายมาก เริ่มต้นด้วยบรรทัดแสดงสถานะ ซึ่งจะบ่งบอกรุ่น (version) ของ HTTP ที่เครื่องให้บริการใช้อยู่ พร้อมกับรหัสผลลัพท์และข้อความอื่นๆ ตามด้วยเฮดเดอร์วัตถุ (optional object headers) ต่อเนื่องเป็นลำดับ ซึ่งที่สำคัญที่สุดคือ

"Content-Type" ซึ่งจะบ่งบอกชนิดของวัตถุ (object) ที่ส่งกลับไปด้วย

"Content-Length" ซึ่งจะบอกความยาวของวัตถุนั้น

ส่วนที่เป็นเฮดเดอร์นี้จะต้องปิดท้ายด้วยบรรทัดว่างๆหนึ่งบรรทัด เมื่อจบส่วนเฮดเดอร์ก็จะตามด้วยข้อมูลที่เครื่องลูกข่ายร้องขอ และเครื่องให้บริการก็จะปิดการเชื่อมต่อหลังจากที่ส่งข้อมูลไปแล้ว

เมื่อเซิร์ฟเวอร์ทำการประมวลผลแล้วจะทำการตอบกลับด้วย Responses Message โดยมีรูปแบบดังนี้

HTTP/1.0 [status-code] [status-reason] [CRL

Content-Length: [msg-body-len][CRLF]

Proxy-Connection: [proxy-conn][CRLF]

[CRLF]

[msg-body]

[status-code] เพื่อระบุว่าการร้องขอมีสถานะเป็นเช่นไร

[status-reason] เพื่อระบุสาเหตุปัญหาอย่างย่อ

[msg-body] เพื่อระบุข้อความเพื่อส่งไปยังไคลเอ็นต์ซึ่งแล้วแต่ Status Codeถ้า status = 200 จะทำการส่งข้อมูลกลับไป

ถ้า status = 4XX, 5XX จะทำการส่งรายละเอียดของปัญหากลับไป

[msg-body-len] เพื่อระบุความยาวของข้อความ ในเลขฐานสิบมีหน่วยเป็นไบท์

[proxy-conn] เพื่อระบุว่าการเชื่อต่อเป็นแบบ Keep-Alive (เชื่อมต่อแบบ Persistence) หรือ Close (เพื่อหยุดการเชื่อมต่อ)

[CRLF] คือตัวอักษรในระบบ ASCII 2 ตัวคือ Carrier Return (No.15) และตามด้วย Line Feed (No. 12)

ปฏิบัติการส่งข้อมูลของ HTTP

ในการปฎิบัติการของ HTTP จะมีลูกโซ่ของการร้องขอ-ตอบรับ (request-response) รูปแบบที่หนึ่ง เมื่อเครื่องผู้ใช้ทำการเชื่อมต่อโดยตรงสู่เครื่องให้บริการบน port หมายเลข 80 (อาจเป็นเบอร์อื่นได้แล้วแต่จะกำหนด) และส่งคำร้องขอ (request) ออกไป เมื่อเครื่องให้บริการซึ่งกำลังรออยู่ได้รับการเชื่อมต่อก็จะสร้างกระบวนการ (process) ใหม่ (หากคุณศึกษาวิชา OS มาแล้วเราจะใช้ศัพท์เฉพาะว่า "thread" จะตรงกว่า) เพื่อให้บริการกับคำร้องขอนั้น เมื่อคำร้องขอได้รับการประมวลผลแล้ว เครื่องให้บริการจะส่งคำตอบที่ได้กลับไปทางการเชื่อมต่อที่ port เดิม

รุ่นของ HTTP (Version of HTTP)

ต่อไปนี้จะได้กล่าวถึง HTTP ในรุ่นต่างๆ ตั้งแต่รุ่นแรก โดยจะอธิบายในคุณสมบัติและคำสั่งที่เพิ่มขึ้นเป็นลำดับเรื่อยไป

HTTP รุ่น 0.9

เป็น HTTP รุ่นแรกที่มีการใช้งาน คำอธิบายของโปรโตคอลนี้สรุปได้เพียงไม่กี่หน้าเท่านั้น ในรุ่นนี้เครื่องลูกข่าย จะติดต่อกับเครื่องให้บริการผ่านทาง TCP ใน port ที่ 80 จากนั้นส่งคำร้องขอในรูปแบบดังนี้

.

GET document.html CRLF

.

คำร้องขอขึ้นด้วยคำว่า GET จากนั้นก็ตามด้วยตัวอักษรที่เป็นช่องว่างหนึ่งตัวและชื่อของเอกสารในที่นี้คือ document.html ชื่อในที่นี้ต้องเป็นชื่อเต็มๆ และไม่มีช่องว่างใดๆ ขั้นอยู่

และในตอนท้ายของบรรทัดเครื่องลูกข่ายต้องส่งเครื่องหมาย return (carriage return line feed combination) ซึ่งจะบ่งบอกให้เครื่องให้บริการควรจะยอมต่อเครื่องลูกข่าย โดยส่งป้อนเพียงบรรทัดตามด้วยเครื่องหมาย return เท่านั้น

อีกวิธีหนึ่งใช้กับชื่อของเอกสารได้คือ เครื่องลูกข่ายจะส่งคำร้องขอเพื่อค้นหาโดยการเพิ่มตัวอักษรคำถาม ‘?’ ตามด้วยพจน์ที่ต้องการหา ในกรณีที่ต้องการค้นหาแบบหลายๆ พจน์ ก็อาจกำหนดได้โดยการใส่เครื่องหมายบวก ‘+’ ระหว่างพจน์ คำร้องขอแบบนี้จะถูกสร้างขึ้นเมื่อเอกสารที่ระบุนั้นมีบ้าย ISINDEX.HTML เท่านั้น ดังตัวอย่างเช่น

.

GET document.html?help+me CRLF

.

ในด้านคำตอบนั้น เครื่องให้บริการจะตอบกลับด้วยข้อความที่บรรจุอยู่ในเอกสาร โดยจะไม่มีข้อความข่าวสาร (Content Information) ชนิด MIME หรือข่าวสารอื่นใดส่งกลับไปให้เครื่องลูกข่าย

ในความเป็นจริงแล้วโปรโตคอลชนิดนี้จำกัดอยู่ที่การส่งเอกสารแบบข้อความของ HTML (HTML text docmuent) เท่านั้น เมื่อเอกสารถูกส่งออกไปแล้ว เครื่องให้บริการจะปิดการเชื่อมต่อเพื่อแสดงว่าสิ้นสุดเอกสารแล้ว ที่ต้องทำอย่างนี้เป็นความจำเป็นเนื่องจากไม่มีการกำหนดความยาวของเอกสารที่จะส่งบอกให้ทราบระหว่างเครื่องให้บริการ และเครื่องลูกข่าย ในขณะที่ส่งเอกสาร เครื่องให้บริการจะต้องจำกัดแต่ละบรรทัดที่ส่งโดยเครื่องหมาย return (carriage return) ซึ่งตามด้วยอักษรป้อนบรรทัด (line feed character) จากข้อมูลข้างต้นจะเห็นว่าการสร้าง HTTP รุ่น 0.9 นั้นทำได้ง่ายๆ เพียงไม่กี่สิบบรรทัด ปัญหาก็คือข้อจำกัดที่กำหนดให้มีเพียงเอกสารที่เป็นข้อความเท่านั้นที่ส่งได้ และไม่มีวิธีที่เครื่องลูกข่ายจะส่งข้อมูลข่าวสารอื่นๆสู่เครื่องให้บริการได้เลย

HTTP รุ่น 1.0

HTTP ในรุ่นนี้ได้รับการพัฒนาตั้งแต่ปี 1992 จนถึงปี 1996 ปรากฎตัวครั้งแรกในเอกสาร RFC ในเดือนพฤษภาคมปี 1996 HTTP 1.0 อยู่บนพื้นฐานเดียวกันกับ web server/client โดยส่วนใหญ่ ในเอกสาร RFC 1945 นั้นเป็นเพียง RFC ข้อมูลข่าวสาร ( informational RFC) มิใช่มาตรฐานที่เป็นทางการสำหรับระบบอินเตอร์เนต ( Official Standard of theInternet) แต่ภายหลังก็ได้มีการอธิบายถึงวิธีการใช้งานโดยทั่วไปของ HTTP 1.0 รวมถึงคู่มืออ้างอิงสำหรับเครื่องให้บริการในรูปของ CD ที่แนบมาด้วย

HTTP 1.0 พัฒนาจากความต้องการที่จะแลกเปลี่ยนข้อมูลที่มากกว่า ข้อมูลแบบข้อความ (text) ทั่วๆไป และกลายเป็นทางเลือกหนึ่งที่จะสร้างระบบกระจายข่าวสารแบบ hypermedia (distributed hypermedia information system) ที่ปรับเปลี่ยนให้เข้ากับความต้องการและจุดประสงค์หลายๆแบบได้ จากปี 1994 ถึงปี 1997 การพัฒนาของระบบ web จากกลุ่มเล็กๆ ในสาขาวิทยาการคอมพิวเตอร์เพื่อจะแสดงผลงานวิจัยของตนออกสู่หน่วยงานศูนย์กลาง ได้พัฒนาขยายตัวอย่างรวดเร็ว จนปัจจุบันรายการโทรทัศน์กว่าครึ่งหนึ่งจะมีการประกาศ URLของตนเอง จึงเป็นที่ยืนยันได้ว่า HTTP ได้แพร่ขยายอย่างมากมายมหาศาล จุดเปลี่ยนหลักๆ จาก HTTP 0.9 เดิมคือการใช้เฮดเดอร์ที่เหมือนกับ MIME ในการร้องขอและการตอบรับ โครงสร้างของการร้องขอ (request message) ได้โตขึ้นจากเดิม ซึ่งมีเพียงบรรทัดเดียวมาเป็นโครงสร้างที่มีหลายบรรทัดดังนี้

Full-Request = Request-Line

*( General-Header


Request-Header


Entity-Header )

CRLF

[ Entity-Body ]

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

เฮดเดอร์ที่เพิ่มขึ้นเป็นผลมาจากความต้องการที่จะส่งข่าวสารให้มากขึ้น ซึ่งสำหรับเครื่องลูกข่ายนั้น ข่าวสารนี้จะรวมไปถึงการส่งชนิดของข้อมูลที่ตัวมันต้องการด้วย โดยจะแสดงอยู่ในรูปพจน์ของชนิดตัวกลางของ MIME (MIME media types) ตัวอย่างเช่นพจน์ text/html และ image/gif จะถูกกำหนดไว้ เพื่อว่าเครื่องลูกข่ายและเครื่องให้บริการ จะได้เข้าใจถึงข้อมูลที่ส่งให้กันและนำไปใช้ได้อย่างถูกต้อง

นอกจากนี้เฮดเดอร์ที่เพิ่มขึ้นยังแจ้งให้เครื่องลูกข่ายได้ทราบถึงเงื่อนไขของข้อมูลในหน่วยความจำ โดยใช้เฮดเดอร์ If-Modified-Since ซึ่งจะทำให้เครื่องลูกข่ายสามารถถามแหล่งต้นตอของข้อมูลให้ตอบกลับมาว่าข้อมูลชุดที่เครื่องลูกข่ายต้องการนั้นมีการเปลี่ยนแปลงไปจากที่มีอยู่ในหน่วยความจำ

(ประเภทแคช) ของมันหรือไม่ โดยดูจากวันที่ที่กำหนดไว้ ด้วยวิธีนี้เครื่องลูกข่ายจะทำการอัพเดทเฉพาะข้อมูลชุดหรือหน้าที่จำเป็นคือมีวันที่ไม่ตรงกันเท่านั้น ช่วยลดเวลาและประหยัดการใช้ช่วงสัญญาณ(bandwidth) ได้อย่างมาก ในด้านของเครื่องให้บริการ มันสามารถส่งข้อมูล (Information) ของสาระ (content) ที่ส่งมาได้ ใน HTTP 0.9 นั้นจะส่งได้แต่เพียงสาระซึ่งเป็นเพียงเอกสาร HTML เท่านั้น แต่ด้วยรูปแบบคำตอบรับที่ขยายเพิ่มขึ้นใน HTTP/1.0 นี้ สามารถแจ้งให้กับเครื่องลูกข่ายทราบได้อย่างแน่นอนว่าสาระที่จะส่งเป็นข้อมูลประเภทไหน ดังรูปแบบต่อไปนี้

Full-Response = Status-Line

*( General-Header


Request-Header


Entity-Header )

CRLF

[ Entity-Body ]

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

การมีเฮดเดอร์ที่เพิ่มขยายนั้น เพื่อให้เครื่องให้บริการบ่งบอกถึงชนิดของข้อมูลของสาระที่ส่งมาประกอบกับเอกสาร HTML พื้นฐานได้ ทำให้การใช้รูปภาพและข้อมูลเสียงเป็นที่นิยมจนกลายเป็นรูปแบบสาระที่เครื่องให้บริการต้องส่งเสมอๆ

นอกจากนี้ HTTP 1.0 ยังได้เปลี่ยนวิธีการร้องขอใหม่ โดยเพิ่มคำสั่งนอกเหนือจากคำร้องขอด้วย GET คือ HEAD และ POST การร้องขอด้วย HEAD จะอนุญาติให้เครื่องลูกข่ายร้องขอสาระจากเครื่องให้บริการ และ รับข้อมูลของสาระทั้งหมดได้โดยไม่ต้องรับสาระนั้นมาจริงๆ สิ่งนี้ได้ใช้กันมากในหุ่นยนต์และแมงมุม

Web ซึ่งใช้ในการสำรวจการเชื่อมต่อ (link) เพื่อรวบรวมและอัพเดทข้อมูล รวมถึงการตรวจสอบการเชื่อมต่อที่เสียหาย การร้องขอด้วย POST จะทำให้ web มีลักษณะของการตอบโต้กับผู้ใช้โดยตรง (interactive) มันทำให้เครื่องลูกข่ายสามารถส่งข้อมูลจริงๆไปให้เครื่องให้บริการเพื่อนำไปประมวลผลได้ เนื่องจากวิธีการแบบ GET เดิมนั้นการส่งข้อมูลจะถูกจำกัดด้วยจำนวนของข้อมูลที่เครื่องให้บริการจะสามารถรับได้ในส่วนของคำร้องขอ URI เท่านั้นดังที่เคยกล่าวไว้ในตอนต้น แต่ต้วยวิธีของ POST ซึ่งเสมือนไม่จำกัดในส่วนของ entity body จะทำให้การนำเข้า (input) ข้อมูลเช่น ใบสั่งของ, แบบประเมินผล, ใบสมัคร ต่างๆเหล่านี้สามารถทำได้บน Webpage ด้วย HTTP 1.0 นี้ เครื่องให้บริการยังสามารถตอบกลับ คำร้องของของเครื่องลูกข่าย ด้วยรหัสสถานะ (status code) รหัส 404 ที่เราคุ้นเคยและเกลียดที่สุดคือ รหัสสถานะระบุว่าไม่พบสาระนั้น

(Object Not found) จะถูกส่งจากเครื่องให้บริการ ในกรณีที่ไม่มีข้อมูลที่เครื่องลูกข่ายร้องขอมา รหัส 200 บ่งชี้ว่าเครื่องให้บริการสามารถตอบกลับได้อย่างสมบูรณ์ รหัส 302 บ่งชี้ว่าข้อมูลหรือสาระนั้นได้ย้ายได้ที่ตำแหน่ง (location) ชั่วคราว รหัส 401 คือต้องการการอนุญาติ ( authorization ) ในการเข้าถึงข้อมูลหรือสาระนั้น รหัส 500 บอกว่ามีความผิดพลาดเกิดขึ้นทางด้านเครื่องให้บริการ ขณะที่พยายามตอบรับการร้องขอของเครื่องลูกข่าย

รหัสที่น่าสนใจคือรหัส 401 คือรหัสสถานะไม่อนุญาติให้เข้าถึง นี่เป็นจุดเด่นของ HTTP 1.0 เลยทีเดียว

HTTP รุ่น 1.1

HTTP/1.1 ได้มีการจัดแบนด์วิดท์ให้ดียิ่งขึ้นไปกว่ารุ่น 1.0 ยกตัวอย่างเช่น HTTP/1.1 มีการแนะนำการเข้ารหัสขนส่งเป็นชิ้นส่วน (chunked transfer encoding) เพื่อทำให้เนื้อหาบนการเชื่อมต่อแบบคงอยู่ส่งถ่ายเป็นกระแสข้อมูลได้ (streaming) แทนที่จะเก็บลงในที่พักข้อมูล (buffer) การทำงานแบบสายท่อของเอชทีทีพี (HTTP pipelining) ก็เป็นอีกเทคนิคหนึ่งที่ช่วยลดความล่าช้าลงได้อย่างมาก ซึ่งทำให้เครื่องลูกข่ายสามารถส่งข้อความร้องขอได้หลายข้อความ ก่อนที่จะได้รับข้อความตอบรับของอันแรก อีกพัฒนาการหนึ่งคือการบริการเป็นไบต์ (byte serving) ซึ่งจะทำให้เครื่องแม่ข่ายส่งถ่ายข้อมูลมาเพียงแค่ส่วนหนึ่งจากทรัพยากรทั้งอัน ในช่วงตำแหน่งที่เครื่องลูกข่ายต้องการ

สถานะการทำงานของ HTTP

โปรโตคอล HTTP ได้กำหนดรหัสแสดงสถานการณ์ทำงานของโปรโตคอลไว้ โดย แบ่งกลุ่มของรหัสสถานะออกไว้เป็น 5 กลุ่มคือ



Response Status Code

1XX ได้รับข้อมูลและกำลังดำเนินการประมวลผลต่อ

100 Continue

101 Switching Protocol

2XX ได้รับข้อมูลประมวลผลและได้รับการตอบรับอย่างสมบูรณ์

200 OK

201 Created

202 Accepted

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

3XX ข้อมูลต้องได้รับการประมวลผลต่อไป

300 Multiple Choices

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

306 ----

307 Temporary Redirect

4XX ข้อผิดพลาดเกิดจากไคลเอนต์

400 Bad Request

401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allow

406 Not Acceptable

407 Proxy Authentication Required

408 Request Time-Out

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Large

415 Unsupported Media Type

416 Request range not satisfiable

5XX ข้อผิดพลาดเกิดจากเซิร์ฟเวอร์

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

570 Gateway Time-out

505 HTTP Version not supported









เอกสารอ้างอิง

- http://nanotech.sc.mahidol.ac.th/comlab/net/index.html

- http://www.modify.in.th/Website/Hypertext-Transfer-Protocol-HTTP-id70.aspx

- www.thaicert.org/paper/basic/tcp-ip.php

- http://www.widebase.net/knowledge/itterm/it_term_desc.php

-http://th.wikipedia.org/

MPLS (Multi Protocol Label Switching)

MPLS
(Multi Protocol Label Switching)
MPLS - Multiprotocol Label Switching เป็นโปรโตคอลที่ถูกพัฒนาขึ้นมาโดย The Internet Engineering Task Force (IETF) เพื่อให้การส่งต่อข้อมูลโดย IP แพ็กเก็ตนั้นลดกระบวนการต่าง ๆลง ให้คล้ายกับการส่งข้อมูลด้วยสวิตช์ และยังช่วยให้หน่วยประมวลผลหรือ ซีพียูของอุปกรณ์ทำงานลดลงตามไปด้วย สุดท้ายผลที่ได้คือ การส่งข้อมูลจากจุดหนึ่งไปอีกจุดหนึ่งโดยไม่เกิดการล่าช้า


โดยปกติการรับส่งข้อมูลด้วยเราเตอร์ที่ใช้ IP แพ็กเก็ตในการรับส่งข้อมูลนั้น จะมีส่วนหัวของแพ็กเก็ตที่ระบุที่อยู่ของต้นทางและปลายทาง การส่งต่อของแพ็กเก็ตจากต้นทางไปยังปลายทางสามารถเกิดความล่าช้าขึ้นได้ ปัญหาความล่าช้าที่สามารถเกิดขึ้นได้จากความเร็วในการค้นหาเส้นทางของที่อยู่ปลายทางของเราเตอร์ ไปจนถึงขั้นตอนและวิธีการส่งต่อ แพ็กเก็ตจากอุปกรณ์ตัวหนึ่งไปยังอีกตัวหนึ่ง

กระบวนการของ MPLS นั้นได้เพิ่มขั้นตอนอย่างหนึ่งเข้าไปใน IP แพ็กเก็ตเพื่อให้การส่งต่อแพ็กเก็ตเร็วขึ้น คือการใส่ป้ายชื่อหรือ Label เข้าไป การใส่ป้ายชื่อนี้เปรียบเสมือนกับการใส่รหัสไปรษณีย์เพิ่มเข้าไปในหน้าซองจดหมาย ผู้คัดแยกจดหมายไม่จำเป็นต้องดูว่าผู้รับเป็นใคร เพียงแต่แยกว่ารหัสไปรษณีย์รหัสไหนจะส่งต่อไปภาคไหน หรือจังหวัดไหนเท่านั้น จะเห็นได้ว่าการเพิ่มขั้นตอนเพียงบางส่วนเข้าไป จะสามารถไปลดเวลาการทำงานโดยรวมให้น้อยลงได้ แนวความคิดแบบนี้คล้ายกับวิธีการของ MPLS ที่เกิดขึ้นมาก็เพื่อลด Overhead ในการใช้งาน Virtual Circuit บนเครือข่าย TCP/IP ลงให้มากที่สุด ซึ่งจะเป็นการผนวกเครือข่าย ATM ซึ่งเป็นเครือข่ายแบบ Virtual Circuit Switching และใช้ ATM Switch ในเลเยอร์ที่ 2 เป็นหลัก เข้ากับเครือข่าย TCP/IP ซึ่งเป็นเครือข่ายแบบ Packet Switching และใช้ Router ในเลเยอร์ที่ 3 เป็นหลักเข้าด้วยกัน ประโยชน์ที่ได้รับก็คือการทำวิศวกรรมควบคุมการจรจรบนเครือข่ายที่มีประสิทธิภาพ จากเดิมที่โปรโตคอลสำหรับการกำหนดเส้นทางส่วนใหญ่ในเครือข่ายจะมองในส่วนของระยะทางเป็นหลัก แต่สำหรับ MPLS แล้ว จะมองที่ความสามารถในการไหลไปยังปลายทางของข้อมูลเป็นหลักแทน และมีกระบวนการกำหนดเส้นทางที่ฉลาดว่าผสมกับการใช้งานแบบ Virtual Circuit ที่มีลักษณะการส่งแบบ Streamline แทนการส่งแบบ Connectionless ทำให้สามารถแก้ปัญหาการจราจรบนเครือข่ายได้เป็นอย่างดี
เนื่องจาก MPLS มีการส่งแบบ Streamline ทำให้สามารถรับประกันเกี่ยวกับปริมาณข้อมูลต่อเวลาได้เป็นอย่างดี เพื่อใช้งานในลักษณะ Real-Time เช่น การถ่ายทอดภาพและเสียงผ่านเครือข่ายอินเตอร์เน็ต ได้โดยทั้งภาพและเสียงมีคุณภาพใกล้เคียงกับ คุณภาพที่ได้จากการชมโทรทัศน์หรือฟังวิทยุเลยทีเดียว รวมทั้งสามารถที่จะกำหนดระดับของ QoS ให้เหมาะกับผู้ใช้งานแต่ละรายได้โดยง่าย สามารถใช้งานเป็น Tunnel ให้ VPN ได้เป็นอย่างดี เนื่องจาก ISP ที่ต้องการให้บริการ VPN กับลูกค้าของตนสามารถกำหนด Virtual Circuit ระหว่าง ISP กับลูกค้าเพื่อเพิ่มคุณภาพให้กับ Tunnel แทน VPN แบบเดิม ๆ ที่วิ่งไปบนเครือข่ายตามมีตามเกิด เนื่องจากใช้งานแบบ Connectionless นั่นเอง สนับสนุนโปรโตคอลได้หลากหลาย ปัจจุบันนอกจากที่สนับสนุนเครือข่าย TCP/IP แล้วยังสามารถนำ MPLS ไปใช้กับเครือข่าย ATM และ Frame Relay หรือแม้กระทั้งใช้บนเครือข่ายทั้งสามซึ่งทำOverlayNetworkกันอยู่ก็ได้
การทำงานของ MPLS



ตัวอย่างวิศวกรรม ควบคุมการจราจรบนเครือข่ายด้วย MPLS
หลักการทำงานของ MPLS โดยสังเขปคือการสร้างระบบจัดเส้นทางของ Packet หรือการ Routing ขึ้นใหม่ภายในบริเวณของเครือข่ายที่กำหนด ซึ่งจะขอเรียกเส้นทางนี้ว่า LSP (Label Switch Path) โดยภายนิขอบเขตนี้ Packet ที่วิ่งเข้ามาจะถูกกำหนด Label ประจำตัวให้ใหม่ โดยไม่สนใจ Header เดิม (ซึ่งอาจเป็นของ TCP/IP) จากนั้นจึงวิ่งไปตามเส้นทางที่กำหนดไว้ใน LSP สำหรับ Label ชุดนั้นๆ ซึ่งเส้นทางนี้เป็นไปได้ทั้งการกำหนดตายตัวล่วงหน้า และการกำหนดแบบเปลี่ยนแปลงไปเรื่อยๆ ตามความเหมาะสม ซึ่งมีความซับซ้อนมากกว่าโปรโตคอลในการกำหนดเส้นทางของข้อมูลที่ใช้อยู่เดิมในเครือข่าย TCP/IP เช่นมีการคำนวณจากจำนวน hop ที่ส่งคำนวณจากเวลาที่ใช้น้อยที่สุด หรือพยายามให้ได้ตามเวลาจริง (Real-Time) เช่นสำหรับการส่งข้อมูลมัลติมีเดียและอื่นๆอีกมาก การทำงานจะทำได้เร็วกว่า Routing แบบเดิมเพราะ การคำนวณเพื่อจัดเส้นทางจะทำไว้ล่วงหน้า และเป็นอิสระจากการรับส่งข้อมูลแต่ละ Packet คือมีหน้าที่จัดเส้นทางใหม่ก็จัดไป เมื่อจัดเสร็จก็เก็บไว้ใช้งาน ส่วนหน้าที่รับส่งข้อมูลก็ทำไปเช่นกันไม่ยุ่งเกี่ยวกัน เมื่อมีข้อมูลเข้ามาถึงจะนำเส้นทางที่ได้เตรียมไว้มาใช้รับส่งข้อมูล เมื่อข้อมูลวิ่งมาถึงปลายสุดของ LSP ก็จะนำ Label ออกจาก Packet และปล่อยให้เป็นหน้าที่ของ Header เดิมของ Packet ทำหน้าที่นำข้อมูลส่งถึงปลายทางที่แท้จริง


ข้อดีของ Multi Protocol Label Switching (MPLS)



o มีความเสถียรและปลอดภัยสูงในการรับ-ส่งข้อมูล

o มีปริมาณช่องสัญญาณ (Bandwidth) มากถึง 10 Gbps เพื่อรองรับลูกค้ากลุ่มธุรกิจโดยเฉพาะ

o สามารถเลือกความเร็วได้ตั้งแต่ 64 Kbps-1 Gbps

o พร้อมรองรับ IP Application ต่างๆ ไม่ว่าจะเป็น VOIP, Routing Protocol, QoS, Multicast และ VDO Conference เพื่อตอบสนองชีวิตการทำงาน แบบที่จะเป็นที่นิยมในอนาคต โดยการรวมเทคโนโลยีต่างๆ ไว้เข้าด้วยกัน เพื่ออำนวยความสะดวกในการทำงาน
รูปแบบบริการ MPLS เพื่อองค์กร

1. MPLS point to point (VLL) เหมาะสำหรับการเชื่อมต่อจากสาขาหนึ่งไปยังสาขาหนึ่ง (รูป)
2. MPLS point to multipoint (VPN) เหมาะสำหรับเป็นการเชื่อมต่อระหว่างสำนักงานใหญ่กับหลายๆ สาขา หรือแต่ละสาขาเชื่อมต่ออันเอง

ประโยชน์ของ MPLS VLL/VPN
- เรียบง่าย นำเสนอ

Design network solution ที่เรียบง่ายแก่ลูกค้า

- ขีดความสามารถ

Core Network สามารถรองรับ Bandwidth ขนาดใหญ่ได้
- สามารถวัดผลได้

ง่ายต่อการวัดผลหากมีการเพิ่มสาขาลูกค้าใหม่ๆ สู่ Network
- สามารถขยาย

VPN ได้ สามารถเชื่อมต่อกับ Provider รายอื่นๆ เพื่อขยาย VPN ได้
- ง่ายต่อการบำรุงรักษา

Design และ ฐานโครงสร้างที่เรียบง่าย ทำให้ง่ายต่อการดูแลรักษา
- มีความยืดหยุ่น

มีความยืดหยุ่นสูง หากว่าสาขาจะต้องมีการเปลี่ยนแปลงรูปการเชื่อมต่อและวิธีการหาเส้นทาง
- ความคล่องตัว

เจ้าหน้าที่มีความคล่องตัว สามารถเข้าถึงสาขาต่างๆ ที่มี administration ได้
- ความมั่นคงปลอดภัย

มีความมั่นคงปลอดภัยเช่นเดียวกับ Leased Line/Frame Relay และ ATM
- น่าเชื่อถือ วางใจได้

Carrier Class สามารถทำให้ลูกค้าความน่าเชื่อถือและไว้วางใจได้
- เป็นที่นิยม

ผู้ปฏิบัติการด้าน telecom ทั้งหลายต่างก็เริ่มเปลี่ยนมาใช้ MPLS


ระบบ MPLS ในการติดตั้ง INTERNET



ตัวอย่างของระบบ MPLS ที่เหมาะสำหรับเจ้าของหอพัก คอนโด โรงแรม รีสอร์ต และโรงเรียน ในการติดตั้ง Internet

ตัวอย่างบริษัทที่นำบริการ MPLS ไปใช้งานในองค์กร

ทรู เปิดบริการ “MPLS Data Networking Solution” ผ่านเทคโนโลยีเครือข่ายมาตรฐานระดับโลกจากซิสโก้ โชว์ศักยภาพผู้นำตลาดลูกค้าองค์กรและเอสเอ็มอี
กรุงเทพฯ, 8 พฤษภาคม 2549 - ทรู เดินหน้ารุกตลาดลูกค้าองค์กรและเอสเอ็มอี จับมือซิสโก้ สุดยอดผู้นำเทคโนโลยีเครือข่ายมาตรฐานระดับโลก ประกาศเปิดบริการใหม่ “MPLS Data Networking Solution” ผ่าน MPLS (Multi-Protocol Label Switching) เทคโนโลยีใหม่ล่าสุดในรูปแบบเครือข่ายไอพีที่ช่วยให้การเชื่อมต่อเครือข่ายระหว่างสำนักงานง่ายยิ่งขึ้น ตอบรับการใช้งานขององค์กรที่มีสาขากระจายอยู่ในพื้นที่ต่างๆ พร้อมเติมเต็มชีวิตคอนเวอร์เจ้นท์ให้ลูกค้าองค์กร และเอสเอ็มอีด้วยจุดเด่นของเทคโนโลยีที่พร้อมรองรับทุกบริการเสริมแห่งอนาคตได้อย่างครบวจร
นายทรงธรรม เพียรพัฒนาวิทย์ ผู้อำนวยการบริหาร ด้าน Corporate Solutions, Wholesales & Data บริษัท ทรู คอร์ปอเรชั่น จำกัด (มหาชน) เปิดเผยว่า “ทรู ผู้ให้บริการสื่อสารโทรคมนาคมครบวงจร มุ่งมั่นในการสรรหานวัตกรรมและเทคโนโลยีเครือข่ายการสื่อสารที่มีประสิทธิภาพ เพื่อตอบสนองความต้องการในการสื่อสารหลากหลายรูปแบบ และพร้อมรองรับบริการสื่อสารใหม่ๆ ในอนาคตของลูกค้าองค์กรและเอสเอ็มอีได้อย่างครบวงจร ล่าสุด ทรู จึงร่วมกับ ซิสโก้ ผู้นำเทคโนโลยีเครือข่ายสื่อสารระดับโลก ผนวกจุดเด่นของเทคโนโลยี MPLS ของซิสโก้ เข้ากับการบริการระดับมาตรฐานสากลของทรู สร้างสรรค์บริการ “MPLS Data Networking Solution” ซึ่งเป็นโซลูชั่นที่ช่วยให้การสื่อสารภายในองค์กรมีประสิทธิภาพสูงสุด”
บริการ “MPLS Data Networking Solution” เป็นโซลูชั่นใหม่ที่พร้อมรองรับความต้องการสื่อสารของลูกค้าองค์กร โดยเฉพาะองค์กรที่มีสาขากระจายอยู่ตามที่ต่างๆ และต้องการเชื่อมต่อเครือข่ายเข้าหากัน เพื่อเพิ่มศักยภาพการสื่อสารภายในองค์กรให้มีประสิทธิภาพสูงสุด และยังช่วยเติมเต็มและตอบสนองชีวิตการทำงานแบบคอนเวอร์เจ้นซ์ให้ลูกค้าองค์กรและเอสเอ็มอี ในการรวมเอาเทคโนโลยีต่างๆ มาอำนวยความสะดวกให้เกิดประสิทธิภาพสูงสุดในการทำงาน โดยสามารถรองรับแอพพลิเคชั่นต่างๆ ในอนาคตได้อย่างเต็มประสิทธิภาพ ไม่ว่าจะเป็น VOIP, Routing Protocol, QoS, Multicast และ VDO Conference นอกจากนี้ยังให้ความเสถียรภาพและความปลอดภัยสูงในการรับส่งข้อมูลอีกด้วย
นายวรกร ภัทรายานันท์ กรรมการผู้จัดการ ระดับภูมิภาคอินโดจีน บริษัท ซิสโก้ ซีสเต็มส์ ภูมิภาคอินโดจีน กล่าวว่า “ทรู เป็นผู้ให้บริการด้านการสื่อสารในประเทศไทยที่มีการพัฒนาและคิดค้นบริการใหม่ๆออกสู่ตลาดอย่างต่อเนื่อง รวมทั้งมีความเชื่อมั่นในเทคโนโลยีไอพีซิสโก้จึงรู้สึกยินดีเป็นอย่างยิ่งที่ได้มีส่วนร่วมในการพัฒนาบริการใหม่ของทรูที่รองรับการสื่อสารทั้งดาต้าวอยซ์ และวีดีโอ โดยทรูเป็นรายแรกที่ลงทุนในเครือข่ายไอพีเน็ตเวิร์คความเร็ว 10 กิกะบิตในประเทศไทย และนับเป็นก้าวสำคัญอีกก้าวหนึ่งในการนำบริการใหม่ที่ทำงานบนเทคโนโลยี IP/MPLS มาให้กับลูกค้า"หัวใจของเครือข่ายของทรูในบริการ IP/MPLS คือเราเตอร์ Cisco 12000 Series และสวิตช์ Cisco Catalyst 4500 Series ซึ่งผลิตภัณฑ์ Cisco 12000 Series เป็นเราเตอร์ที่มีคุณสมบัติสูงสุดในท้องตลาดปัจจุบัน ด้วยความสามารถที่หลากหลาย อาทิ ความสามารถในการรองรับการส่งผ่านข้อมูลด้วยความเร็วตั้งแต่ 2.5Gbps/slot ไปจนถึง 40Gbps/slot, ความสามารถในการรองรับเทคโนโลยี IP/MPLS และ EDGE ส่วนผลิตภัณฑ์ Cisco Catalyst 4500 Series เป็นอุปกรณ์สวิตช์ที่ช่วยเสริมความสามารถให้กับเครือข่าย EDGE ด้วยคุณสมบัติที่โดดเด่น เช่น สมรรถนะที่เชื่อถือได้, ซีเคียวริตี้ระดับแอดวานซ์, การบริหารจัดการที่ง่าย และความยืดหยุ่นทั้งในซอฟต์แวร์และฮาร์ดแวร์Multiprotocol Label Switching หรือ MPLS เป็นเทคโนโลยีมาตรฐานที่พัฒนาขึ้นจากเทคโนโลยีแท็กสวิตชิ่งของซิสโก้ ซึ่งซิสโก้มุ่งมั่นคิดค้นและพัฒนานวัตกรรมใหม่ๆบนเทคโนโลยี MPLS อยู่ตลอดเวลา และเป็นส่วนหนึ่งของเทคโนโลยีของ Cisco IOS ซึ่งเป็นระบบปฏิบัติการในเราเตอร์และสวิตช์ของซิสโก้ เทคโนโลยี MPLS คือคีย์สำคัญใน Virtual Private Networks (VPN) และ End-to-End Quality Of Service (QoS) ที่ผู้ใช้จะได้รับประโยชน์สูงสุดจากเครือข่ายที่มีอยู่ ทั้งในเรื่องของปริมาณความต้องการที่จะเกิดขึ้นในอนาคตและความรวดเร็วในการแก้ไขเมื่อมีปัญหาเกิดขึ้นบนเครือข่าย MPLS ยังมีคุณสมบัติอื่นๆ อีก เช่น ความยืดหยุ่นสูง, การคอนฟิกที่ง่าย, การจัดการที่สะดวก และการรองรับความต้องการของทั้งผู้ให้บริการอินเทอร์เน็ตและผู้ใช้บริการ เทคโนโลยีนี้ยังรองรับการสื่อสารที่ความเร็วสูงสุดถึง 10 กิกะบิตต่อวินาทีด้วย
“สำหรับบริการ MPLS Data Networking Solution เปิดให้บริการใน 2 รูปแบบด้วยกัน คือ MPLS point to point (VLL) เป็นการเชื่อมต่อระหว่างสาขาหนึ่ง และ MPLS point to multipoint (VPN) เป็นการเชื่อมต่อหลายๆ สาขา หรือเชื่อมต่อกันเองระหว่างสาขา โดยมีหลายแพ็คเกจให้เลือกตามความเร็วในการเชื่อมต่อที่ต้องการใช้งาน ทั้งนี้ทรูพร้อมเปิดให้บริการในพื้นที่ทั่วกรุงเทพฯ และปริมณฑล และหัวเมืองใหญ่ในต่างจังหวัดทั่วประเทศ” นายทรงธรรม กล่าวเสริม
“ทรูมุ่งเน้นการนำเสนอบริการที่มีคุณภาพสูงสุดสำหรับลูกค้าองค์กรและเอสเอ็มอี เพื่อให้ลูกค้าได้ใช้บริการที่สามารถตอบสนองต่อความต้องการใช้งานได้เต็มประสิทธิภาพ และยังสามารถรองรับบริการต่างๆ ได้อย่างรวดเร็ว และทันต่อเหตุการณ์ บริการ MPLS Data Networking Solution จึงเป็นอีกหนึ่งโซลูชั่นที่ทรูคัดสรรมาเป็นอย่างดีสำหรับลูกค้า เพื่อช่วยเพิ่มประสิทธิภาพในการติดต่อสื่อสารภายในองค์กร และเติมเต็มชีวิตการทำงานแบบคอนเวอร์เจ้นท์ ที่นำเอาเทคโนโลยีต่างๆ มาผนวกเข้าด้วยกัน เพื่อเสริมให้การทำงานขององค์กรมีความคล่องตัวและเกิดประสิทธิผลสูงสุด” นายทรงธรรม กล่าวสรุป





อ้างอิงจาก :
Rick Gallaher’s MPLS Training Guide ผู้แต่ง Rick Gallaher’s
http://en.wikipedia.org/wiki/Differentiated_services
http://www.protocols.com/pbook/mpls.htm#MPLS
http://www.ietf.org/html.charters/OLD/diffserv-charter.html
http://qos.internet2.edu/may98Workshop/html/diffserv.html
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/mpls_tsw.htm
http://www.truecorp.co.th/
http://cpe.rsu.ac.th/







Free TextEditor

วันจันทร์ที่ 23 สิงหาคม พ.ศ. 2553

VLAN (Virtual LAN)

VLAN (Virtual LAN)  คือ

การนำคอมพิวเตอร์มาเชื่อมต่อกันเป็นแลนนั้น จะใช้สายในการเชื่อมต่อซึ่งเป็นการเชื่อมต่อกันทางกายภาพ แต่ถ้าเราต้องการให้คอมพิวเตอร์เชื่อมต่อกันอยู่นั้นเสมือน ว่าอยู่คนละเครือข่ายกันหรือเรียกอีออย่างว่า แลนเสมือน (Virtual LAN) ซึ่งจะต้องใช้ซอฟต์แวร์ช่วยในการจัดการ

การแยกแลนออกเป็นหลายๆวงโดยใช้สวิตซ์ ตัวอย่างเป็นดังรูปที่ 1 ซึ่งจะเห็นว่ามีสถานีอยู่ 10 สถานีซึ่งจะแบ่งออกเป็นกลุ่มๆทั้งหมด 3 กลุ่ม โดยกลุ่มแรกจะมีสถานีอยู่ทั้งหมด 4 สถานี กลุ่มที่สองมีอยู่ 3 สถานี การติดตั้งแบบนี้ไม่ค่อยยืดหยุ่นต่อการเปลี่ยนแปลงมากนัก เช่น สมมติต้องการที่จะให้สถานีในกลุ่มแรก เปลี่ยนไปเป็นสถานีในกลุ่มที่สาม จะต้องย้ายสถานีนั้นๆไปยังกลุ่มที่สาม และจะต้องทำการเดินสายใหม่ด้วย หรือถ้าสถานีกลุ่มสองต้องการเปลี่ยนไปอยู่สถานีกลุ่มแรก จะต้องทำในทำนองเดียวกัน เป็นต้น การเชื่อมต่อแบบนี้ถ้าต้องการเปลี่ยนแปลงต้องเปลี่ยนทางกายภาพเท่านั้น


                                                รูปที่ 1 การใช้สวิตซ์เชื่อมต่อแลน 3 วง

จากปัญหาที่ได้กล่าวมานั้น จะเห็นได้ว่าเราต้องการที่จะเปลี่ยนลักษณะการเชื่อมต่อโดยไม่ต้องมีการเปลี่ยนแปลงทางกายภาพ ดังนั้นจะต้องใช้ซอฟต์แวร์เข้ามาช่วยในการจัดการเรื่องนี้ จากรูปที่สอง จะแสดงการเชื่อมต่อสถานีกับสวิตช์โดยที่สวิตช์นี้จะรองรับการทำงานของวีแลน โดยที่เทคโนโลยีวีแลนนั้นจะต้องสามารถแบ่งแลนได้ โดยที่ไม่ต้องมีการเปลี่ยนแปลงทางกายภาพเลย นั้นหมายถึงไม่ต้องมีการย้ายสถานีหรือเดินสายใหม่ ถ้าต้องการเปลี่ยนสถานีใดๆ ให้เป็นอยู่ในวงแลนไหน ก็สามารถที่จะใช้ชอฟต์แวร์ในการจัดการได้


                                                               รูปที่ 2 สวิตช์ที่รองรับวีแลน



จากรูปที่ 2 จะเห็นได้ว่ามีการแบ่งแลนออกเป็น 3 วง คือ VLAN1, VLAN2 และ VLAN3 ในการส่งเฟรมข้อมูลระหว่างสถานีภายในวีแลน จะมีเพียงสถานีในวีแลนนั้นที่สามารถรับเฟรมข้อมูลได้ เนื่องจากเฟรมข้อมูลจะไม่ถูกส่งไปยังวงอื่นๆทำให้สามารถช่วยลดการจราจรภายในเครือขายได้ แต่ถ้าสถานีที่ต้องการส่งเฟรมข้อมูลไปยังวงอื่นๆแล้ว สวิตช์จะทำหน้าที่ในการส่งเฟรมนั้นไปยังวีแลนวงอื่นให้

เทคโนโลยีวีแลนสามารถจัดสถานีใหอยู่เป็นกลุ่ม โดยการใชสวิตช์ร่วมกันหลายตัวได้ ดังรูปที่ 3 ซึ่งแสดงการแบ่งวีแลนออกเป็น 3 วงโดยใชสวิตช์ 2 ตัว

                                                      รูปที่ 3 การสร้างวีแลนโดยใชสวิตช์ 2 ตัว

จากรูปทที่ 3 สามารถนำไปประยุกต์ใช้งานจริงได้ ตัวอย่างเช่น ภายในมหาวิทยาลัย ถ้ามีตึก 2 หลังโดยที่ แต่ละหลังมีสวิตซ์ทำหน้าที่เป็นแบ็กโบนภายในตึก เราสามารถจัดกลุ่มของสถานีของทั้งสองตึกให้อยู่เป็นกลุ่มๆได้โดยใช้เทคโนโลยีวีแลน ซึ่งไม่ต้องมีการเปลี่ยนแปลงทางกายภาพเลย

จะเห็นได้ว่า VLAN ก็คือการสร้างเครือข่ายสวิตซ์หรือเอทีเอ็ม ให้แบ่งแยกเป็นเครือข่ายย่อยตามสถานะการทำงาน โดยกำหนดให้เป็นเสมือนแลนที่ต่อกันเป็นกลุ่มๆ ดังที่เคยเป็นในระบบที่ใช้เราเตอร์ การกำหนดกลุ่ม VLAN แต่ล่ะกลุ่มก็เพื่อให้สถานะการทำงานเหมือนเป็นกลุ่มเครือข่ายย่อยหนึ่งเครือข่าย และหากต้องการส่งข้อมูลข้ามเครือข่าย VLAN ก็จะทำได้เสมือนการมีฟังก์ชั่นของการกำหนดเส้นทาง เช่น จากรูปที่ 4 เราได้มีการกำหนด VLAN 2 เครือข่าย คือ VLAN A และ VLAN B สังเกตุว่าอุปกรณ์บางตัวเรากำหนดคาบเกี่ยวกันได้ คือให้เป็นทั้งเครือข่าย A และ B หากมีการส่งข้อมูลข้าม VLAN อุปกรณ์สวิตชิ่งจะดำเนินการให้เหมือนสถานะคล้ายเราเตอร์ คือให้ข้อมูลข้าม VLAN ได้


                                             รูปที่ 4 การกำหนด VLAN ในเครือข่าย ATM

การจัดกลุ่มของวีแลน

ในการจัดสถานีให้อยู่ในกลุ่มไหนในวีแลนนั้น สามารถทำได้หลายแบบขึ้นอยู่กับอุปกรณ์นั้นๆ เช่น จัดโดยใช้หมายเลขพอร์ต, MAC Address, IP Address, Multicast IP Address, Protocol ,Higher Layer ,VLAN's หรือใช้การผสมผสานกัน

• การจัดกลุ่มโดยใช้หมายเลขพอร์ต (Port Number)

ในการแบ่ง VLAN จะใช้พอร์ตบอกว่าเป็นของ VLAN ใด เช่น สมมุติว่าในสวิตช์ที่มี 4 พอร์ต กำหนดให้ พอร์ต 1, 2 และ 4 เป็นของ VLAN เบอร์ 1 และพอร์ตที่ 3 เป็นของ VLAN เบอร์ 2 ดังรูปที่ 5



                                              รูปที่ 5 แสดงการกำหนดพอร์ตให้กับ VLAN

• การจัดกลุ่มโดยใช้ MAC Address

ใช้ MAC Address ในการแบ่ง VLAN โดยให้สวิตช์ตรวจหา MAC Address จากแต่ละ VLAN ดูรูปที่ 6


                                   รูปที่ 6 แสดงการกำหนด MAC Address ให้กับ VLAN ต่างๆ


• การจัดกลุ่มโดยใช้ Protocol

แบ่ง VLAN โดยใช้ชนิดของ protocol ที่ปรากฎอยู่ในส่วนของ Layer 2 Header ดูรูปที่ 7


       รูปที่ 7 แสดงการแบ่ง VLAN โดยใช้ชนิดของ protocol กำหนด



• การจัดกลุ่มโดยใช้ IP subnet Address

แบ่ง VLAN โดยใช้ Layer 3 Header นั่นก็คือใช้ IP Subnet เป็นตัวแบ่ง


                                              รูปที่ 8 แสดงการแบ่ง VLAN โดยใช้ IP Subnet

• การจัดกลุ่มโดยใช้ Higher Layer VLAN's

VLAN ทำได้โดยใช้โปรแกรมประยุกต์หรือ service แบ่ง VLAN เช่นการใช้โปรแกรม FTP สามารถใช้ได้ใน VLAN 1 เท่านั้น และถ้าจะใช้ Telnet สามารถเรียกใช้ได้ใน VLAN 2 เท่านั้น เป็นต้น

สถาปัตยกรรมเครือข่ายที่ใช้สวิตช์และใช้ VLAN

การทำงานของระบบเครือข่ายจะประสบผลสำเร็จได้ด้วยซอฟต์แวร์ที่ใช้ในการจัดการ การที่สวิตช์ทั้งการแยกแพคเกจจข้อมูลได้รวดเร็ว มิได้หมายความว่าสวิตช์จะประสบผมสำเร็จได้ เพราะการสวิตช์อย่างเดียวไม่เพียงพอ จำต้องมีการควบคุมการสวิตช์ เพื่อส่งข้อมูลให้ทุกช่องทาง การดำเนินการในระดับช่วยการจัดการจึงอยู่ที่ซอฟต์แวร์จัดการในระดับที่อยู่เหนือสวิตช์ขึ้นไป ซอฟต์แวร์จัดการเหล่านี้ทำให้เชื่อมโยงเครือข่ายเสมือนแลนได้ (VLAN) ช่วยในการปรับเปลี่ยนโครงสร้างเครือข่ายตามความต้องการช่วยให้มีการแบ่งแถบกว้างสัญญาณแต่ละช่องตามความต้องการอย่างเหมาะสม และสนองความต้องการ รวมถึงการจัดการเรื่องความปลอดภัยของข้อมูล และทำให้ลดความยุ่งยากในการจัดการเครือข่าย



                                                     รูปที่ 9 โครงสร้างการทำงานของเครือข่าย


โครงสร้างการจัดการเหล่านี้จึงต้องเป็นไปตามโครงสร้างระบบการแบ่งชั้นของเครือข่ายตามมาตรฐาน OSI ที่แบ่งระดับออกเป็น 7 ชั้น สำหรับเอทีเอ็มมีโครงสร้างการแบ่งระดับชั้นดังรูปที่ 9

สำหรับสวิตช์เริ่มจากระดับชั้นแรกเป็นวิธีการเชื่อมต่อและการสวิตช์แพคเกจที่เป็นแพคเกจขนาดเล็ก

ระดับที่สองเป็นระดับซอฟต์แวร์ที่ดำเนินการจัดการกระทำเครือข่ายแลนแบบเสมือนที่เรียกว่า VLAN ชั้นนี้จึงเป็นชั้นสำคัญที่ทำให้เครือข่ายมีลักษณะเหมือนแลน และใช้งานได้เหมือนแลน นอกจากนี้ยังทำให้เครือข่ายเชื่อมโยงกับเราเตอร์แบบเดิม เพื่อเชื่อมต่อในระดับที่ 3 ต่อไป

ระดับที่สามเป็นระดับเครือข่าย เป็นระดับที่เชื่อมโยงระหว่าง VLAN กับ VLAN หรือ LAN อื่นระดับนี้จึงใช้ซอฟต์แวร์ทำหน้าที่กำหนดเส้นทาง ฟังก์ชันการทำงานจึงเหมือนกับเครือข่ายแลนที่เชื่อมโยงกันด้วยเราเตอร์


                                           รูปที่ 10 แสดงการเชื่อมโยงระหว่างอุปกรณ์ต่างๆ

เมื่อสร้าง VLAN ในระดับที่สองจะมีการจัดกลุ่มเครือข่ายเข้าด้วยกัน โดยแต่ละกลุ่มทำหน้าที่เหมือนเป็นแลนหนึ่งเครือข่าย สังเกตุว่าอุปกรณ์บางตัวอยู่ในเครือข่ายย่อย VLAN ได้หลายเครือข่าย หากพิจารณาเครือข่าย VLAN ตามรูปแบบ TCP/IP นั่นหมายความว่า แต่ละอุปกรณ์มีตำแหน่งแอดเดรสของตัวเองระบบซอฟต์แวร์จะทำการกำหนดตำแหน่งต่างๆ ของอุปกรณ์เข้าเป็นเครือข่าย VLAN สามารถปรับเปลี่ยนและดูแลเครือข่ายโดยรวมได้ VLAN จึงเป็นซอฟต์แวร์ที่ทำให้ส่วนการทำงานเหมือนขั้น LLC ในระดับแลนเดิม และสามารถสนับสนุนให้เป็นระบบแลนได้หลายรูปแบบ



          รูปที่ 11 เป็นโครงสร้างการจัดกลุ่มอุปกรณ์ให้เข้าเป็นเครือข่าย VLAN ภายใต้เครือข่ายแบบสวิตช์


การทำงานกำหนดเส้นทางเป็นซอฟต์แวร์ในระดับ 3 ที่มีมความสำคัญยิ่ง เพราะในระดับสามเป็นการเชื่อม VLAN เข้าด้วยกันเป็นเครือข่าย ดังนั้นจึงต้องมีการกำหนดเส้นทางด้วยอุปกรณ์ที่จะกำหนดเส้นทางได้ถูกต้อง วิธ๊การหาเส้นทางจึงต้องฝากไว้กับอุปกรณ์ที่จะเป็นตัวบอกให้มีการสวิตช์ตามเส้นทางใด การหาเส้นทางจึงต้องมีการสอบถามและให้ข้อมูลเพื่อดำเนินการสร้างการเชื่อมต่อของข้อมูลผ่าน VLAN ได้ถูกต้อง รูปที่ 12 เป็นวิธีการในการที่ไคล์เอ็นต์ A ต้องการติดต่อกับไคล์เอ็นต์ C มีวิธีการติดต่อโดยการให้การกำหนดเส้นทางผ่านอุปกรณ์ที่ใช้ในการกำหนดเส้นทางซึ่งเป็นซอฟต์แวร์



                                                  รูปที่ 12 วิธีการติดต่อระหว่างไคล์เอ็นต์

เมื่อระดับการกำหนดเส้นทางมีความชัดเจนและทำงานได้ตามฟังก์ชันของเราเตอร์แล้ว การเชื่อมโยงแพคเกจระดับ IP ก็เกิดขึ้นได้ แพคเกจในระดับ IP วิ่งผ่านเข้าไปยัง VLAN และถูกตัดแบ่งเป็นเซล เมื่อสวิตช์ไปตามเส้นทางที่กำหนดได้ระดับชั้นที่เชื่อมต่อกับระดับ 3 คือ ระดับ Transport ที่จะเชื่อมโยงต่อเข้าสู่ระดับการประยุกต์ การทำงานในระดับนี้จึงเข้าใกล้กับการประยุกต์ใช้งานต่าง ๆ

การสื่อสารระหว่างสวิตช์

ในการนำสวิตช์หลายตัวมาเชื่อมต่อกัน ดังในรูปที่ 2 สวิตช์แต่ละตัวไม่เพียงแต่ต้องทราบว่ามีสถานีไหนบ้างที่เชื่อมต่ออยู่สวิตช์ของตัวเอง แต่ยังต้องทราบอีกว่ามีสถานีใดที่เชื่อมต่ออยู่กับสวิตช์อีกตัวหนึ่งด้วย เช่น สวิตช์ จะต้องทราบว่ามีสถานีใดที่กำลังเชื่อมต่ออยู่กับสวิตช์ B บ้าง เป็นต้น ในการที่จะทราบถึงสถานีที่อยู่ในสวิตช์อื่นๆ เพื่อที่จะสามารถส่งเฟรมข้อมูลไปให้ได้อย่างถูกต้องนั้น มีเทคนิคอยู่ 3 อย่างได้แก่ table maintenance, frame tagging และ time-division multiplexing

• Table Maintenance

เทคนิคแบบนี้เมื่อสถานีทำการบรอดคาสต์(Broadcast) เฟรมไปยังทุกสถานี สวิตช์จะทำหน้าที่ในการสร้างตาราง และทำการเก็บข้อมูลต่างๆ ลงในตารางนี้ จากนั้นสวิตช์จะทำการส่งตารางนี้ไปยังสวิตช์อื่นๆ ให้มีความทันสมัยอยู่เสมอ ดังนั้นเมื่อต้องการส่งเฟรมข้อมูลจะสามารถตรวจสอบได้จากตารางนี้

• Frame Tagging

เทคนิคแบบนี้เมื่อเฟรมข้อมูลถูกส่งจากสวิตช์หนึ่งไปยังอีกสวิตช์หนึ่ง จะมีเฮดเดอร์พิเศษที่เพิ่มเขาไปใน MAC frame เพื่อกำหนดวีแลนปลายทาง ดังนั้นสวิตช์ที่รับเฟรมนี้จะทราบได้ว่าจะต้องส่งเฟรมนี้ไปยังวีแลนวงไหน

• Time – Division Multiplexing (TDM)

เทคนิคแบบนี้ สายที่เชื่อมต่อระหว่างสวิตช์จะถูกแบ่งเวลาการใช้งาน ตัวอย่างเช่น ถ้าสวิตช์มีการแบ่งวีแลนทั้งหมด 5 วง จะมีการแบ่งเวลาในการใช้สายส่งเป็น 5 ช่วงเวลา เช่น ช่วงเวลาแรกจะเป็นของวีแลนวงที่ 1 ส่วนช่วงเวลาที่ 2 จะเป็นของวีแลนวงที่ 2 เป็นต้น ดังนั้นเมื่อสวิตช์ที่ทำการรับเฟรมข้อมูลจะสามารถทราบได้ว่าจะต้องส่งข้อมูลไปยังวีแลนวงไหน โดยตรวจสอบจากช่วงเวลานี้เอง

ประโยชน์ของการใช้ VLAN

1. เพิ่มประสิทธิภาพของเครือข่าย ในระบบเครือข่ายทั่วไปจะมีการส่งข้อมูล Broadcast จำนวนมาก ทำให้เกิดความคับคั่ง (Congestion) และ VLAN มีความสามารถช่วยเพิ่มประสิทธิภาพของเครือข่ายได้เนื่องจาก VLAN จะจำกัดให้ส่งข้อมูล Broadcast ไปยังผู้ที่อยู่ใน VLAN เดียวกันเท่านั้น

2. ง่ายต่อการบริหารการใช้งาน VLAN อำนวยความสะดวกในการบริหารจัดการโครงสร้างของระบบเครือข่ายให้ง่าย มีความยืดหยุ่น และเสียค่าใช้จ่ายน้อย โดยเพียงเปลี่ยนโครงสร้างทางตรรกะ (Logical) เท่านั้น ไม่จำเป็นต้องเปลี่ยนโครงสร้างทางกายภาพ กล่าวคือ ถ้าต้องการเปลี่ยนโครงสร้างของ VLAN ก็ทำโดยการคอนฟิกที่อุปกรณ์เครือข่ายใหม่ ไม่จำเป็นเปลี่ยนรูปแบบทางกายภาพของการเชื่อมต่อเครือข่ายที่มีอยู่เดิม

3. เพิ่มการรักษาความปลอดภัยมากขึ้น เนื่องจากการติดต่อระหว่างอุปกรณ์เครือข่ายจะสามารถทำได้ภายใน VLAN เดียวกันเท่านั้น ถ้าต้องการที่จะติดต่อข้าม VLAN ต้องติดต่อผ่านอุปกรณ์ค้นหาเส้นทางหรือสวิตช์เลเยอร์สาม



แหล่งที่มา

http://th.wikipedia.org/wiki/Virtual_LAN

http://www.ku.ac.th/

http://www.3com.com/other/pdfs/solutions/en_US/20037401.pdf

http://www.compspot.net/