|
โปรโตคอลที่สำคัญที่ทำงานในเลเยอร์อินเตอร์เน็ตคือ
IP,ARP,ICMP และ IGMP
ผู้อ่านควรที่จะทำความเข้าใจหลักการทำงานของโปรโตคอลนี้
1 Internet Protocol
(IP)
โปรโตคอล IP จะทำหน้าที่เปรียบเสมือนกับที่ทำการไปรษณีย์ กล่าวคือ
โปรโตคอล IP จะทำหน้าที่จัดการเกี่ยวกับการรับส่งแพ็กเก็ต หรือบางทีก็เรียกว่า
“ดาต้าแกรม (Datagram) ”คือหน่วยของข้อมูลที่รับมาจากโปรโตคอลที่อยู่เลเยอร์สูงกว่า
เช่น TCP และ UDP ถ้าโฮสต์ปลายทางอยู่คนละเครือข่ายกับโฮสต์ที่ส่งข้อมูล IP
จะรับผิดชอบในการจัอเส้นทาง (Routing)
ให้แพ็กเก็ตส่งไปยังเครือข่ายที่โฮสต์นั้นอยู่
ซึ่งในการจัดส่งแพ็กเก็ตข้ามเครือข่ายนั้น IP จะใช้ราท์เตอร์ (Routing)
ในการเชื่อมต่อเครือข่ายเหล่านั้นโดยทั่วไปแล้วอุปกรณ์ที่ทำหน้าที่รับส่งข้อมูลระหว่างเครือข่ายจะเรียกว่าเราท์เตอร์
แต่บางทีอุปกรณ์ตัวนี้ก็จะเรียกว่า “เกตเวย์ (Gateway)”
ซึ่งจะทำหน้าที่เป็นเสมือนประตูไปยังเครือข่ายอื่นๆ อย่างไรก็ตามทั้งเราท์เตอร์
และ
เกตเวย์เป็นอุปกรณ์ที่ทำหน้าที่ในเลเยอร์ที่ 3 เหมือนกัน
โปรโตคอล IP
นั้นจะเป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันเลสส์ (Connectionless)
ซึ่งทำให้มีความเชื่อถือน้อย เนื่องจากไม่มีโครงสร้างการเชื่อมต่อก่อนที่จะทำการรับ
- ส่งข้อมูล กล่าวคือ
ในการส่งข้อมูลในแต่ละครั้งโฮสต์ส่งจะไม่ทำการติดต่อโฮสต์ปลายทางเพื่อตกลงเกี่ยวกับการรับส่งข้อมูลก่อน
แต่โฮสต์ที่ต้องการส่งข้อมูลจะทำการส่งแพ็กเก็ตออกไปทันที
โดยที่คาดหวังว่าโฮสต์ปลายทางจะได้รับแพ็กเก็ตนั้นในที่สุด
ดังนั้นความเชื่อถือในการส่งข้อมูลจึงมีน้อยเพราะแพ็กเก็ตอาจสูญหายระหว่างทาง
หรือถ้าข้อมูลประกอบด้วยหลายแพ็กเก็ต
แต่แพ็กเก็ตอาจเดินทางมาถึงปลายทางไม่เป็นลำดับได้
หรือมีการส่งแพ็กเก็ตซ้ำกันหรือแพ็กเก็ตส่งถึงล้าช้า
การแก้ปัญหานี้จะปล่อยให้เป็นหน้าที่ของโปรโตคอลที่อยู่ในเลเยอร์ที่สูงกว่ารับผิดชอบ
2
Address Resolution Protocol
(ARP)
การที่คอมพิวเตอร์ที่อยู่ในเครือข่ายเดียวกันต้องการที่จะสื่อสารกันจำเป็นที่ต้องทราบหมายเลขเน็ตเวิร์คการ์ด
หรือแม็กแอดเดรส (MAC Address) ของกันและกัน
แพ็กเก็ตไอพีจะถูกห่อหุ้มด้วยเฟรมในระดับดาต้าลิงค์
ซึ่งแม็กแอดเดรสของเครื่องส่งและเครื่องรับจะต้องถูกใส่ไปด้วยปัญหาก็คือเครื่องส่งอาจไม่ทราบหมายแม็กแอดเดรสของเครื่องรับ
โปรโตคอล ARP (Address Rresolution Protocol)
จะทำหน้าที่ค้นหาหมายเลขแม็กแอดเดรสของเครื่องที่มีหมายเลขไอพีที่ต้องการ
หลักการทำงานของ ARP คือ
โฮสต์ที่ต้องการทราบหมายเลขแม็กแอดเดรสของเครื่องที่มีหมายเลขไอพีนั้น
ก็จะทำการบรอดคาสต์แพ็กเก็ตไปยังคอมพิวเตอร์ทุกเครื่องที่อยู่ในเครือข่ายเดียวกัน
ถ้ามีเครื่องที่มีหมายเลขไอพีดังกล่าว
เครื่องนั้นก็จะตอบกลับมาพร้อมหมายเลขแม็กแอดเดรสของเครื่องนั้น
และหลังจากนั้นเครื่องส่งก็สามารถสื่อสารกับเครื่องปลายทางได้ดดยตรง
โดยใช้แม็กแอดเดรสที่ส่งมาพร้อมกับแพ็กเก็ตตอบกลับ
ส่วนโปรโตคอลที่ทำหน้าที่ในทางตรงกันข้ามกับโปรโตคอล
ARP คือ โปรโตคอล RARP (Reverse Address Rresolution Protocol)
ซึ่งโปรโตคอลนี้จะช่วยให้โฮสต์ที่รู้หมายเลขแม็กแอดเดรสแต่ไม่รู้หมายเลขไอพี
3
Internet Control Messags Protocol (ICMP)
โปรโตคอล ICMP (Internet
Control Messags Protocol ) ทำหน้าที่รายงานข้อผิดพลาดต่าง ๆ
ที่เกิดขึ้นในระหว่างที่มีการส่งแพ็กเก็ตในเครือข่าย ICMP
ใช้ในการส่งแบบคอนเน็กชันเลสส์ (Connectionless)
ซึ่งหมายถึงการรับส่งข้อมูลที่ฝ่ายรับและฝ่ายส่งไม่ได้ประสานกันก่อน กล่าวคือ
ฝ่ายรับจะไม่ทราบว่าจะมีแพ็กเก็ตส่งมาหาตัวเอง
ดังนั้นโอกาสที่แพ็กเก็ตจะส่งไม่ถึงปลายทางจึงเป็นไปได้สูง
4 Internet Group Mmmanagement Protocol (IGMP)
โปรโตคอล IGMP (Internet Group Mmmanagement Protocol)
ทำหน้าที่แจ้งให้เราท์เตอร์เกี่ยวกับกลุ่มของเครื่องหมายไอพีที่เป็นมัลติคาสต์
(Multicast) ซึ่งข้อมูลนี้จะถูกส่งต่อ ๆ กันออกไปยังเราท์เตอร์ต่าง ๆ
ที่อยู่ในเครือข่ายเพื่อให้เครือข่ายสามารถรองรับการรับส่งข้อมูลแบบมัลติคาสต์ได้
การส่งแพ็กเก็ตของ IGMP
จะส่งเป็นไอพีดาต้าแกรมซึ่งเป็นการส่งแบบคอนเน็กชันเลสส์
อย่างที่กล่าวมาแล้วข้างต้น โปรโตคอลโฮสต์ทูโฮสต์เลเยอร์ (Host
to Host Layer) นี้จะประกอบด้วย 2 โปรโตคอลคือ TCP (Transmission Control
Protocol) UDP (User Datagram Protocol)
ซึ่งเป็นโปรโตคอลแต่ละตัวจะบริการแตกต่างกัน และมีข้อดีข้อเสียต่างกัน
โปรโตคอลทั้งสองตัวมีรายละเอียดดังนี้
1 Transmission Control Protocol (TCP)
โปรโตคอล TCP
(Transmission Control Protocol)
เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด (Connection-Oriented)
ซึ่งเป็นการส่งข้อมูลที่เชื่อถือได้ TCP จะส่งข้อมูลทั้งหมดจนสำเร็จ
ซึ่งถ้าข้อมูลมีขนาดใหญ่ก็จะถูกแบ่งย่อยเป็นหลายแพ็กเก็ต โปรโตคอล TCP
จะทำหน้าที่ควบคุมการรับส่งแพ็กเก็ตข้อมูลย่อย ๆ เหล่านี้
สำหรับกลไกในการควบคุมการไหลของข้อมูลมีรายละเอียดดังนี้
2
การจัดการเกี่ยวกับเซสชั่น
เนื่องจาก TCP
เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด
ดังนั้นก่อนการจะส่งข้อมูลจำเป็นที่จะต้องสร้างเซสชั่นเพื่อเชื่อมต่อกับโฮสต์ปลายทางก่อนเซสชั่นเป็นการสร้างการสนทนาอย่างเป็นรูปแบบระหว่างทั้งสองโฮสต์เพื่อใช้สำหรับการกู้คืนข้อมูล
เมื่อเกิดข้อผิดพลาดระหว่างการรับส่งข้อมูล ขั้นตอนในการสร้างเซสชั่นจะมีอยู่ 3
ขั้นตอนซึ่งบางทีก็เรียกว่า “ทรีเวย์แฮนเช็ค (Three – Way Handshake)
-
โฮสต์ที่ต้องการส่งข้อมูลจะส่งแพ็กเก็ตไปยังโฮสต์ปลายทาง
เพื่อแจ้งให้ทราบว่าต้องการส่งข้อมูล
-
โฮสต์ปลายทางก็จะตอบตกลงมา
พร้อมทั้งรหัสที่จะใช้ในการรับส่งข้อมูล
-
โฮสต์ต้นทางก็จะส่งแพ็กเก็ตพร้อมรหัสที่ได้รับ
เพื่อเป็นการยืนยันการเชื่อมต่อ
หลังจากที่ได้มีการสร้างเซสชั่นสำเร็จแล้วถึงเริ่มขบวนการรับ –
ส่งข้อมูลจริงๆ
ซึ่งในการรับส่งข้อมูลในแต่ละครั้งก็จะมีการยืนยันการรับส่งข้อมูลจากโฮสต์ปลายทางทุกครั้ง
เมื่อรับส่งข้อมูลเสร็จก็เป็นขั้นตอนการยกเลิกการเซสชั่น ซึ่งจะคล้าย ๆ
กับการสร้างเซสชั่น
3 การควบคุมการไหลเวียนและกู้คืนข้อมูล
ในแต่ละเซสชั่น
โฮสต์ฝ่ายรับต้องตอบกลับทุก ๆ แพ็กเก็ตที่ได้รับภายในเวลาที่กำหนด
เพื่อเป็นการยืนยันการรับข้อมูลทุก ๆ แพ็กเก็ตที่ส่ง
ฝ่ายรับจะทำการเช็คความถูกต้องของแพ็กเก็ตข้อมูลทุกครั้ง
และแจ้งให้ทราบถึงการตรวจตอบนั้น
ถ้าฝ่ายส่งไม่ได้รับการตอบรับจากฝ่ายรับภายในเวลาที่กำหนด
ฝ่ายรับก็จะคาดเอาว่าแพ็กเก็ตสูญหายระหว่างทาง
ฝ่ายรับก็จะทำการส่งแพ็กเก็ตนั้นให้ใหม่อีกครั้ง
เพื่อจะทำให้มั่นใจได้ว่าข้อมูลทุก ๆ แพ็กเก็ตส่งถึงปลายทางอย่างสมบูรณ์
ข้อมูลในส่วนหัวของโปรโตคอล TCP จะประกอบด้วยข้อมูลมากที่สุด 20
ไบต์ และประกอบด้วยส่วนต่าง ๆ ซึ่งมีฟิลด์มีความหมายดังนี้
-
TCP Source Port (16 บิต) :
ส่วนนี้จะเป็นหมายเลขพอร์ตที่เป็นจุดเริ่มการสื่อสาร
หมายเลขพอร์ตเมื่อรวมกับหมายเลข IP จะเป็นที่อยู่ของการส่งข้อมูลกลับ
-
TCP Destination Port (16 บิต) : เป็นหมายเลขพอร์ตเครื่องรับ
ซึ่งพอร์ตนี้จะเป็นพอร์ตที่ใช้เชื่อมต่อกับแอพพลิเคชันที่จะนำข้อมูลที่ส่งไปให้นี้ไปโพรเซสต่อไป
-
TCP Sequence Number (32 บิต) :
เป็นหมายเลขที่บอกลำดับแพ็กเก็ตที่จะใช้
โดยฝั่งเครื่องรับในการเรียงข้อมูลให้อยู่ในรูปเดิมในการส่งข้อมูลผ่านเครือข่ายที่สลับซับซ้อนนั้นแพ็กเก็ตแต่ละชุดอาจจะถูกส่งไปบนเส้นทางที่ต่างกัน
ดังนั้นจึงเป็นไปได้ที่แพ็กเก็ตจะเดินทางมาถึงปลายทางไม่เป็นไปตามลำดับที่ส่ง
หมายเลขนี้จะใช้ในการจัดเรียงแพ็กเก็ตเหล่านี้ให้อยู่ในลำดับเดิม
-
TCP Acknowledgement Number (32 บิต) :
เป็นหมายเลขลำดับแพ็กเก็ตถัดไปที่ทางฝั่งรับคาดหวัง
ซึ่งเป็นการบอกเป็นนัยว่าแพ็กเก็ตที่มีหมายเลขลำดับก่อนหน้านี้ได้รับหมดแล้วนั่นเอง
-
Data Offset (4 บิต) : เป็นตัวเลขที่บอกขนาดของข้อมูลส่วนหัว
(TCP Header) ซึ่งมีหน่วยเป็น 32 บิต หรือ Word
-
Reserved (6 บิต) : ส่วนนี้จะถูกกำหนดให้เป็นศูนย์ตลอด
ซึ่งข้อมูลส่วนนี้ไม่มีความหมายอะไรเพียงแต่เป็นการสงวนไว้ใช้ในอนาคตเมื่อมีการปรับปรุงโปรโตคอล
-
Flags (6 บิต) :
เป็นข้อมูลที่ใช้สำหรับควบคุมการรับส่งแพ็กเก็ต
-
Window Size (16 ) :
เป็นตัวเลขที่เครื่องปลายทางบอกให้เครื่องต้นทางทราบขนาดวินโดว์ของเครื่องปลายทางสามารถรับรู้ได้
-
Checksum (16) :
เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูลในส่วนหัว
โดยเครื่องส่งจะทำการคำนวณค่า เช็คซัม (Checksum) ของข้อมูลส่วนหัว
เมื่อเครื่องปลายทางได้รับข้อมูลก็จะทำการคำนวณเช็คซัมด้วยวิธีเดียวกัน
แล้วทำการเปรียบเทียบข้อมูลค่าที่คำนวณได้กับค่าที่อยู่ในฟิลด์นี้
ถ้าเหมือนกันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลที่ได้รับ
-
Padding :
เป็นข้อมูลที่เพิ่มเพื่อให้ข้อมูลส่วนหัวมีจำนวนบิตที่หารด้วย 32
ลงตัว
4 User Datagram Protocol (UDP)
โปรโตคอล UDP
(User Datagram Protocol) จะให้บริการการส่งข้อมูลแบบคอนเน็กชันเลสส์
หรือบางทีก็เรียกว่า “ดาต้าแกรม (Datagram)”
ซึ่งจะเป็นการให้บริการแบบตรงกันข้ามกับคอนเน็กชันโอเรียนเต็ดของโปรโตคอล TCP
การส่งข้อมูลแบบนี้จะเป็นแบบที่เชื่อถือไม่ได้ โดยจะพยายามส่งข้อมูลให้ดีที่สุด
ในการรับส่งข้อมูลในแต่ละครั้งนั้น จะไม่มีการสร้างเซกชั่นก่อน
และไม่มีกลไกการตอบกลับแพ็กเก็ตเหมือนโปรโตคอล TCP
เหตุที่ตัดกลไกนี้ออกเพื่อเพิ่มประสิทธิภาพในการส่งข้อมูลนั่นเอง แต่ข้อเสียก็คือ
การรับส่งเชื่อถือไม่ได้
เพราะแพ็กเก็ตอาจสูญหายระหว่างทางซึ่งทางฝ่ายส่งจะไม่ทราบเลย
ดังนั้นโปรโตคอลที่อยู่เหนือกว่าต้องรับผิดชอบเกี่ยวกับการตรวจสอบข้อผิดพลาดของการรับส่งข้อมูลเอง
ถึงแม้ว่าโปรโตคอล
UDP จะมีความเชื่อถือน้อย แต่มันก็มีข้อดีหลายอย่าง เช่น
ถ้าข้อมูลที่ต้องการส่งมีขนาดเล็กมากก็จะเป็นการเสียเวลา
ถ้าต้องสร้างเซกชั่นการเชื่อมต่อระหว่าง 2 โฮสต์นั้นก่อนส่ง และอีกกรณีหนึ่งคือ
การส่งข้อมูลแบบแพร่กระจาย หรือบรอดคาสต์ (Broadcast) และมัลติคาสต์(Multicast)
การสร้างเซกชั่นจะเป็นสิ่งที่เป็นไปไม่ได้
เนื่องจากเซกชั่นเป็นการเชื่อมต่อระหว่าง 2 โฮสต์เท่านั้น
ดังนั้นการบรอดคาสต์และมัลติคาสต์จะใช้โปรโตคอล UDP
เท่านั้น
ข้อมูลในส่วนหัวของโปรโตคอล UDP ซึ่งในแต่ละฟิลด์มีความหมายดังนี้
-
UDP Source Port Number (16 บิต):
เป็นหมายเลขพอร์ตของเครื่องส่ง เมื่อรวมหมายเลขพอร์ตนี้กับหมายเลข IP
ก็จะเป็นที่อยู่สำหรับเครื่องรับในการตอบรับข้อความ
-
UDP Destination Port Number (16 บิต):
เป็นหมายเลขพอร์ตของทางฝั่งเครื่องรับที่ใช้ในการส่งผ่านข้อมูลไปยังแอพพลิเคชันที่ต้องการติดต่อด้วย
-
UDP Checksum (16 บิต):
เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูล
เครื่องทางฝั่งรับจะทำการคำนวณหมายเลขนี้ด้วยวิธีเดียวกัน
แล้วเปรียบเทียบกับค่าที่ส่งมา
ถ้าหมายเลขเท่ากันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลส่วนหัว
-
UDP Message Length (16 บิต):
เป็นข้อมูลที่บอกความยาวของข้อมูลทั้งหมด
ซึ่งจะเป็นข้อมูลที่ช่วยให้ทางฝ่ายรับทราบว่าข้อมูลควรมีขนาดเท่าใด
เราท์เตอร์จะใช้ข้อมูลที่อยู่ในตารางเราท์ติ้งเทเบิ้ลสำหรับการส่งแพ็กเก็ตระหว่างเส้นทางที่จะถูกเลือกนั้นจะขึ้นอยู่กับอัลกอริธึม
(Algorithm) ที่ใช้หรือที่เรียกว่า เราท์ติ้งโปรโตคอล “(Routing Protocol)”
ซึ่งจะแบ่งออกเป็น 2 ประเภท
1 Static IP
Routing
สำหรับการจัดเส้นทางแบบนี้รายการในตารางเราท์ติ้งเทเบิ้ลจะถูกป้อนโดยผู้ดูแลระบบ
ซึ่งข้อมูลในรายการนี้จะไม่มีการเปลี่ยนแปลงหลังจากนั้น
การคอนฟิกตารางนั้นจะค่อนข้างง่าย แต่ผู้ติดต่อระบบนั้นจะต้องป้อนข้อมูลทุก ๆ
ฟิลด์ในตารางเองซึ่งจะเป็นเหมือนการบอกเราท์เตอร์ให้ทราบว่าเครือข่ายไหนที่สามารถติดต่อได้
ความถูกต้องของข้อมูลในตารางเราท์ติ้งเทเบิ้ลจะขึ้นอยู่กับความรับผิดชอบของผู้ดูแลระบบนั้น
ๆ โดยทั่วไปแล้ว สำหรับเครือข่ายเล็ก ๆ จะใช้เราท์เราท์ติ้งเทเบิ้ลแบบสแตติกนี้
แต่เมื่อเครือข่ายขยายใหญ่ขึ้นก็จะใช้โปรโตคอลแบบไดนามิกซึ่งง่ายต่อการจัดการมากกว่า
2 Dynamic IP
Routing
การจัดเส้นทางแบบไดนามิกนี้ก็ใช้ชุดโปรโตคอลเพื่อใช้ในการสร้างตารางเราท์ติ้งเทเบิ้ลแทนการป้อนข้อมูลเองโดยคน
ซึ่งวิธีการสร้างนั้นจะขึ้นอยู่กับโปรโตคอล เช่น โหลดของช่องสัญญาณ
แบนด์วิธของลิงค์ เป็นต้น ข้อได้เปรียบของการใช้โปรโตคอลแบบนี้คือ
รายการในตารางจะถูกอัพเดตโดยอัตโนมัติ
ทำให้ผู้ดูแลระบบไม่ต้องกังวลว่ารายการในตารางจะผิดพลาด ส่วนข้อเสียคือ
ปริมาณการไหลเวียนของแพ็กเก็ตในเครือข่ายจะเพิ่มขึ้น
โปรโตคอลแบบไดนามิกนี้ยังแบ่งย่อยออกเป็น 2 ประเภทคือ
2.1 Distance-Vector
Routing Protocol
โปรโตคอลแบบดิสแทนส์เวคเตอร์จะเลือกเส้นทางที่ดีที่สุด
โดยใช้เมตริก (Metric) เป็นเกณฑ์
โดยเมตริกนี้จะเป็นหน่วยที่วัดประสิทธิภาพของลิงค์ไปยังเครือข่ายนั้น
และจะขึ้นอยู่กับโปรโตคอลที่ใช้ ซึ่งโดยส่วนใหญ่จะใช้จำนวนฮอบ(Hop) เป็นหลัก
เราท์เตอร์ที่ใช้โปรโตคอลนี้จะรักษาตารางเราท์ติ้งเทเบิ้ล
โดยรายการตารางจะขึ้นอยู่กับสถานะของเครือข่ายนั้น
ข้อเสียของโปรโตคอลนี้คือเราท์เตอร์จะต้องทำการแลกเปลี่ยนข้อมูลซึ่งกัน
และกันเพื่ออัพเดตในรายการที่ต้องการในตาราง
หรือเพื่อให้ตารางเราท์ติ้งเทเบิ้ลของในแต่ละเราท์เตอร์ให้ทันสมัยอยู่ตลอดเวลา
เราท์เตอร์แต่ละตัวต้องบรอดคาสต์ในช่วงเวลาที่กำหนดตลอดเวลา
ดังนั้นจึงทำให้จำนวนแพ็กเก็ตที่ไหลเวียนในเครือข่าย
2.2 Link-State Routing
Protocol
โปรโตคอลแบบลิงค์เตท (Link State Routing Protocol)
จะสร้างเส้นทางข้อมูลเหมือนกับต้นไม้ (Tree) โดยรากของต้นไม้นี้คือ
เราท์เตอร์ตัวมันเอง
โดยเราท์เตอร์ในแต่ละตัวจะทำการบรอดคาสต์ข้อมูลที่เกี่ยวกับเครือข่ายที่เชื่อมต่อตรงกับเราท์เตอร์เท่านั้น
และเมตริกเราท์เตอร์จะทำการบรอดคาสต์เฉพาะตอนที่มีการเปลี่ยนแปลงเท่านั้น
จึงทำให้ลดจำนวนแพ็กเก็ตในเครือข่ายลงได้
ในช่วงแรก ๆ ของการใช้เครือข่ายที่ใช้โปรโตคอล TCP/IP นั้น
แต่ละโฮสต์จะใช้หมายเลขไอพีเป็นสิ่งบ่งชี้ตัวการที่ผู้ใช้อีกเครื่องหนึ่งจะติดต่อกับผู้ใช้อีกเครื่องหนึ่ง
ผู้ใช้คนนั้นต้องรู้จักหมายเลขไอพีของอีกเครื่องหนึ่งเครือข่ายนี้ใช้งานได้ถ้าเครือข่ายไม่ใหญ่มากนัก
เนื่องจากการเติบโตของอินเทอร์เน็ตเป็นไปอย่างรวดเร็ว
ทำให้การจำหมายเลขไอพีของแต่ละโฮสต์เป็นไปได้ยาก
ดังนั้นจึงได้มีการพัฒนาระบบเพื่อตั้งชื่อให้แต่ละโฮสต์แทนการใช้หมายเลขไอพี
ซึ่งระบบนี้เรียกว่า “DNS (Domain Name System)” ระบบ DNS
จะทำหน้าที่แปลงชื่อโฮสต์ให้เป็นหมายเลขไอพีหรือในทางตรงข้าม
DNS
ทำหน้าที่คล้ายกับสมุดโทรศัพท์ กล่าวคือเมื่อมีคนต้องการจะโทรศัพท์หาใคร
คนนั้นจะเปิดสมุดโทรศัพท์ดูเพื่อค้นหาหมายเลขโทรศัพท์ ของคนที่ต้องการติดต่อ
คอมพิวเตอร์ก็เช่นกัน เมื่อต้องการติดต่อสื่อสารกับคอมพิวเตอร์เครื่องอื่น
เครื่องนั้นก็จะทำการสอบถามหมายเลขไอพีของเครื่องที่ต้องการสื่อสารด้วยกับ DNS
แบ่งออกเป็น 3 ส่วนคือ
-
Name Resolvers : จุดประสงค์หลักของ DNS
คือการแปลงชื่อคอมพิวเตอร์ให้เป็นหมายเลขไอพี ในเทอมของ DNS
แล้วเครื่องไคลเอนท์ที่ต้องการตอบถามหมายเลขไอพีจะเรียกว่า “รีโซล์ฟเวอร์
(Resolvers)”
ซอฟต์แวร์ที่ทำหน้าที่เป็นรีโซล์ฟเวอร์นั้นจะถูกสร้างขึ้นมากับแอพพลิเคชันหรืออาจจะเป็นไลบรารีที่มีอยู่ในเครื่องไคลเอนท์
-
Domain Name Space : ฐานข้อมูลของระบบ DNS
มีโครงสร้างเป็นต้นไม้ ซึ่งจะเรียกว่า “โดเมนเนมสเปซ (Domain Name Space)”
แต่ละโดเมนจะมีชื่อและสามารถมีโดเมนย่อย หรือซับโดเมน (Subdomain)
การเรียกชื่อจะใช้จุด (.) เป็นตัวแบ่งแยกระหว่างโดเมนหลักและโดเมนย่อย
-
Name Servers : เนมเซิร์ฟเวอร์ (Name Servers)
คือเครื่องคอมพิวเตอร์ที่รันโปรแกรมที่จัดการฐานข้อมูลบางส่วนของระบบ DNS
เนมเซิร์ฟเวอร์จะตอบกลับการร้องขอ
ทันทีโดยการค้นหาข้อมูลในฐานข้อมูลตัวเอง
หรือจะส่งต่อการร้องขอไปยังเนมเซิร์ฟเวอร์อื่น
ถ้าเนมเซิร์ฟเวอร์มีเร็คคอร์ดของส่วนของโดเมน
แสดงว่าเนมเซิร์ฟเวอร์นั้นเป็นเจ้าของโดเมนนั้น (Authoritative)
ถ้าไม่มีก็จะเรียกว่า Non - Authoritative
1 Domain
โครงสร้างของระบบ DNS
นั้นจะเป็นแบบมีลำดับชั้น (Hierarchy) ดังรูป
โครงสร้างของระบบ DNS
-
Root Domain : ลำดับสูงสุดของระบบโดเมนคือ รูทโดเมน (Root
Domain) ทุก ๆ โดเมนจะรู อยู่ภายใต้รูทโดเมนหมด
ดังนั้นรูทโดเมนจึงเป็นส่วนที่สำคัญมากของระบบ DNS
ในระบบอินเทอร์เน็ตนั้นรูทโดเมนประกอบด้วยเซิร์ฟเวอร์ 7 เครื่อง
-
Top-Level Domain : ระดับโดเมนที่รองลงมาจากรูทโดเมนจะเรียกว่า
โดเมนระดับหนึ่ง (Top-Level Domain)
โดเมนในระดับนี้จะถูกกำหนดให้โดยประเภทขององค์กรและประเทศโดเมนในระดับนี้จะมีคนแบ่งออกเป็น
3 ส่วนคือ โดเมนขององค์กร โดเมนของประเทศ และโดเมนการแปลงกลับ
-
Second- Level Domain :
สำหรับโดเมนระดับรองรองลงมาจากท็อปเลเวลนี้เป็นโดเมนที่แจกจ่ายให้กับองค์กรหรือบุคคลที่ต้องการชื่อโดเมน
2
โดเมนแบ่งตามหน้าที่ขององค์กร
โดเมนในระดับหนึ่งนี้จะอยู่ถัดจากรูทโดเมน
แต่ละโดเมนจะใช้โค้ดที่เป็นตัวอักษร 2-4
ตัวเพื่อบ่งบอกจุดประสงค์หรือหน้าที่หลักขององค์กรนั้น ๆ ตัวอย่างเช่น .COM
เป็นโดเมนในระดับนี้
2.1 โดเมนของประเทศ
นอกจากในการตั้งชื่อโดเมนให้เหมาะกับประเภท หรือหน้าที่ขององค์กรแล้ว
การตั้งชื่อโดเมนยังใช้ประเทศในการแบ่ง ซึ่งจะใช้ตัวอักษร 2 ตัวเป็นการบอกชื่อ
โดเมนประเทศ
โดเมน |
ประเทศ
|
| .th |
ไทย |
| .uk |
อังกฤษ |
| .au |
ออสเตรเลีย |
| .jp |
ญี่ปุ่น |
| .kr |
เกาหลี |
ชื่อโดเมนยังจะสามารถใช้แบบผสมระหว่างทั้งสองประเภท
ที่กล่าวข้างต้น โดยโดเมนที่บ่งบอกประเทศจะอยู่ขวาสุด และถัดมาจะเป็นตัวอักษร 2-3
ตัวของโดเมนที่บอกประเภทขององค์กร เช่น .co + .th จะได้โดเมนเป็น .co.th
หมายความว่าเป็นโดเมนของบริษัทหนึ่งที่อยู่ในประเทศไทย
3 ประเภทของ DNS
เซิร์ฟเวอร์
ข้อมูลที่เก็บไว้ใน DNS เซิร์ฟเวอร์แต่ละเครื่องจะแตกต่างกัน
ขึ้นอยู่กับหน้าที่ หรือประเภทของ DNS เซิร์ฟเวอร์นั้น
หน้าที่ของเซิร์ฟเวอร์นั้นจะเป็นสิ่งที่กำหนดว่าข้อมูลจะถูกเก็บไว้ในเซิร์ฟเวอร์อย่างไร
โดย DNS เซิร์ฟเวอร์แบ่งเป็นประเภทต่าง ๆ ดังนี้
3.1 Primary Name
Server
เนมเซิร์ฟเวอร์หลัก(Primary Name Server) คือ
เซิร์ฟเวอร์ที่อ่านข้อมูลเกี่ยวกับคอนฟิกูเรชันจากไฟล์ที่เก็บอยู่ในเครื่องนั้น
การเปลี่ยนแปลงข้อมูลของโซน เช่น การเพิ่มเร็คคอร์ดต่าง ๆ
จะต้องทำที่เนมเซิร์ฟเวอร์หลักเท่านั้น
3.2 Secondary Name
Server
เนมเซิร์ฟเวอร์รอง (Secondary Name Server)
จะถ่ายโอนข้อมูลของโซนจากเนมเซิร์ฟเวอร์เครื่องอื่นซึ่งอาจเป็นเนมเซิร์ฟเวอร์หลัก
หรือเนมเซิร์ฟเวอร์รองก็ได้
กระบวนการถ่ายโอนข้อมูลเกี่ยวกับโซนนี้จะเรียกว่า“โซนทรานสอร์
(Zone Transfer)” การมีเครื่องเซิร์ฟเวอร์รองนั้นมีประโยชน์ดังนี้
-
Redundancy : แต่ละโซนจะต้องมีเนมเซิร์ฟเวอร์หลักหนึ่งเครื่อง
และเซิร์ฟเวอร์รองหนึ่งเครื่อง
เซิร์ฟเวอร์รองจะทำหน้าที่แทนเซิร์ฟเวอร์หลักเมื่อเซิร์ฟเวอร์หลัก
-
Distribution
:เซิร์ฟเวอร์รองควรตั้งอยู่คนละที่กับเนมเซิร์ฟเวอร์หลัก
หรือที่ที่มีไคลเอนท์มากพอสมควร
เพื่อเป็นการช่วยลดปริมาณแพ็กเก็ตที่ต้องวิ่งผ่านระบบ WAN
เนื่องจากเนมเซิร์ฟเวอร์รองก็ทำหน้าที่เหมือนกับเนมเซิร์ฟเวอร์หลัก
-
Load Balancing :
การใช้เนมเซิร์ฟเวอร์รองนั้นจะช่วยแบ่งเบาโหลดของเนมเซิร์ฟเวอร์หลักได้
ซึ่งจะช่วยให้เวลาในการโพรเซสและตอบกลับ (Response Time) เร็วขึ้น
3.3 Master Name Server
มาสเตอร์เนมเซิร์ฟเวอร์ (Master
Name Server) เป็นแหล่งข้อมูลโซนของเซิร์ฟเวอร์รอง
ดังนั้นเมื่อมาสเตอร์เนมเซิร์ฟเวอร์อาจจะเป็นเนมเซิร์ฟเวอร์หลักก็ได้
หรือเนมเซิร์ฟเวอร์รองก็ได้
เมื่อเปิดเนมเซิร์ฟเวอร์รองครั้งแรกทำการติดต่อกับมาสเตอร์เนมเซิร์ฟเวอร์เพื่อทำโซนทรานสเฟอร์
สำหรับในแต่ละโซนที่เซิร์ฟเวอร์นี้จะทำหน้าที่เป็นเนมเซิร์ฟเวอร์รอง
โซนทรานสเฟอร์จะเกิดขึ้นเป็นช่วงๆ
หรือเมื่อใดก็ตามที่ข้อมูลเปลี่ยนแปลงบนมาสเตอร์เนมเซิร์ฟเวอร์
3.4
Forwarders and Slaves
เมื่อเนมเซิร์ฟเวอร์ได้รับการตอบถาม (Query) เข้ามา
เครื่องนั้นก็จะทำการตรวจตอบข้อมูลเกี่ยวกับโซนนั้นในเซิร์ฟเวอร์นั้นก่อน
แต่ถ้าเซิร์ฟเวอร์นั้นไม่มีข้อมูลอยู่ หรือไม่มีข้อมูลที่เป็นต้นฉบับ
(Non-Authoritative) ของโซนนั้น มันก็จะทำการติดต่อกับเนมเซิร์ฟเวอร์เครื่องอื่น
โดยส่วนใหญ่แล้วกรณีนี้จะเกิดขึ้นเมื่อโซนที่สอบถามมานั้น
ไม่อยู่ในระบบเครือข่ายเดียวกัน DNS
จะกำหนดให้เนมเซิร์ฟเวอร์เครื่องหนึ่งทำหน้าที่เป็นเครื่องส่งต่อ (Forwaeder)
เพื่อทำหน้าที่ร้องขอข้อมูลไปยังเนมเซิร์ฟเวอร์อื่นที่อยู่บนอินเทอร์เน็ต
และส่งผลที่ได้กลับไปยังเนมเซิร์ฟเวอร์ที่ทำการร้องขอมา
ถ้าเครื่องฟอร์เวิลด์เดอร์ไม่สามารถกลับไปร้องขอได้
เนมเซิร์ฟเวอร์ที่ร้องขอมาจะต้องตัดสินเองว่าจะตอบการร้องขออย่างไร
การที่เนมเซิร์ฟเวอร์จะตอบ
การร้องขอเอง ในกรณีที่ฟอร์เวิลด์เดอร์ไม่ทำงาน จะเรียกว่าเป็น
“นอนเอ็กซ์กลูชีพโหมด (Nonexclusive Mode)”
3.5
Caching-only Name Server
ดีเอ็นเอสเซิร์ฟเวอร์
จะทำการเก็บเร็คคอร์ดของโซนที่ได้รับการตอบกลับแล้วไว้ในแคชเป็นเวลาช่วงหนึ่ง
ซึ่งถ้าเซิร์ฟเวอร์นี้ไม่มีข้อมูลเกี่ยวกับโซนที่เก็บไว้ในรูปไฟล์ จะเรียกว่า
“แคชชิ่งโอนลีเนมเซิร์ฟเวอร์ (Caching-only Name Server)”
ดังนั้นมันจึงไม่มีการทำ
โซนทรานสเฟอร์
ในตอนแรกที่แคชชิ่งเซิร์ฟเวอร์ทำงาน
ในเซิร์ฟเวอร์จะไม่มีข้อมูลใด ๆ
เลยดังนั้นมันจึงทำการส่งต่อการร้องขอทั้งหมดไปยังเนมเซิร์ฟเวอร์เครื่องอื่น
ในขณะเดียวกันก็ทำการเก็บข้อมูลการร้องขอต่าง ๆ ที่ได้รับการตอบกลับมาไว้ในแคช
ครั้งต่อไปที่มีการร้องขอที่เหมือนกันมันก็สามารถตอบกลับได้ทันที
ในตอนแรกนั้นแคชเซิร์ฟเวอร์จะรับส่งข้อมูลในปริมาณที่มาก
เนื่องจากตอนแรกยังไม่มีข้อมูลอยู่ในแคชเลย
แต่เนื่องจากแคชชิ่งเซิร์ฟเวอร์ไม่ต้องทำโซนทรานสเฟอร์
ดังนั้นปริมาณแพ็กเก็ตก็จะน้อยลงเมื่อถึงช่วงเวลาหนึ่ง
4 ขั้นตอนการทำงานของ
DNS
กระบวนการในการร้องขอ (Query) ของระบบ DNS จะมีด้วยกัน 3 วิธีคือ
รีเคอร์ชีพ (Recursive) , อินเตอร์แอ็คทีฟ (Interactive) และอินเวอร์ส
(Inverse)
การร้องขอแบบรีเคอร์ชีพและอินเตอร์แอ็คทีฟ
โดยปกติการร้องขอแบบรีเคอร์ชีพ (Recursive Query)
จะเกิดขึ้นระหว่างไคลเอนท์และเนมเซิร์ฟเวอร์
การที่เนมเซิร์ฟเวอร์ได้รับการรร้องขอแบบนี้จะตอบกลับด้วยข้อมูลที่เกี่ยวกับโดนเมนนั้น
หรืออาจตอบกลับเป็นข้อความที่บอกการผิดพลาดถ้าข้อมูลของโดเมน
หรือโฮสต์นั้นไม่มีระบบ เนมเซิร์ฟเวอร์ที่ได้รับการร้องขอแบบรีเคอร์ชีพนี้
จะรับผิดชอบเกี่ยวกับการค้นหาข้อมูลของโดเมนหรือโฮสต์
โดยจะไม่สามารถส่งต่อเพื่อการร้องขอให้เนมเซิร์ฟเวอร์อื่นได้
อย่างไรก็ตามเนมเซิร์ฟเวอร์สามารถร้องขอแบบอินเตอร์แอ็คทีฟ (Interactive)
กับเนมเซิร์ฟเวอร์อื่นได้
เพื่อค้นหาเนมเซิร์ฟเวอร์ที่มีสิทธิ์ในการจัดการโดเมนดังกล่าว

การร้องขอแบบรีเคอร์ชีพและอินเตอร์แอ็คทีฟ
เวิลด์ไวด์เว็บ (World Wide Web) หรือเรียกสั้น ๆ ว่า เว็บ
(Web) หรือ WWW เป็นแอพพลิเคชันหนึ่งที่ทำให้อินเทอร์เน็ตเป็นที่นิยมมากในปัจจุบัน
WWW ใช้โปรโตคอล HTTP (Hyper text transfer Protocol)
ซึ่งเป็นโปรโตคอลที่ใช้รับส่งไฟล์ HTML (Hyper text Markup Protocol) โดย HTML
นั้นเป็นภาษาที่ใช้อธิบายการแสดงเว็บเพจนั้นเอง WWW
เป็นแอพพลิเคชันที่ทำงานแบบไคลเอนท์เซิร์ฟเวอร์ กล่าวคือ WWW
นั้นจะมีโฮสต์เครื่องหนึ่งที่ทำหน้าที่เป็นเซิร์ฟเวอร์ เรียกว่า “เว็บเซิร์ฟเวอร์
(Web Server) ซึ่งจะทำหน้าที่ให้บริการเอกสาร HTML
ส่วนเครื่องไคลเอนท์นั้นใช้โปรแกรมเว็บบราวเซอร์ (Web Browser) เช่น
อินเตอร์เน็ตเอ็กซ์พลอเรอร์ (IE) ซึ่งจะร้องขอไฟล์ HTML
จากเว็บบราวเซอร์และแสดงผลให้ผู้ใช้ดู
การทำงานของโปรโตคอล HTML
1 กลไกการทำงานของ
โปรโตคอล HTTP
เป็นโปรโตคอลที่อยู่ในชั้นแอพพลิเคชันของชุดโปรโตคอล TCP/IP
ซึ่งจะเป็นตัวกำหนดรูปแบบการร้องขอไฟล์ของไคลเอนท์ (เว็บบราวเซอร์)
จากเว็บเซิร์ฟเวอร์
และรูปแบบการถ่ายโอนไฟล์จากเว็บเซิร์ฟเวอร์ไปยังไคลเอนท์โดยขั้นตอนคร่าวๆ
นั้นได้แสดงในรูปที่ 2.51 ซึ่งอธิบายได้ดังนี้คือ
กระบวนการนั้นจะเริ่มที่ทางฝั่งไคลเอนท์ โดยผู้ใช้คลิกในลิงค์ในเว็บเพจ หรือพิมพ์
URL (Uniform Resource Locator) ในช่องที่อยู่ (Address) ของเว็บบราวเซอร์
หลังจากนั้นเว็บบราวเซอร์จะทำการส่งการร้องขอ (HTTP Request)
ผ่านเครือข่ายไปยังเว็บเซิร์ฟเวอร์
เมื่อเว็บเซิร์ฟเวอร์ที่ได้รับการร้องขอก็จะทำการค้นหาไฟล์ที่ถูกกำหนดใน URL
ซึ่งถ้าพบก็จะตอบกลับ (HTTP Response) พร้อมกับไฟล์ กลับไปยังฝั่งไคลเอนท์
เว็บบราวเซอร์เมื่อได้รับการตอบกลับก็จะแสดงไฟล์นั้นให้ผู้ใช้ดู โปรโตคอล HTTP
นั้นไม่ได้กำหนดรูปแบบการแสดงผลให้ผู้ใช้ดู ซึ่งหน้าที่นี้เป็นของเว็บบราวเซอร์
ดังนั้นเว็บบราวเซอร์ที่ต่างกันอาจแสดงเว็บเพจไม่เหมือนกันก็ได้
เว็บเพจหรือไฟล์ที่อยู่ในรูปแบบ
HTML นั้นจะประกอบด้วยออบเจ็กต์ เช่น รูปภาพ (ไฟล์ .jpg, .gif เป็นต้น) เสียง
และวิดีโอ เป็นต้น โดยออบเจ็กต์เหล่านี้จะถูกส่งทีละออบเจ็กต์ผ่านการเชื่อมต่อ
TCP ที่สร้างไว้ก่อนหน้า ดังนั้นถ้ามีออบเจ็กต์เยอะๆ ในไฟล์
ก็จะทำให้กระบวนการนี้ช้าเนื่องจากมีแค่การเชื่อมต่อเดียว
แต่ละบราวเซอร์ในปัจจุบันสามารถสร้างการเชื่อมต่อ TCP ได้ทีละหลายๆ
การเชื่อมต่อในเวลาเดียวกัน ดังนั้นเมื่อบราวเซอร์ได้รับการตอบรับ
ครั้งแรกก็จะสร้างการเชื่อมต่อใหม่หลาย ๆ
การเชื่อมต่อพร้อมกับการส่งในการร้องขอไปในการเชื่อมต่อเหล่านั้น
ทำให้การถ่ายโอนออบเจ็กต์ทั้งหมดที่ต้องแสดงในเว็บเพจหนึ่งนั้นเร็วขึ้น
2 ข้อความการร้องขอและตอบกลับ (HTTP
Message)
มาตรฐานของโปรโตคอล HTTP ที่ใช้ในปัจจุบันคือเวอร์ชัน1.1 (HTTP/1.1)
ซึ่งได้กำหนดรูปแบบข้อมูลที่รับส่งระหว่างไคลเอนท์และเซิร์ฟเวอร์
โดยข้อความที่แลกเปลี่ยนกันนี้แบ่งออกเป็น 2 ประเภทคือ ข้อความการร้องขอ (HTTP
Request Message) และข้อความการตอบกลับ (HTTP Response Message)
FTP (File Transfer Protocol)
เป็นโปรโตคอลสำหรับถ่ายโอนไฟล์ระหว่างสองเครื่อง โปรโตคอล FTP
นั้นมีมาพร้อมกับอินเตอร์เน็ตในสมัยแรกๆ และยังเป็นโปรโตคอลที่นิยมในปัจจุบัน FTP
ถูกอธิบายใน RFC 959 ดังรูปที่ 2.52
ซึ่งแสดงลักษณะการถ่ายโอนไฟล์ระหว่างเครื่องด้วย
FTP
โดยทั่วไปแล้วเมื่อผู้ใช้ต้องการถ่ายโอนไฟล์ระหว่างเครือข่าย
ผู้ใช้ก็จะต้องเปิดโปรแกรม FTP ซึ่งสิ่งที่ผู้ใช้ต้องระบุในการเชื่อมต่อครั้งแรกคือ
ชื่อหรือที่อยู่ของ FTP เซิร์ฟเวอร์ พร้อมทังชื่อล็อกอินและรหัสผ่าน
หลลังจากนั้นไคลเอนท์จะสร้างการเชื่อมต่อ TCP กับเซิร์ฟเวอร์
และส่งข้อมูลเกี่ยวกับล็อกอินเพื่อเซิร์ฟเวอร์จะได้ตรวจสอบสิทธิ์ของผู้ใช้
และถ้าตรวจสอบสิทธิ์ผ่านผู้ใช้ก็สามารถอัพโหลดไฟล์
หรือดาวน์โหลดไฟล์ระหว่างเครื่องของผู้ใช้และเซิร์ฟเวอร์ได้
การถ่ายโอนไฟล์ด้วย FTP
โปรโตคอล FTP และ HTTP มีหลายอย่างที่เหมือนกัน เช่น
ทั้งสองเป็นโปรโตคอลสำหรับถ่ายโอนไฟล์และนอกจากกนี้ใช้การเชื่อมต่อแบบ TCP
เหมือนกัน อย่างไรก็ตามทั้งสองโปรโตคอลมีข้อแตกต่างที่สำคัญคือ โปรโตคอล FTP
จะใช้การเชื่อมต่อ TCP ที่ขนานกันสองการเชื่อมต่อ
การเชื่อมต่อแรกใช้สำหรับการควบคุมการถ่ายโอนไฟล์ (Control
Connection)
ส่วนการเชื่อมต่อที่สองจะใช้สำหรับการถ่ายโอนข้อมูลหรือไฟล์ (Data Connection)
ช่องการเชื่อมต่อข้อมูลนั้นจะใช้สำหรับการส่งข้อมูล
หรือคำสั่งที่ใช้สำหรับควบคุมการถ่ายโอนไฟล์ระหว่างโฮสต์ เช่น ชื่อล็อกอิน
รหัสผ่าน คำสั่งสำหรับการเปลี่ยนไดเร็คทอรี หรือคำสั่งสำหรับการอัพโหลดไฟล์ (put)
และคำสั่งสำหรับการดาวน์โหลดไฟล์ (get) เป็นต้น
ส่วนช่องการเชื่อมต่อข้อมูลนั้นก็ใช้สำหรับการถ่ายโอนไฟล์ ส่วนโปรโตคอล HTTP
นั้นจะใช้การเชื่อมต่อเดียวสำหรับทั้งรับส่งข้อมูลการควบคุมและไฟล์เว็บเพจ รูปที่
2.53 แสดงช่องการเชื่อมต่อของ FTP
ช่องควบคุมและช่องการถ่ายโอนไฟล์ของ FTP
กระบวนการของการถ่ายโอนไฟล์ด้วย FTP
นั้นจะเริ่มจากไคลเอนท์สร้างการเชื่อมต่อ TCP กับทางฝั่งเซิร์ฟเวอร์ผ่านทางพอร์ต 21
ซึ่งการเชื่อมต่อนี้เป็นช่องสำหรับการรับส่งข้อมูลการควบคุมการถ่ายโอนไฟล์
เมื่อสร้างการเชื่อมต่อสำหรับต่อไปทางฝังไคลเอนท์ก็จะส่งข้อมูลล็อกอิน เช่น
ชื่อผู้ใช้และรหัสผ่านไปให้ทางฝั่งเซิร์ฟเวอร์ตรวจสอบสิทธิ์
เมื่อเซิร์ฟเวอร์ตรวจสอบสิทธิ์ผ่านไคลเอนท์ก็สามารถดาวน์โหลด หรืออัพโหลดไฟล์ได้
ซึ่งมีขขั้นตอนดังนี้ เช่น
เมื่อไคลเอนท์ต้องการดาวน์โหลดไฟล์ไคลเอนท์ก็ส่งข้อมูลเกี่ยวกับไฟล์นั้นไปให้ทางฝั่งเซิร์ฟเวอร์ผ่านทางพอร์ต
21 เมื่อเซิร์ฟเวอร์ได้รับการร้องขอก็จะสร้างการเชื่อมต่อใหม่โดยใช้พอร์ต 20
กับ
ทางฝั่งไคลเอนท์
หลังจากนั้นไฟล์ที่ร้องขอนั้นก็จะถูกถ่ายโอนผ่านทางพอร์ต 20
และเมื่อการถ่ายโอนไฟล์เสร็จก็จะปิดการเชื่อมต่อที่พอร์ต 20
และเมื่อมีการร้องขอใหม่
ซึ่งอาจจะเป็นการอัพโหลดหรือดาวน์โหลดไฟล์ก็จะสร้างการเชื่อมต่อ TCP ผ่านพอร์ต 20
ใหม่
แต่ช่องการเชื่อมต่อสำหรับการควบคุมนั้นยังคงสภาพไว้จนกว่าทางฝั่งไคลเอนท์จะยกเลิก
1 คำสั่งของ FTP
ในหัวข้อนี้จะกล่าวถึงคำสั่งต่างๆ
ที่รับส่งระหว่างไคลเอนท์และเซิร์ฟเวอร์สำหรับควบคุมการถ่ายโอนไฟล์ระหว่างไคลเอนท์และเซิร์ฟเวอร์
โดยคำสั่งเหล่านี้จะผ่านทางช่องควบคุมที่พอร์ต 21 คำสั่งของ FTP
นั้นคนทั่วไปสามารถอ่านและเข้าใจความหมายได้ โดยคำสั่งนั้นจะอยู่ในรูปแบบ ASCII
ทุกๆ คำสั่งนั้นจะขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่ โดยบางคำสั่งอาจมีพารามิเตอร์เข้า
คำสั่งที่สำคัญมีดังนี้
- USER username :
ใช้สำหรับส่งชื่อสำหรับล็อกอิน
- Pass password :
ใช้สำหรับส่งรหัสผ่าน
- LIST :
ใช้สำหรับไคลเอนท์ส่งการร้องขอให้เซิร์ฟเวอร์ส่งรายการของไฟล์และโฟลเดอร์ในไดเร็คทอรีปัจจุบัน
โดยเซิร์ฟเวอร์นั้นจะส่งข้อมูลนี้ผ่านช่องทางข้อมูล หรือการเชื่อมต่อที่พอร์ต
20
- RETR filename : ใช้สำหรับการดาวน์ โหลดไฟล์ (คำสั่ง get)
จากเซิร์ฟเวอร์จากไดเร็คทอรีปัจจุบัน
- STOR filename :
ใช้สำหรับอัพโหลดไฟล์(คำสั่ง
put)ไปยังไดเร็คทอรีปัจจุบันที่เซิร์ฟเวอร์
ข้างบนเป็นตัวอย่างคำสั่ง
ที่ไคลเอนท์ส่งผ่านช่องควบคุมไปให้เซิร์ฟเวอร์
การตอบกลับของเซิร์ฟเวอร์ของในแต่ละคำสั่งนั้นจะเริ่มด้วยตัวเลขสามหลัก
ซึ่งจะเป็นรหัสบอกสถานภาพของเซิร์ฟเวอร์
และอาจจะมีข้อความต่อท้ายหมายเลขนี้เพื่ออธิบายรายละเอียดเพิ่มเติมเกี่ยวกับการตอบกลับนั้นๆ
ตัวอย่างของการตอบกลับจากเซิร์ฟเวอร์ เช่น
- 331 Username OK, password
required
- 125 Data connection already opened; transfer
starting
- 425 Can’t open data connection
- 452 Error writing
file
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับคำสั่ง
และการตอบกลับของเซิร์ฟเวอร์นั้นผู้ใช้สามารถศึกษาเพิ่มเติมได้ใน RFC 959
2
จดหมายอิเล็กทรอนิกส์ : E-Mail
อีเมล (E-mail) หรือจดหมายอิเล็กทรอนิกส์
(Electronic mail)
เป็นอีก
แอพพลิเคชันหนึ่งที่นิยมมากรองจากเวิลด์ไวด์เว็บในอินเตอร์เน็ตปัจจุบัน
หลักการทำงานของอีเมลนั้นก็จะคล้ายๆ กับการรับส่งจดหมายทั่วๆ ไป กล่าวคือ
ผู้ใช้สามารถรับส่งข้อความถึงกันและกันได้ แต่ข้อได้เปรียบของอีเมลก็คือ รวดเร็ว
ง่ายต่อส่ง และถูกกว่า
นอกจากข้อความธรรมดาแล้วปัจจุบันเรายังสามารถส่งข้อความในรูปแบบของเอกสาร HTML
ซึ่งเราสามารถใส่ลิงค์รูปภาพ เสียง หรือแม้กระทั่งวิดีโอก็ได้ด้วย
ในหัวข้อนี้ผู้เขียนจะได้อธิบายถึงหลักการทำงานของอีเมลรวมถึงโปรโตคอลในระดับแอพพลิเคชันที่ใช้สำหรับรับส่งอีเมลผ่านอินเเตอร์เน็ต

ระบบอีเมล
2.1
POP
กระบวนการส่งอีเมลจะสิ้นสุดเมื่ออีเมลส่งถึงเมลเซิร์ฟเวอร์ของผู้รับ
ซึ่งอีเมลนั้นจะถูกเก็บไว้ในเมลบ็อกซ์ของผู้รับที่เซิร์ฟเวอร์ ในช่วงแรก ๆ
ของการใช้อีเมลนั้น
เมื่อผู้ใช้ต้องการอ่านอีเมลก็จะล็อกอินมายังเมลเซิร์ฟเวอร์แล้วค่อยๆ
ใช้โปรแกรมอีเมลอ่านข้อความในจดหมาย ปัจจุบันผู้ใช้จะใช้เมลไคลเอนท์ เช่น
เอาต์ลุ๊คในการเช็คเมลในเมลบ็อกซ์ที่เก็บไว้ที่เซิร์ฟเวอร์
ดังนั้นเมลไคลเอนท์ก็จะใช้โปรโตคอล เช่น POP,IMAPเป็นต้น
เพื่อสำหรับดึงอีเมลจากเซิร์ฟเวอร์มาเก็บไว้ที่เครื่องไคลเอนท์ของผู้ใช้เพื่ออ่านอีเมลที่ส่งมาถึงผู้ใช้คนนั้น
POP(Post office
Protocol)เป็นโปรโตคอลที่ใช้อ่านเมลในเมลบ็อกซ์ซึ่งเวอร์ชันที่ใช้ในปัจจุบันคือ
เวอร์ชัน 3 (POP 3) และรายละเอียดได้ถูกอธิบายใน RSC 1939
การทำงานนั้นจะเริ่มจากไคลเอนท์สร้างการเชื่อมต่อแบบ TCP
กับเมลเซิร์ฟเวอร์ผ่านพอร์ต 110
ซึ่งในระหว่างการเชื่อมต่อนั้นจะมีขั้นตอนการเชื่อมต่ออยู่ 3 ระยะดังนี้
ระยะเมื่อไคลเอนท์สร้างการเชื่อมต่อกับเซิร์ฟเวอร์แล้วก็จะส่งข้อมูลการล็อกอินคือชื่อผู้ใช้
และรหัสผ่าน
เพื่อตรวจสอบสิทธิ์
การใช้งาน ระยะที่ 2 จะเป็นการดาวน์โหลดอีเมลจากเซิร์ฟเวอร์
และในระยะนี้ไคลเอนท์สามารถกำหนดว่าเมลไหนที่ผู้ใช้ต้องการลบออกจากเมลบ็อกซ์
ส่วนในระยะสุดท้ายก็คือการสิ้นสุดการเชื่อมต่อ
โดยเมลเซิร์ฟเวอร์จะทำการลบอีเมลที่ผู้ใช้ต้องการ
และสิ้นสุดการเชื่อมต่อข้างล่างเป็นตัวอย่างของคำสั่งที่ไคลเอนท์ส่งให้เซิร์ฟเวอร์
และการตอบกลับจากเซิร์ฟเวอร์ ผู้อ่านอาจทดลองโดยใช้ telnet ไปที่พอร์ต 110
ของเมลเซิร์ฟเวอร์ (telnet YourPOP3Server 110)
2.2 IMAP
ปัญหาของ POP3
คือผู้ใช้ไม่สามารถจัดการเมลบ็อกซ์ของตัวเองได้
ทำได้ก็แค่ดาวน์โหลดเมลและลบเมลที่ไม่ต้องการเท่านั้น
สำหรับผู้ใช้บางคนที่ต้องการเก็บเมลไว้ที่เซิร์ฟเวอร์เพื่อที่เขาจะได้อ่านเมลจากเครื่องใดก็ได้นั้น
เมื่อเมลที่เก็บไว้ในเมลบ็อกซ์เพิ่มจำนวนมากขึ้น
ก็อาจทำให้ผู้ใช้ยากที่จะจัดการเมลได้ ถ้าใช้ POP3
นั้นผู้ใช้ไม่สามารถบอกได้ว่าเมลไหนที่ได้อ่านแล้ว
หรือผู้ใช้ไม่สามารถสร้างโฟลเดอร์ใหม่ที่เซิร์ฟเวอร์ได้
ทำให้ยากต่อการค้นหาเมลหรือถ้าต้องอ่านเฉพาะเมลใหม่ก็จะทำยาก
IMAP (Internet
Message Access Protocol) ซึ่งได้อธิบายใน RFC 2060
เป็นโปรโตคอลที่ใช้สำหรับเข้าจัดการเมลบ็อกซ์ โดยเวอร์ชันล่าสุดคือ เวอร์ชัน 4
แก้ไขที่ 1 (IMAP4rev1) และถูกคิดค้นขึ้นมาเพื่อแก้ปัญหาของ POP3 ซึ่ง IMAP
นี้มีฟีเจอร์ต่าง ๆ มากกว่า POP3 แต่จะซับซ้อนมากกว่า IMAP
เป็นโปรโตคอลที่อนุญาตให้ผู้ใช้สามารถจัดการเมลบ็อกซ์ที่เซิร์ฟเวอร์ ตัวอย่างเช่น
ผู้ใช้สามารถสร้างโฟลเดอร์เพื่อจัดเก็บเมลใหม่ที่เซิร์ฟเวอร์ได้
และยังสามารถย้ายเมลจากโฟลเดอร์หนึ่งไปยังโฟลเดอร์หนึ่งได้
และนอกจากนี้เซิร์ฟเวอร์ยังเก็บรายละเอียดเกี่ยวกับว่าเมลนี้ได้ถูกเปิดอ่านแล้วหรือยัง
เป็นต้น นอกจากนี้ IMAP
ยังอนุญาตให้ผู้ใช้สามารถดาวน์โหลดเฉพาะบางส่วนของเมลเท่านั้น เช่น
ข้อมูลส่วนหัวของอีเมล หรือถ้าเป็นอีเมลที่มีไฟล์แนบ (Attachment)
ผู้ใช้อาจกำหนดให้ดาวน์โหลดเฉพาะข้อความเท่านั้น ส่วนไฟล์ที่แนบให้
เก็บไว้ที่เซิร์ฟเวอร์ก่อนฟีเจอร์นี้เหมาะสำหรับในกรณีที่แบนด์วิธระหว่างไคลเอนท์
และเซิร์ฟเวอร์ต่ำ ซึ่งถ้าดาวน์โหลดทั้งอีเมลอาจใช้เวลานานเกินไป
2.3
SNMP
SNMP (Simple Network Management Protocol)
เป็นโปรโตคอลในแอพพลิเคชันเลเยอร์
ที่ใช้สำหรับแลกเปลี่ยนข้อมูลเกี่ยวกับการจัดการเครื่อข่ายระหว่างอุปกรณ์เครือข่ายต่างๆ
โปรโตคอลนี้เป็นส่วนหนึ่งในชุดโปรโตคอล TCP/IP
ซึ่งช่วยให้ผู้ดูแลระบบ
สามารถจัดการประสิทธิภาพ วิเคราะห์ปัญหา
และให้ข้อมูลเพื่อใช้สำหรับการวางแผนเพื่อขยายเครือข่ายในอนาคต
โปรโตคอล SNMP
ได้พัฒนามาแล้ว 2 เวอร์ชันคือ SNMPv1 และ SNMPv2
ซึ่งทั้งสองเวอร์ชันมีหลายฟีเจอร์ที่เหมือนกัน แต่เวอร์ชัน 2 จะมีส่วนขยายเพิ่ม
ส่วนเวอร์ชัน 3 (SNMPv3) กำลังอยู่ในระหว่างการพัฒนา
2.3.1
องค์ประกอบของระบบการจัดการเครือข่าย
ระบบการจัดการระบบเครือข่ายที่ใช้โปรโตคอล
SNMP จะประกอบด้วย 3 ส่วนคือ
-
อุปกรณ์เครือข่ายที่ต้องการจัดการ (Managed Devices)
-
เอเจนต์ (Agents)
-
ระบบจัดการเครือข่าย (Network Management ystems
NMS)
อุปกรณ์เครือข่ายที่ต้องการจัดการ (Managed Devices)
คืออุปกรณ์เครือข่ายที่ติดตั้งเอเจนต์ SNMP
ซึ่งเอเจนต์จะทำหน้าที่รวบรวมและจัดเก็บข้อมูลของอุปกรณ์และรับส่งข้อมูลนี้กับ NMS
โดยใช้โปรโตคอล SNMP อุปกรณ์เครือข่ายที่ต้องการจัดการเช่น เราท์เตอร์,
แอ็กเซสเซิร์ฟเวอร์, สวิตซ์, ฮับ, คอมพิวเตอร์ หรือเครื่องพิมพ์
เป็นต้น
เอเจนต์เป็นซอฟต์แวร์ที่ติดตั้งที่อุปกรณ์เครือข่ายที่ต้องการจัดการ
ซึ่งซอฟต์แวร์นี้จะจัดการข้อมูลของอุปกรณ์นั้น
และแปลงให้สามารถใช้งานได้กับโปรโตคอล NMS
เป็นเซิร์ฟเวอร์ที่มอนิเตอร์และควบคุมอุปกรณ์เครือข่ายอีกทีหนึ่ง
2.3.2
คำสั่งพื้นฐานของ
SNMP
อุปกรณ์เครือข่ายจะถูกมอนิเตอร์ควบคุมโดยคำสั่งพื้นฐานดังนี้
Read : ใช้โดย NMS เพื่อมอนิเตอร์อุปกรณ์นั้น โดย NMS
จะอ่านและตรวจสอบข้อมูลต่าง ๆ ที่อุปกรณ์นั้นเก็บรวบรวมไว้
-
Write : ใช้โดย NMS เพื่อควบคุมอุปกรณ์นั้น โดย NMS
จะเปลี่ยนค่าตัวแปรต่าง ๆ ที่เก็บไว้ที่อุปกรณ์นั้น
Trap : เป็นข้อมูลที่อุปกรณ์นั้นส่งไปยัง NMS
เมื่อมีเหตุการณ์ที่กำหนดเกิดขึ้น
2.4 MIB (Management Information
Base)
MIBเป็นฐานข้อมูลที่เก็บรวบรวมข้อมูลที่เกี่ยวกับการจัดการเครือข่าย
และมีการเก็บแบบมีลำดับชั้น MIB สามารถแอ็กเซสได้โดยใช้โปรโตคอลจัดการระบบ เช่น
SNMP
ฐานข้อมูลจะประกอบด้วยออบเจ็กต์ (Object)
ซึ่งแต่ละออบเจ็กต์จะมีหมายเลขประจำ (Object ID)
แต่ละออบเจ็กต์จะเป็นค่าหนึ่งที่บอกคุณสมบัติหรือสถานะของอุปกรณ์ที่ถูกจัดการนั้น ๆ
แต่ละออบเจ็กต์อาจมีหลายหน่วย (Instance)
หรือตัวแปรนั่นเอง
ออบเจ็กต์แบ่งออกเป็น 2 ประเภทคือ สเกลาร์ (Scalar)
และเทบูลาร์ (Tabular) ออบเจ็กต์แบบสเกลาร์เป็นค่าเดียว
ส่วนออบเจ็กต์แบบเทบูลาร์เป็นออบเจ็กต์ที่มีหลายค่า
ซึ่งจะถูกจัดเก็บไว้เป็นตาราง
|