เลือกใช้พรอกซี่ (Proxy) แบบไหนดี ?


อัปเดท : 7 มิถุนายน พ.ศ.2547 , แสดง : 25,850 , ความคิดเห็น : 6

Proxy ทำงานในระดับแอปปลิเคชั่นโปรโตคอล มีหลายแบบแบ่งตามโปรโตคอลที่ใช้ เช่น FTP Proxy,Gopher Proxy HTTP Proxy(Web Proxy) โดยที่ Web Proxy เป็น Proxy ที่พบเห็นหรือมีการใช้งานอย่างแพร่หลาย เพราะทำให้การท่องเวบทำได้รวดเร็วยิ่งขึ้น โดย Web Proxy จะทำหน้าที่คล้ายนายหน้า (Broker) ที่ทำงานแทนเรา

ขั้นตอนการทำงานโดยทั่วไปของ Proxy

Step 1 Client ร้องขอข้อมูล(Request)ไปที่ Proxy Server
Step 2 Proxy Server ได้รับข้อมูลมันจะทำตัวเสมือนเป็น Proxy Client เพื่อไปร้องขอข้อมูลต่อที่ Server จริงๆ อีกที
Step 3 Server ก็จะส่งข้อมูลกลับ (Reply) มาที่ Proxy Client ซึ่งมันเข้าใจว่าเป็น Client จริงๆ
Step 4 เมื่อ Proxy Client ได้รับข้อมูลจาก Server มันจะทำหน้าที่เป็น Proxy Server อีกครั้งแล้วจึงส่งข้อมูลทีรับมาไปที่ Client จริงๆ และที่สำคัญ Proxy Server จะทำการเก็บข้อมูลนั้นๆ (Cache) เอาไว้ด้วย

เพราะ Cache นี้เอง เมื่อมีการร้องขอข้อมูลนั้นอีกครั้ง Proxy Server ก็ไม่ต้องร้องขอข้อมูลต่อที่ Server จริงๆ โดยมันจะเอาข้อมูลที่มันทำการเก็บ (Cache) ไว้ส่งต่อให้ Client ได้เลย ทำให้ Client ได้รับข้อมูลรวดเร็ว อย่างไรก็ตามในกรณีที่ข้อมูลมีการ Update ซึ่งอาจทำให้ข้อมูลใน Cache ที่ Proxy Server ส่งให้ Client อาจเป็นข้อมูลเก่า ดังนั้น Proxy Server จึงต้องมีกลไกตรวจสอบว่าข้อมูล update เช่นตรวจสอบวันเวลาหรือ ตั้งอายุการใช้งานข้อมูลของ Cache ไว้เพื่อให้ข้อมูลที่มันให้บริการถูกต้อง และ Update ที่สุด

ประโยชน์อีกอย่างของ Proxy ซึ่งนำมาใช้ในเครือข่าย Local Area Network(LAN) ก็คือประหยัด Bandwidth หรืออัตตราการถ่ายโอนข้อมูลออกไปภายนอก และ ประหยัดค่าใช้จ่ายในส่วนของ Link กล่าวคือข้อมูลไหนที่มีการใช้บ่อยหรือมีการใช้แล้ว ก็จะอยู่ใน Proxy Server (Cache ของ Proxy Server ) ซึ่งอยู่ภายในเครือข่าย การร้องขอข้อมูลซ้ำจะเกิดการ Reuse ข้อมูล

โดยปรกติ การต่อตรงระหว่าง Client-Server เพื่อสื่อสารข้อมูลที่ไม่ได้ผ่าน Proxy ข้อมูล(Header) ที่ฝั่ง Server เห็น(ได้รับ) จะเป็นดังนี้ ซึ่งข้อมูลที่เห็น Server มันรู้ว่ากำลังติดต่อกับใครอยู่

REMOTE_ADDR 202.183.45.1 IP Address ของ Client
REMOTE_PORT 11247 Port Number ของ Client

การแบ่งประเภทของพร๊อกซี่ ตามลักษณะการทำงาน โดยจะเน้นข้อมูลที่ Server เห็น(ได้รับ) ได้ดังนี้

1. Transparent Proxy :
Transparent Proxy จะมีการส่งค่า IP Address ของเครื่องที่ทำการร้องขอ(Client)ข้อมูล ดังนั้น Server ก็จะเห็น IP Address ของ Client ด้วย  ดังนั้น Server มันก็จะรู้ว่ากำลังติดต่อกับ Proxy ตัวใด และมันรู้ด้วยว่า Proxy จะส่งต่อข้อมูลไปให้ Client ตัวไหน

REMOTE_ADDR 202.183.45.254 IP Address ของ Proxy
REMOTE_PORT 12345 Port Number ของ Proxy Server
HTTP_VIA proxy.NextProject.net ชื่อ Proxy Server
HTTP_X_FORWARDED_FOR 192.168.0.1 IP Address ของ Client

2. Anonymous Proxy :
Anonymous Proxy จะส่ง Header เฉพาะ HTTP_VIA และ REMOTE_ADDR เท่านั้น และ Proxy Server จะไม่ส่ง HTTP_X_FORWARDED_FOR ไปด้วย ดังนั้น Server มันก็จะรู้ว่า มันกำลังติดต่อกับ Proxy แต่มันไม่รู้ว่า Proxy เอาข้อมูลนั้นๆไปทำอะไรหรือให้ใครต่อ

REMOTE_ADDR 202.183.45.254 IP Address ของ Proxy
REMOTE_PORT 12345 Port Number ของ Proxy Server
HTTP_VIA proxy.NextProject.net ชื่อ Proxy Server

3. High Anomity Proxy :
High Anomity Proxy จะส่ง Header แค่ REMOTE_ADDR เท่านั้น ซึ่งเป็นของ Proxy Server ดังนั้น Server จะไม่รู้เลยว่า ข้อมูลถูกส่งหรือมาจากที่ใด เพราะมันจะเห็น Proxy Server เสมือนว่าเป็น Client ธรรมดาตัวนึงเท่านั้น

REMOTE_ADDR 202.183.45.254 IP Address ของ Proxy
REMOTE_PORT 12345 Port Number ของ Proxy Server

ครับสำหรับ Proxy ก็จบแค่นี้ก่อนครับ

*** Port Number ที่ Client กำหนด(Random)ขึ้นมา เนื่องจากค่า Port ใน Header ของ IPV4 มี 16 Bit Port Number มีค่าระหว่าง 0 - 65535 แต่ ค่า 0-1023 ถูกสงวนไว้เพื่อให้ Default Port (80:HTTP,25:SMTP,23:DNS เป็นต้น ) ดังนั้น Port Number จริง ๆที่ Client กำหนด(Random) จะมีค่าระหว่าง 1024-65535 ครับ


ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง

ระบบเครือข่ายและความมั่นคง

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ

  • ส่งเสริม สุทัศนะพานนท์ [14 Jul 2005 , 02:54 PM]

    เรียนคุณจักรกฤษณ์ หากผมต้องการข้อมูลเพิ่มเติมเกี่ยวกับ proxy ผมจะหาข้อมูลได้จาก web หรือ link ไหนบ้างครับ อยากได้เกี่ยวกับบทความที่คุณพูดที่มีรายละเอียดมากกว่านี้ครับ

  • จักรกฤษณ์ [22 Jul 2005 , 12:25 AM]

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

  • สมยศ [23 Sep 2005 , 11:48 AM]

    ผมก็ต้องการรู้เพิ่มเติมอีกครับ และอยากจะถามอีกนิดว่า Proxy ชอบจำค่าเดิมมันไม่ยอมอัพเดท จะแก่อย่างไร ใช้ wingate ครับมี

  • จักรกฤษณ์ [23 ธ.ค. 2548 , 10:08 AM]

    ตอบคุณ สมยศ ครับ แก้ไขเบื้องต้น ได้โดยการกดปุ่ม Ctrl พร้อม ๆ กับการใช้เมาส์คลิกที่ปุ่ม Refresh หรือ F5 จะเป็นการร้องขอ ข้อมูลตรง ๆไปยัง ปลายทางจริง ๆ ครับ

  • กิตติชัย [18 เม.ย. 2549 , 02:14 PM]

    ตอนนี้ผมใช้ redhat 9 เป็น proxy server โดยใช้ squid อยู่ครับ แต่ใช้ ftp ไม่ได้ จะต้อง set อะไรเพิ่มบ้างครับ

  • กล้า [08 ก.ค. 2549 , 12:06 PM]

    ตอนนี้ผมต้องเขียน Web Proxy Server เนื่องจากเป็น Assignment ที่ได้รับจากอาจารย์ อยากรบกวนสอบถาม เนื่องจากตอนนี้ผมต้องการแหล่งข้อมูลเกี่ยวกับการเขียนโปรแกรม , Concept ซึ่งผมยังไม่มีประสบการณ์ในการเขียนโปรแกรมในด้านนี้ ซึ่งอาจารย์มีการกำหนดภาษาที่ใช้ในการพัฒนา Java , C++ , C# พอมีตัวอย่าง Code ในการพัฒนาบ้างมั้ยครับ ^^