วันพุธที่ 18 กันยายน พ.ศ. 2556

หลักการทำงานและประโยชน์ของFile Tranfer Protocol(FTP)

หลักการทำงานของFile Tranfer Protocol(FTP)


Ftp ทำงานในแบบไคลเอนต์เซิร์ฟเวอร์ โดยพัฒนาขึ้นตามโปรโตคอลพื้นฐาน TCP ซึ่งจะต้องมีการติดต่อเพื่อจองช่องสื่อสาร (Connection Establishment) ก่อนทำการสื่อสารจริง ซึ่งเรียกว่าเป็นการติดต่อแบบที่ต้องขอเชื่อมต่อก่อน (Connection – Oriented) ในการใช้งาน FTP เพื่อเริ่มการติดต่อสื่อสารนั้น จะต้องระบุหมายเลข IP ปลายทาง และต้องผ่านการแจ้งรหัส Login และ Password ของเซิร์ฟเวอร์ที่จะติดต่อก่อนจึงจะเข้าใช้งานได้
ข้อมูลของ FTP ที่สื่อสารระหว่างกันมี 2 ประเภทคือ
  • ข้อมูล(Data) หมายถึงข้อมูลต่างๆที่ต้องการรับส่ง รวมทั้งไฟล์ที่รับมาจากเซิร์ฟเวอร์ หรือส่งมาจาก ไคลเอนต์แล้วไปเก็บที่เซิร์ฟเวอร์
  • ข้อมูลคำสั่ง (Command) FTP จะมีคำสั่งที่ใช้สั่งงานต่างๆ เช่น dir เป็นคำสั่งที่ใช้แสดงชื่อไฟล์หรือไดเรคทอรีในเครื่องเซิร์ฟเวอร์ หรือ get ใช้โหลดไฟล์มาที่เครื่องไคลเอนต์ผ่านโปรแกรม FTP แล้วโปรแกรมจะส่งคำสั่งไปยังเซิร์ฟเวอร์เพื่อทำงาน และแจ้งผลการทำงานกลับมายังไคลเอนต์ ซึ่งผลการทำงานนี้จะนำหน้าด้วยตัวเลข 3 หลัก เป็นรหัสที่ใช้แสดงสถานะการทำงานภายในของ FTP และต่อด้วยข้อความที่เป็นเท็กซ์ต่อท้าย ซึ่งก็คือผลการทำงานหรือคำอธิบายต่างๆ โดยที่ FTP มีกระบวนการภายในที่จะตรวจสอบได้ว่าข้อมูลที่จะรับส่งนี้เป็นประเภทคำสั่งไม่ใช่ตัวข้อมูลที่ต้องการจะโอนย้าย
  • การที่ FTP สามารถแยกแยะข้อมูลจริงออกจากข้อมูลที่เป็นคำสั่งได้นั้น ถือว่าเป็นหน้าที่การทำงานของโมดูลใน FTP ที่เรียกว่าโปรโตคอล (Protocol Interpreter Module หรือ PI) ซึ่งทำหน้าที่รองรับการทำงานคำสั่งต่างๆของ FTP และในส่วนของข้อมูลที่รับส่งนั้นจะเป็นหน้าที่ของโมดูลโอนข้อมูล (Data Transfer หรือ DT) ซึ่งโมดูลทั้งสองนี้จะต้องทำงานอยู่ทั้งในเครื่องที่เป็นเซิร์ฟเวอร์ และไคลเอ็นต์
    packet_ftp1.jpg
    รูปการทำงานของ Protocal FTP
    จากรูปแสดงถึงองค์ประกอบและกลไกการทำงานของโปรโตคอล FTP จะเริ่มจากผู้ใช้ (USER) เรียกใช้โปรแกรมผ่าน User Interface และ เมื่อเป็นโปรแกรม FTP พร้อมใช้งานแล้ว ถ้ามีการใช้คำสั่งต่างๆของFTPจะเป็นหน้าที่ของ PI (Protocol Interpreter module) ทำหน้าที่แปลคำสั่งและทำงานตามคำสั่ง ในกรณีที่มีการส่งรับข้อมูลก็จะเป็นหน้าที่ของ DT (Data Transfer module) ซึ่งโมดูล PI และDTนี้จะอยู่ทั้งด้านของไคลเอนต์และเซิร์ฟเวอร์
    ประเภทของการล็อกอินในบริการ FTP
      ล็อกอินด้วยผู้ใช้ที่มีอยู่ในระบบ (Real FTP) ผู้ใช้บริการจะต้องมีบัญชีผู้ใช้อยู่จริงบนเซิร์ฟเวอร์ สามารถเปลี่ยนไดเร็คทอรี่ไปที่อื่นได้
      ล็อกอินด้วยผู้ใช้ที่มีอยู่ในระบบแต่จำกัดขอบเขต (Guest FTP) คล้ายกับ Real FTP ต่างตรงที่ ไม่สามารถเปลี่ยนไดเร็คทอรีไปไหนได้เกินขอบเขตที่เซิร์ฟเวอร์กำหนด
      ล็อกอินด้วยผู้ใช้ที่ไม่มีอยู่ระบบ (Anonymous FTP) การบริการ FTP แบบที่เปิดเสรีให้คนทั่วโลกมาใช้บริการ คงเป็นไปไม่ได้ที่จะมานั่งสร้างบัญชีผู้ใช้ให้รอบรับคนทั่วโลก แบบนี้จึงกำหนดให้ล็อกอินโดยใช้ชื่อ anonymous ส่วนรหัสผ่าน E-Mail Address
    การสร้างส่วนเชื่อมโยงข้อมูล
    1. FTP ใช้ port TCP 21 ในการส่งผ่านคำสั่งควบคุมและใช้พอร์ต TCP 20 ส่งข้อมูล
    packet_ftp2.jpg
    2. สมมุติพอร์ตประจำส่วนเชื่อมโยงควบคุมของ Client คือ 1124 และเตรียมพอร์ต 125 รอไว้สำหรับส่วนเชื่อมโยงข้อมูล
    packet_ftp3.jpg
    3. Client จะขอเปิดส่วนเชื่อมโยงข้อมูลตามตำแหน่ง (1) โดยส่งรหัสคำสั่ง Port ตามด้วย IP Address (158.108.33.1) และหมายเลขพอร์ต 4, 101 ซึ่งแสดงถึงพอร์ต 1125 (เลขพอร์ตเป็นรหัส 16 บิต สองชุดติดกัน ดังนั้นตัวเลข 4, 101 คือ 4 * 256 + 101 = 1125)
    4.ต่อจากนั้น Server จะส่ง TCP จากพอร์ต 20 ไปยัง client ที่พอร์ต 1125 ตามตำแหน่งที่ 2
    Format FTP Header
    packet_ftp4.jpg
    มีรายละเอียด ดังนี้
  • Source Port Number : หมายเลขพอร์ตต้นทางที่ส่งดาต้าแกรมนี้
  • Destination Port Number : หมายเลขพอร์ตปลายทางที่จะเป็นผู้รับดาต้าแกรม
  • Sequence Number : ฟิลด์ที่ระบุหมายเลขลำดับอ้างอิงในการสื่อสารข้อมูลแต่ละครั้ง เพื่อใช้ในการแยกแยะว่าเป็นข้อมูลของชุดใด และนำมาจัดลำดับได้ถูกต้อง
  • Acknowledgment Number : ทำหน้าที่เช่นเดียวกับ Sequence Number แต่จะใช้ในการตอบรับ
  • Header Length : โดยปกติความยาวของเฮดเดอร์ TCP จะมีความยาว 20 ไบต์ แต่อาจจะมากกว่านั้น ถ้ามีข้อมูลในฟิลด์ option แต่ต้องไม่เกิน 60 ไบต์
  • Flag : เป็นข้อมูลระดับบิตที่อยู่ในเฮดเดอร์ TCP โดยใช้เป็นตัวบอกคุณสมบัติของแพ็กเก็ต TCP ขณะนั้นๆ และใช้เป็นตัวควบคุมจังหวะการรับส่งข้อมูลด้วย ซึ่ง Flag มีอยู่ทั้งหมด 6 บิต แบ่งได้ดังนี้
  • packet_ftp5.jpg
    packet_ftp6.jpg
    รูป IP Header
    เฮดเดอร์ของ IP โดยปกติจะมีขนาด 20 bytes ยกเว้นในกรณีที่มีการเพิ่ม option บางอย่าง ฟิลด์ ของเฮดเดอร์ IP จะมีความหมายดังนี้
  • Version : หมายเลขเวอร์ชันของโปรโตคอล ที่ใช้งานในปัจจุบันคือ เวอร์ชัน 4 (IPv4) และเวอร์ชัน 6 (IPv6)
  • Header Length : ความยาวของเฮดเดอร์ โดยทั่วไปถ้าไม่มีส่วน option จะมีค่าเป็น 5 (5*32 bit)
  • Type of Service (TOS) : ใช้เป็นข้อมูลสำหรับเราเตอร์ในการตัดสินใจเลือกการเราต์ข้อมูลในแต่ละดาต้าแกรม แต่ในปัจจุบันไม่ได้มีการนำไปใช้งานแล้ว
  • Length : ความยาวทั้งหมดเป็นจำนวนไบต์ของดาต้าแกรม ซึ่งด้วยขนาด 16 บิตของฟิลด์ จะหมายถึงความยาวสูงสุดของดาต้าแกรม คือ 65535 byte (64k) แต่ในการส่งข้อมูลจริง ข้อมูลจะถูกแยกเป็นส่วนๆตามขนาดของ MTU ที่กำหนดในลิงค์เลเยอร์ และนำมารวมกันอีกครั้งเมื่อส่งถึงปลายทาง แอพพลิเคชั่นส่วนใหญ่จะมีขนาดของดาต้าแกรมไม่เกิน 512 byte
  • Identification : เป็นหมายเลขของดาต้าแกรมในกรณีที่มีการแยกดาต้าแกรมเมื่อข้อมูลส่งถึงปลายทางจะนำข้อมูลที่มี identification เดียวกันมารวมกัน
  • Flag : ใช้ในกรณีที่มีการแยกดาต้าแกรม
  • Fragment offset : ใช้ในการกำหนดตำแหน่งข้อมูลในดาต้าแกรมที่มีการแยกส่วน เพื่อให้สามารถนำกลับมาเรียงต่อกันได้อย่างถูกต้อง
  • Time to live (TTL) : กำหนดจำนวนครั้งที่มากที่สุดที่ดาต้าแกรมจะถูกส่งระหว่าง hop (การส่งผ่านข้อมูลระหว่างเน็ตเวิร์ค) เพื่อป้องกันไม่ให้เกิดการส่งข้อมูลโดยไม่สิ้นสุด โดยเมื่อข้อมูลถูกส่งไป 1 hop จะทำการลดค่า TTL ลง 1 เมื่อค่าของ TTL เป็น 0 และข้อมูลยังไม่ถึงปลายทาง ข้อมูลนั้นจะถูกยกเลิก และเราเตอร์สุดท้ายจะส่งข้อมูล ICMP แจ้งกลับมายังต้นทางว่าเกิด time out ในระหว่างการส่งข้อมูล
  • Protocol : ระบุโปรโตคอลที่ส่งในดาต้าแกรม เช่น TCP ,UDP หรือ ICMP
  • Header checksum : ใช้ในการตรวจสอบความถูกต้องของข้อมูลในเฮดเดอร์
  • Source IP address : หมายเลข IP ของผู้ส่งข้อมูล
  • Destination IP address : หมายเลข IP ของผู้รับข้อมูล
  • Data : ข้อมูลจากโปรโตคอลระดับบน
  • การดักจับ Packet ของ Protocal FTP ด้วย Network Spy 2.0
    1. เริ่มการใช้งานโปรแกรม Network Spy 2.0
    packet_ftp7.jpg
    2. ทำการเลือก Network Card ที่ต้องการตรวจจับ Package
    packet_ftp8.jpg
    3. เริ่มต้นตรวจจับโดยกดปุ่ม Play
    packet_ftp9.jpg
    4. เรียกใช้งาน FTP โดยใช้ Command ดังนี้
    packet_ftp10.jpg
    โดยมีหลักการทำงานดังนี้
    1. เรียกใช้งาน Ftp ไปยัง Server ซึ่งมีหมายเลข IP-Address 192.168.0.2
    2. Server ตอบรับบริการ โดยให้ Client ป้อน Username
    3. Client ป้อน Username
    4. Server ตอบรับและให้ Client ป้อน รหัสผ่าน
    5. Client ป้อน รหัสผ่าน
    6. Server แสดงถึงการ login เสร็จสมบูรณ์
    7. Client ร้องขอไฟล์จาก Server
    8. Server ส่งไฟล์ตามที่ร้องขอมายัง client
    9. Client ขอจบการเชื่อมต่อ
    5. หน้าจอของโปรแกรม Network Spy 2.0 จะแสดง Package ที่ตรวจจับได้ดังนี้
    packet_ftp11.jpg
    ซึ่งสามารถแสดงรายละเอียดได้ดังนี้
    1. จากการตรวจจับ 3 บรรทัดแรก เป็นเรียกใช้งาน Ftp ไปยัง Server ซึ่งมีหมายเลข IP-Address 192.168.0.2
    packet_ftp12.jpg
    1.Client ร้องขอบริการไปยัง Server โดยส่ง Package มีรายละเอียดดังนี้
    packet_ftp13.jpg
    โปรแกรมตัวอื่นเช่น Blue Shark หรือ Etherial มีความสามารถและลูกเล่นมากกว่านี้นะครับ
    แต่ Network Spy 2.0 นี้เป็นรุ่นทดลองใช้ครับ …
    ตัวเล็ก แต่ความสามารถค่อนข้างสูง และก็ใช้งานได้ดีครับ

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


    ไม่มีความคิดเห็น:

    แสดงความคิดเห็น