วันพฤหัสบดีที่ 8 เมษายน พ.ศ. 2553

ICP Squid

ICP คืออะไร
ICP (Internet Cache Protocol) เป็นโปรโตคอลที่ใช้สำหรับการสื่อสารระหว่าง web caches เป็น lightweight protocol ที่อยู่ในส่วนบนของ UDP โดย ICP จะถูกใช้เพื่อหาตำแหน่งของ web object ใน cache ที่อยู่ข้างเคียง (neighboring caches) การถ่ายโอน object ระหว่าง cache ส่วนใหญ่จะทำด้วย TCP-based HTTP protocol แต่การตัดสินว่าจะดึง object จากที่ไหนนั้นต้องใช้วิธีการที่ง่ายและรวดเร็ว

ใน
cache หนึ่ง ๆ การหาตำแหน่งที่ดีที่สุดที่จะดาวน์โหลด object ตัว cache จะส่ง ICP request packet ไปยัง sibling cache และ parent cache ทุกตัว แล้ว cache เหล่านี้ก็จะ ส่ง ICP ตอบกลับมาด้วย HIT code หรือ MISS code ซึ่ง HIT หมายถึง cache ตัวนี้มี object และตกลงที่จะให้บริการ ส่วน MISS หมายถึงไม่มี object ที่ต้องการ ดังนั้น cache ตัวที่เป็นผู้ร้องขอก็จะรูว่าใครมี object ที่ตัวเองต้องการและมันจะเอาข้อมูลนี้รวมกับตัวประกอบอื่น ๆ เช่น round-trip time หรือการตอบสนองในแต่ละครั้ง เพื่อที่จะเลือกได้ว่าจะร้องขอผ่าน HTTP ไปยัง cache ตัวไหน ถ้า cache ตอบกลับมาเป็น MISS packet ตัว cache ที่เป็นผู้ร้องขอก็จะทำการร้องขอ document จาก parent cache กระบวนการร้องขอและตอบกลับ ICP (ICP request/reply exchange) ควรจะเกิดขึ้นในช่วงสั้น ๆ มิฉะนั้นจะทำให้เพิ่มเวลาแฝง (latency time) ให้กับ browser
แต่เวลาตรงนี้ผู้ใช้มักจะไม่สามารถสังเกตได้

ถ้า
object ที่ได้ร้องขอผ่าน ICP มีขนาดเล็กเพียงพอ object นี้ก็สามารถถูกรวมอยู่ใน ICP HIT reply เหมือนกับ HTTP redirect แต่การทำแบบนี้ไม่ค่อยมีกันมากนัก การใช้งาน ICP ที่กล่าวมานี้จะใช้เมื่อระบบเครือข่ายเป็นแบบ multi-level cache ที่ประกอบด้วย sibling cache และ parent cache เท่านั้น ซึ่งการใช้งาน ICP ไม่มีความจำเป็นสำหรับเครือข่ายในรูปที่ 1 และ 2 ในกรณีที่มี cache เพียงตัวเดียวหรือในกรณีที่ cache มีการร้องขอ document จาก higher-lever cache ที่เหมือนกัน สิ่งที่ ICP ไม่ต้องการก็เฉพาะ overhead
เท่านั้น