วันจันทร์ที่ 30 มกราคม พ.ศ. 2555

บทที่ 6 จดหมายอิเล็กทรอนิกส์



 โปรโตคอลที่สำคัญที่ทำงานในเลเยอร์อินเตอร์เน็ตคือ  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)
  1. โฮสต์ที่ต้องการส่งข้อมูลจะส่งแพ็กเก็ตไปยังโฮสต์ปลายทาง เพื่อแจ้งให้ทราบว่าต้องการส่งข้อมูล
  2. โฮสต์ปลายทางก็จะตอบตกลงมา พร้อมทั้งรหัสที่จะใช้ในการรับส่งข้อมูล
  3. โฮสต์ต้นทางก็จะส่งแพ็กเก็ตพร้อมรหัสที่ได้รับ เพื่อเป็นการยืนยันการเชื่อมต่อ
หลังจากที่ได้มีการสร้างเซสชั่นสำเร็จแล้วถึงเริ่มขบวนการรับ – ส่งข้อมูลจริงๆ ซึ่งในการรับส่งข้อมูลในแต่ละครั้งก็จะมีการยืนยันการรับส่งข้อมูลจากโฮสต์ปลายทางทุกครั้ง  เมื่อรับส่งข้อมูลเสร็จก็เป็นขั้นตอนการยกเลิกการเซสชั่น ซึ่งจะคล้าย ๆ กับการสร้างเซสชั่น
3  การควบคุมการไหลเวียนและกู้คืนข้อมูล
ในแต่ละเซสชั่น  โฮสต์ฝ่ายรับต้องตอบกลับทุก ๆ แพ็กเก็ตที่ได้รับภายในเวลาที่กำหนด  เพื่อเป็นการยืนยันการรับข้อมูลทุก ๆ แพ็กเก็ตที่ส่ง  ฝ่ายรับจะทำการเช็คความถูกต้องของแพ็กเก็ตข้อมูลทุกครั้ง และแจ้งให้ทราบถึงการตรวจตอบนั้น ถ้าฝ่ายส่งไม่ได้รับการตอบรับจากฝ่ายรับภายในเวลาที่กำหนด   ฝ่ายรับก็จะคาดเอาว่าแพ็กเก็ตสูญหายระหว่างทาง  ฝ่ายรับก็จะทำการส่งแพ็กเก็ตนั้นให้ใหม่อีกครั้ง  เพื่อจะทำให้มั่นใจได้ว่าข้อมูลทุก ๆ แพ็กเก็ตส่งถึงปลายทางอย่างสมบูรณ์ 
ข้อมูลในส่วนหัวของโปรโตคอล TCP จะประกอบด้วยข้อมูลมากที่สุด  20  ไบต์  และประกอบด้วยส่วนต่าง ๆ ซึ่งมีฟิลด์มีความหมายดังนี้
  1. TCP  Source  Port  (16 บิต) : ส่วนนี้จะเป็นหมายเลขพอร์ตที่เป็นจุดเริ่มการสื่อสาร หมายเลขพอร์ตเมื่อรวมกับหมายเลข IP จะเป็นที่อยู่ของการส่งข้อมูลกลับ
  2. TCP  Destination Port  (16 บิต) : เป็นหมายเลขพอร์ตเครื่องรับ  ซึ่งพอร์ตนี้จะเป็นพอร์ตที่ใช้เชื่อมต่อกับแอพพลิเคชันที่จะนำข้อมูลที่ส่งไปให้นี้ไปโพรเซสต่อไป
  3. TCP  Sequence  Number  (32 บิต) : เป็นหมายเลขที่บอกลำดับแพ็กเก็ตที่จะใช้ โดยฝั่งเครื่องรับในการเรียงข้อมูลให้อยู่ในรูปเดิมในการส่งข้อมูลผ่านเครือข่ายที่สลับซับซ้อนนั้นแพ็กเก็ตแต่ละชุดอาจจะถูกส่งไปบนเส้นทางที่ต่างกัน  ดังนั้นจึงเป็นไปได้ที่แพ็กเก็ตจะเดินทางมาถึงปลายทางไม่เป็นไปตามลำดับที่ส่ง หมายเลขนี้จะใช้ในการจัดเรียงแพ็กเก็ตเหล่านี้ให้อยู่ในลำดับเดิม
  4. TCP  Acknowledgement  Number   (32 บิต) : เป็นหมายเลขลำดับแพ็กเก็ตถัดไปที่ทางฝั่งรับคาดหวัง ซึ่งเป็นการบอกเป็นนัยว่าแพ็กเก็ตที่มีหมายเลขลำดับก่อนหน้านี้ได้รับหมดแล้วนั่นเอง
  5. Data  Offset  (4 บิต) : เป็นตัวเลขที่บอกขนาดของข้อมูลส่วนหัว (TCP Header) ซึ่งมีหน่วยเป็น  32  บิต หรือ Word
  6. Reserved  (6 บิต) : ส่วนนี้จะถูกกำหนดให้เป็นศูนย์ตลอด ซึ่งข้อมูลส่วนนี้ไม่มีความหมายอะไรเพียงแต่เป็นการสงวนไว้ใช้ในอนาคตเมื่อมีการปรับปรุงโปรโตคอล 
  7. Flags  (6 บิต) : เป็นข้อมูลที่ใช้สำหรับควบคุมการรับส่งแพ็กเก็ต
  8. Window  Size  (16 ) : เป็นตัวเลขที่เครื่องปลายทางบอกให้เครื่องต้นทางทราบขนาดวินโดว์ของเครื่องปลายทางสามารถรับรู้ได้
  9. Checksum (16) : เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูลในส่วนหัว  โดยเครื่องส่งจะทำการคำนวณค่า เช็คซัม (Checksum) ของข้อมูลส่วนหัว เมื่อเครื่องปลายทางได้รับข้อมูลก็จะทำการคำนวณเช็คซัมด้วยวิธีเดียวกัน แล้วทำการเปรียบเทียบข้อมูลค่าที่คำนวณได้กับค่าที่อยู่ในฟิลด์นี้ ถ้าเหมือนกันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลที่ได้รับ
  10. Padding : เป็นข้อมูลที่เพิ่มเพื่อให้ข้อมูลส่วนหัวมีจำนวนบิตที่หารด้วย  32  ลงตัว
4  User  Datagram  Protocol  (UDP)
       โปรโตคอล UDP (User  Datagram  Protocol)  จะให้บริการการส่งข้อมูลแบบคอนเน็กชันเลสส์  หรือบางทีก็เรียกว่า “ดาต้าแกรม (Datagram)”  ซึ่งจะเป็นการให้บริการแบบตรงกันข้ามกับคอนเน็กชันโอเรียนเต็ดของโปรโตคอล TCP การส่งข้อมูลแบบนี้จะเป็นแบบที่เชื่อถือไม่ได้  โดยจะพยายามส่งข้อมูลให้ดีที่สุด ในการรับส่งข้อมูลในแต่ละครั้งนั้น จะไม่มีการสร้างเซกชั่นก่อน และไม่มีกลไกการตอบกลับแพ็กเก็ตเหมือนโปรโตคอล TCP เหตุที่ตัดกลไกนี้ออกเพื่อเพิ่มประสิทธิภาพในการส่งข้อมูลนั่นเอง แต่ข้อเสียก็คือ การรับส่งเชื่อถือไม่ได้  เพราะแพ็กเก็ตอาจสูญหายระหว่างทางซึ่งทางฝ่ายส่งจะไม่ทราบเลย  ดังนั้นโปรโตคอลที่อยู่เหนือกว่าต้องรับผิดชอบเกี่ยวกับการตรวจสอบข้อผิดพลาดของการรับส่งข้อมูลเอง
ถึงแม้ว่าโปรโตคอล UDP จะมีความเชื่อถือน้อย แต่มันก็มีข้อดีหลายอย่าง เช่น ถ้าข้อมูลที่ต้องการส่งมีขนาดเล็กมากก็จะเป็นการเสียเวลา  ถ้าต้องสร้างเซกชั่นการเชื่อมต่อระหว่าง 2 โฮสต์นั้นก่อนส่ง และอีกกรณีหนึ่งคือ การส่งข้อมูลแบบแพร่กระจาย หรือบรอดคาสต์ (Broadcast) และมัลติคาสต์(Multicast) การสร้างเซกชั่นจะเป็นสิ่งที่เป็นไปไม่ได้  เนื่องจากเซกชั่นเป็นการเชื่อมต่อระหว่าง 2 โฮสต์เท่านั้น  ดังนั้นการบรอดคาสต์และมัลติคาสต์จะใช้โปรโตคอล UDP เท่านั้น
ข้อมูลในส่วนหัวของโปรโตคอล UDP  ซึ่งในแต่ละฟิลด์มีความหมายดังนี้
  1. UDP  Source  Port  Number (16 บิต): เป็นหมายเลขพอร์ตของเครื่องส่ง เมื่อรวมหมายเลขพอร์ตนี้กับหมายเลข  IP  ก็จะเป็นที่อยู่สำหรับเครื่องรับในการตอบรับข้อความ
  2. UDP  Destination  Port  Number (16 บิต): เป็นหมายเลขพอร์ตของทางฝั่งเครื่องรับที่ใช้ในการส่งผ่านข้อมูลไปยังแอพพลิเคชันที่ต้องการติดต่อด้วย
  3. UDP  Checksum  (16 บิต): เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูล เครื่องทางฝั่งรับจะทำการคำนวณหมายเลขนี้ด้วยวิธีเดียวกัน แล้วเปรียบเทียบกับค่าที่ส่งมา ถ้าหมายเลขเท่ากันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลส่วนหัว
  4. 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  ส่วนคือ
  1. Name  Resolvers : จุดประสงค์หลักของ DNS คือการแปลงชื่อคอมพิวเตอร์ให้เป็นหมายเลขไอพี ในเทอมของ DNS แล้วเครื่องไคลเอนท์ที่ต้องการตอบถามหมายเลขไอพีจะเรียกว่า   “รีโซล์ฟเวอร์ (Resolvers)” ซอฟต์แวร์ที่ทำหน้าที่เป็นรีโซล์ฟเวอร์นั้นจะถูกสร้างขึ้นมากับแอพพลิเคชันหรืออาจจะเป็นไลบรารีที่มีอยู่ในเครื่องไคลเอนท์
  2. Domain  Name  Space : ฐานข้อมูลของระบบ DNS  มีโครงสร้างเป็นต้นไม้ ซึ่งจะเรียกว่า “โดเมนเนมสเปซ (Domain  Name  Space)” แต่ละโดเมนจะมีชื่อและสามารถมีโดเมนย่อย หรือซับโดเมน (Subdomain) การเรียกชื่อจะใช้จุด (.) เป็นตัวแบ่งแยกระหว่างโดเมนหลักและโดเมนย่อย
  3. Name  Servers : เนมเซิร์ฟเวอร์ (Name  Servers) คือเครื่องคอมพิวเตอร์ที่รันโปรแกรมที่จัดการฐานข้อมูลบางส่วนของระบบ DNS เนมเซิร์ฟเวอร์จะตอบกลับการร้องขอ
ทันทีโดยการค้นหาข้อมูลในฐานข้อมูลตัวเอง หรือจะส่งต่อการร้องขอไปยังเนมเซิร์ฟเวอร์อื่น ถ้าเนมเซิร์ฟเวอร์มีเร็คคอร์ดของส่วนของโดเมน แสดงว่าเนมเซิร์ฟเวอร์นั้นเป็นเจ้าของโดเมนนั้น (Authoritative) ถ้าไม่มีก็จะเรียกว่า   Non - Authoritative
  1  Domain
        โครงสร้างของระบบ DNS นั้นจะเป็นแบบมีลำดับชั้น (Hierarchy) ดังรูป
โครงสร้างของระบบ  DNS
 โครงสร้างของระบบ  DNS
  1. Root  Domain : ลำดับสูงสุดของระบบโดเมนคือ รูทโดเมน (Root  Domain) ทุก ๆ โดเมนจะรู อยู่ภายใต้รูทโดเมนหมด  ดังนั้นรูทโดเมนจึงเป็นส่วนที่สำคัญมากของระบบ DNS ในระบบอินเทอร์เน็ตนั้นรูทโดเมนประกอบด้วยเซิร์ฟเวอร์ 7 เครื่อง
  2. Top-Level  Domain : ระดับโดเมนที่รองลงมาจากรูทโดเมนจะเรียกว่า โดเมนระดับหนึ่ง (Top-Level  Domain) โดเมนในระดับนี้จะถูกกำหนดให้โดยประเภทขององค์กรและประเทศโดเมนในระดับนี้จะมีคนแบ่งออกเป็น 3 ส่วนคือ  โดเมนขององค์กร โดเมนของประเทศ และโดเมนการแปลงกลับ
  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)” การมีเครื่องเซิร์ฟเวอร์รองนั้นมีประโยชน์ดังนี้
  1. Redundancy : แต่ละโซนจะต้องมีเนมเซิร์ฟเวอร์หลักหนึ่งเครื่อง และเซิร์ฟเวอร์รองหนึ่งเครื่อง  เซิร์ฟเวอร์รองจะทำหน้าที่แทนเซิร์ฟเวอร์หลักเมื่อเซิร์ฟเวอร์หลัก
  2.  Distribution :เซิร์ฟเวอร์รองควรตั้งอยู่คนละที่กับเนมเซิร์ฟเวอร์หลัก หรือที่ที่มีไคลเอนท์มากพอสมควร  เพื่อเป็นการช่วยลดปริมาณแพ็กเก็ตที่ต้องวิ่งผ่านระบบ WAN เนื่องจากเนมเซิร์ฟเวอร์รองก็ทำหน้าที่เหมือนกับเนมเซิร์ฟเวอร์หลัก
  3. 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
 การทำงานของโปรโตคอล 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
               

โปรโตคอล FTP และ HTTP มีหลายอย่างที่เหมือนกัน เช่น ทั้งสองเป็นโปรโตคอลสำหรับถ่ายโอนไฟล์และนอกจากกนี้ใช้การเชื่อมต่อแบบ TCP เหมือนกัน อย่างไรก็ตามทั้งสองโปรโตคอลมีข้อแตกต่างที่สำคัญคือ โปรโตคอล FTP จะใช้การเชื่อมต่อ TCP ที่ขนานกันสองการเชื่อมต่อ การเชื่อมต่อแรกใช้สำหรับการควบคุมการถ่ายโอนไฟล์ (Control Connection)
                                                                    ส่วนการเชื่อมต่อที่สองจะใช้สำหรับการถ่ายโอนข้อมูลหรือไฟล์ (Data Connection) ช่องการเชื่อมต่อข้อมูลนั้นจะใช้สำหรับการส่งข้อมูล หรือคำสั่งที่ใช้สำหรับควบคุมการถ่ายโอนไฟล์ระหว่างโฮสต์ เช่น  ชื่อล็อกอิน  รหัสผ่าน  คำสั่งสำหรับการเปลี่ยนไดเร็คทอรี  หรือคำสั่งสำหรับการอัพโหลดไฟล์ (put) และคำสั่งสำหรับการดาวน์โหลดไฟล์ (get) เป็นต้น  ส่วนช่องการเชื่อมต่อข้อมูลนั้นก็ใช้สำหรับการถ่ายโอนไฟล์  ส่วนโปรโตคอล HTTP นั้นจะใช้การเชื่อมต่อเดียวสำหรับทั้งรับส่งข้อมูลการควบคุมและไฟล์เว็บเพจ  รูปที่ 2.53 แสดงช่องการเชื่อมต่อของ FTP
ช่องควบคุมและช่องการถ่ายโอนไฟล์ของ  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 ส่วนคือ
  1. อุปกรณ์เครือข่ายที่ต้องการจัดการ (Managed  Devices)
  2. เอเจนต์ (Agents)
  3. ระบบจัดการเครือข่าย (Network  Management  ystems  NMS)
อุปกรณ์เครือข่ายที่ต้องการจัดการ (Managed  Devices)  คืออุปกรณ์เครือข่ายที่ติดตั้งเอเจนต์ SNMP ซึ่งเอเจนต์จะทำหน้าที่รวบรวมและจัดเก็บข้อมูลของอุปกรณ์และรับส่งข้อมูลนี้กับ NMS  โดยใช้โปรโตคอล SNMP อุปกรณ์เครือข่ายที่ต้องการจัดการเช่น เราท์เตอร์, แอ็กเซสเซิร์ฟเวอร์, สวิตซ์, ฮับ, คอมพิวเตอร์ หรือเครื่องพิมพ์  เป็นต้น
เอเจนต์เป็นซอฟต์แวร์ที่ติดตั้งที่อุปกรณ์เครือข่ายที่ต้องการจัดการ ซึ่งซอฟต์แวร์นี้จะจัดการข้อมูลของอุปกรณ์นั้น และแปลงให้สามารถใช้งานได้กับโปรโตคอล NMS เป็นเซิร์ฟเวอร์ที่มอนิเตอร์และควบคุมอุปกรณ์เครือข่ายอีกทีหนึ่ง
2.3.2  คำสั่งพื้นฐานของ  SNMP
อุปกรณ์เครือข่ายจะถูกมอนิเตอร์ควบคุมโดยคำสั่งพื้นฐานดังนี้ 
Read : ใช้โดย NMS เพื่อมอนิเตอร์อุปกรณ์นั้น โดย NMS จะอ่านและตรวจสอบข้อมูลต่าง ๆ ที่อุปกรณ์นั้นเก็บรวบรวมไว้
  1. Write : ใช้โดย NMS เพื่อควบคุมอุปกรณ์นั้น โดย NMS จะเปลี่ยนค่าตัวแปรต่าง ๆ ที่เก็บไว้ที่อุปกรณ์นั้น
        Trap : เป็นข้อมูลที่อุปกรณ์นั้นส่งไปยัง NMS เมื่อมีเหตุการณ์ที่กำหนดเกิดขึ้น
2.4  MIB  (Management  Information  Base)
MIBเป็นฐานข้อมูลที่เก็บรวบรวมข้อมูลที่เกี่ยวกับการจัดการเครือข่าย และมีการเก็บแบบมีลำดับชั้น MIB สามารถแอ็กเซสได้โดยใช้โปรโตคอลจัดการระบบ เช่น SNMP
ฐานข้อมูลจะประกอบด้วยออบเจ็กต์ (Object) ซึ่งแต่ละออบเจ็กต์จะมีหมายเลขประจำ (Object ID) แต่ละออบเจ็กต์จะเป็นค่าหนึ่งที่บอกคุณสมบัติหรือสถานะของอุปกรณ์ที่ถูกจัดการนั้น ๆ แต่ละออบเจ็กต์อาจมีหลายหน่วย (Instance) หรือตัวแปรนั่นเอง
ออบเจ็กต์แบ่งออกเป็น 2 ประเภทคือ สเกลาร์ (Scalar) และเทบูลาร์ (Tabular) ออบเจ็กต์แบบสเกลาร์เป็นค่าเดียว ส่วนออบเจ็กต์แบบเทบูลาร์เป็นออบเจ็กต์ที่มีหลายค่า ซึ่งจะถูกจัดเก็บไว้เป็นตาราง




2 ความคิดเห็น:

  1. แบบฝึกหัด


    แบบฝึกหัด บทที่ 6
    1. ข้อใดคือความหมายของ "จดหมายอิเล็กทรอนิกส์"
    ก. จดหมายที่รับ-ส่งผ่านระบบอิเล็กทรอนิกส์
    ข. จดหมายที่ใช้สื่อสารกันทั่วไปในปัจจุบัน
    ค. จดหมายที่ใช้สื่อสารกันในอินเตอร์เน็ต
    ง. จดหมายที่เขียนขึ้นด้วยคอมพิวเตอร์

    2. จดหมายอิเล็กทรอนิกส์ (E-mail) แบบใดที่นักเรียนใช้อยู่ในปัจจุบัน
    ก. Graph airmail client
    ข. Web base
    ค. IMAP protocol
    ง. POP3

    3. E-mail Address คืออะไร
    ก. ที่อยู่ทางอีเมล์
    ข. ชื่อของผู้ส่งจดหมาย
    ค. ชื่อของผู้รับจดหมาย
    ง. ตู้จดหมาย


    4. นักเรียนจะส่งอีเมล์ได้ ต้องมีอะไรบ้าง
    ก. E-mail Address ของผู้รับ-ผู้ให้บริการ
    ข. E-mail Address ของตนเอง-ผู้ให้บริการ
    ค. E-mail Address ของผู้รับ-ของผู้ส่ง-ผู้ให้บริการ
    ง. E-mail Address ของผู้รับ-ของผู้ส่ง
    5. เมื่อนักเรียนส่งอีเมล์ จดหมายของนักเรียนจะไปอยู่ที่ใด
    ก. เครื่องของผู้รับ
    ข. เครื่องของผู้ส่ง
    ค. เครื่องของผู้ให้บริการ
    ง. เครื่องของผู้รับและเครื่องของผู้ส่ง
    6. เครื่องคอมพิวเตอร์ที่มีหน้าที่คล้ายเจ้าหน้าที่ในที่ทำการไปรษณีย์ ทำหน้าที่รับจดหมายจากเรา
    เพื่อส่งต่อไปให้ผู้รับจดหมายที่เราจ่าหน้าซองไว้ คือข้อใด
    ก. POP3 server
    ข. SMTP
    ค. Protocol
    ง. TCPIP
    7. ข้อใดคือ กล่องหรือที่สำหรับเก็บอีเมล์ ที่มีผู้ส่งเข้ามา
    ก. Inbox
    ข. Outbox
    ค. Subject
    ง. Attach
    8. ข้อใดคือการแนบไฟล์เอกสาร หรือโปรแกรมต่าง
    ไปกับอีเมล์ฉบับนั้น
    ก. Inbox
    ข. Outbox
    ค. Subject
    ง. Attach
    ก. Cc: (Carbon Copy)
    9. ข้อใดหมายถึง การส่งตอบจดหมายกลับไปยังผู้ส่ง
    ข. Bcc: (Blind Carbon Copy)
    ค. Forward
    ง. Reply
    10. ข้อใด เป็นการส่ง mail ให้กับผู้รับหลาย ๆ คน โดยที่ทุกคนทราบว่าจดหมายฉบับนี้ถูกทำสำเนาเพื่อที่จะส่งให้
    ผู้รับหลายคน
    ก. Cc: (Carbon Copy)
    ข. Bcc: (Blind Carbon Copy)
    ค. Forward
    ง. Reply

    ตอบลบ