ชนิดของแพ็กเก็ตที่ส่งแตกต่างกันไปขึ้นอยู่กับการใช้งาน โดยค่าเริ่มต้น Windows tracert
ใช้ ICMP และทั้ง Mac OS X และ Linux traceroute
ใช้ UDP ฉันไม่มีเครื่อง BSD หรือ Solaris หรือระบบปฏิบัติการอื่น ๆ ในมือเพื่อตรวจสอบ แต่หน้า man สำหรับรุ่น Mac OS X ระบุว่าที่มาของมันคือ BSD 4.3
รุ่น Mac และ Linux ฉันมีความสามารถในการเลือกโปรโตคอลที่แตกต่างหลากหลายรวมถึงแพ็คเก็ต ICMP, TCP, UDP และ GRE โปรโตคอลอื่นสามารถระบุได้โดยชื่อหรือหมายเลขของพวกเขา แต่ traceroute ไม่รู้อะไรเกี่ยวกับวิธีการทำงานของโปรโตคอลอื่น ๆ มันส่งพวกเขาแบบสุ่ม ๆ
พวกเขายังสามารถเปลี่ยนเพย์โหลดและพอร์ตต้นทางและปลายทางเพื่อหลีกเลี่ยงไฟร์วอลล์หรือค้นหาว่าเราเตอร์ตัวใดที่อยู่ในพา ธ กำลังวางแพ็กเก็ตที่มีขนาดที่แน่นอน
traceroute ทุกรุ่นขึ้นอยู่กับการตอบสนองของICMP ประเภท 11 (เกินเวลา) จากการกระโดดแต่ละครั้งตามเส้นทาง หากการตอบสนองของ ICMP ประเภท 11 ถูกบล็อกโดยไฟร์วอลล์ของคุณ traceroute จะไม่ทำงาน แพ็คเก็ตเหล่านี้เป็นขาเข้าไม่ใช่ขาออก
ICMP ประเภท 30ได้รับการกำหนดเป็นพิเศษสำหรับ traceroute และมีป้ายกำกับว่า "คำขอข้อมูล" ฉันไม่สามารถค้นหาได้ทุกที่ที่ใช้งานจริง หน้า man สำหรับ Mac OS X และ Linux บอกว่า-I
จะส่งICMP type 8 (คำขอ echo) Wikipedia กล่าวว่า Windows tracert
ใช้ ICMP echo ICMP type 30 หรือ type 8 เป็นแพ็กเก็ตขาออกไม่ใช่ขาเข้า
ICMP type 0 (echo response) อาจกลับมาเป็นแพ็กเก็ตสุดท้ายเมื่อ TTL เท่ากับจำนวนฮ็อพ Traceroute จะรู้ว่ามันเสร็จสิ้นเมื่อได้รับหนึ่งในนั้น นี่คือแพ็คเก็ตขาเข้า
แพ็คเก็ตTCP SYNจะทำให้เกิดRST
แพ็คเก็ตหรือSYN ACK
แพ็คเก็ตในการตอบสนองเมื่อพวกเขามาถึงปลายทางของพวกเขา หากคุณได้รับSYN ACK
แพ็คเก็ตก็จะสุภาพในการติดตามRST
แพ็คเก็ตเพื่อที่จะไม่ปล่อยให้การเชื่อมต่อครึ่งเปิดบนเซิร์ฟเวอร์
เป็นไปได้ที่จะได้รับการตอบกลับICMP ประเภท 3 รหัส 4กลับมาแทนการตอบกลับประเภท ICMP 11 หากคุณส่งแพ็คเก็ตขนาดใหญ่ที่มีการตั้งค่าสถานะ . โดยปกติคุณจะได้รับการตอบกลับแบบนี้จากการกระโดดหนึ่งครั้งตลอดเส้นทาง ไม่ใช่ทั้งหมด.