วันจันทร์ที่ 30 พฤศจิกายน พ.ศ. 2552

มารู้จักกับค่า TTL (Time-to-Live)

ค่า TTL (Time To Live) นั้น เป็นค่าที่ใช้แสดงจำนวนฮ๊อป(Hop) ที่แพ็กเก็ตนั้นวิ่งผ่านในระบบ ว่าจะสามารถวิ่งผ่านได้ไม่เกินกี่ฮ๊อป ซึ่งถ้าจะพูดง่ายๆ ก็คือ มันจะวิ่งผ่านเร้าเตอร์ได้สูงสุดจำนวนกี่ตัว มันจะมีประโยชน์มากในการป้องกันลูปไม่ให้เกิดขึ้น หรือเกิดขึ้ีนเพียงชั่วขณะเท่านั้น

โดยที่ ในการส่งแต่ละครั้ง ถ้าหากผ่านเร้าเตอร์จำนวน 1 ตัว ค่า TTL จะลดลงครั้งละ 1 ซึ่งจะเป็นเช่นนี้ไปเรื่อยๆ เมื่อมีการผ่านอุปกรณ์ใน Layer3 จนกระทั่งถ้าหากค่า TTL นี้เป็น 0 Router ก็จะดรอปแพ็กเก็ตนั้นทิ้ง จากนั้นจะส่งข้อความ ICMP บอก Error ไปยังต้นทางที่ทำการส่งว่า Time-to-Live exceed (type 8 code 0) ซึ่งหมายความว่า ค่า TTL ได้เป็น 0 แล้ว

ซึ่งค่า TTL นี้ในการการเซ็ตเริ่มต้นก่อนทำการส่งจะแตกต่างกันแล้วแต่ระบบปฎิบัติการ (OS) ได้แก่

ค่า TTL เริ่มต้นจะเท่ากับ 128 สำหรับ OS ของ Microsoft Window

ค่า TTL เ้ริ่มต้นจะเท่ากับ 64 สำหรับ OS ของ Unix

ค่า TTL เริ่่มต้นจะเท่ากับ 255 สำหรับ อุปกรณ์เร้าเตอร์ *แต่ทั้งนี้ขึ้นอยู่กับการเซ็ตค่าของแต่ละอุปกรณ์ด้วย

เช่นถ้าหากเราทำการเล่น web ผ่าน http ไปยังเว็บ google ซึ่งเครื่องเราใช้ MS XP ทาง TCP/IP Stack จะทำการตั้งค่า TTL เป็น 128 โดยอัตโนมัติไปหาปลายทาง ซึ่งเมื่อไปยัง web server ของ google ก็จะตอบกลับเริ่มต้นที่ TTL มีค่าเป็น 64 จนมาถึงต้นทางที่ทำการร้องขอ

ทั้งนี้ทั้งนั้นอาจจะผ่าน proxy หรือ server คนละตัวกันได้ อาจทำให้ค่า TTL ที่ได้ต่างกัน

เช่น ถ้าเรา ping google.com >> TTL เริ่มต้นจะเท่ากับ 64

ถ้าเรา ping www.google.com >> TTL เริ่มต้นจะเท่ากับ 255

จากการที่ค่า TTL ทำการลดค่าลงทีละ 1 จะสามารถป้องกันแพ็กเก็ตอยู่ในระบบเป็นเวลานานได้ (loop)

นอกจากนี้ค่า TTL ยังมีส่วนเกี่ยวข้องกับโปรแกรมอื่นๆ ด้วย อาทิเช่น ping , trace route เป็นต้น

การ ping (Packet INternet Group) ค่า TTL จะลดลงครั้งละ 1 จากเริ่มต้น

การ trace route ค่า TTL จะเริ่มต้นที่ 0 แล้วเพิ่มครั้งละ 1 เพื่อหาจำนวน Hop จากต้นทางไปยังปลายทาง

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

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