วันเสาร์ที่ 19 กันยายน พ.ศ. 2552

วิเคราะห์ Packet ด้วย Wireshark-Part2

  • CALL FLOW
หลังจากเราได้ทำการ Register ไปแล้วต่อมาก็จะทำการทดลองโทรหากัน โดยจะทำการทดลองโทรจากเครื่อง
หมายเลข 2004(192.168.9.4) ไปยัง หมายเลข 2002(192.168.9.5) ซึ่งเราจับ packet ที่วิ่งผ่านไปมาได้ดังรูปด้านล่าง
ซึ่งจาก ที่เราจับ packet มาได้ นำมาเขียน Call Flow ได้ดังรูปด้านล่างตาม RFC 3665
ต่อมาเรามาเริ่มทำการวิเคราะห์ message กันเลยดีกว่า โดยจะอธิบายเป็นขั้นตอนตามจาก message ที่จับมาได้ซึ่งอาจจะมีส่วนที่เพิ่มเติมจากใน Call flow บาง message ดังนี้

STEP1 : Client (2004) จะทำการโทรไปหาเครื่อง Client (2002) โดย Client-2004 จะทำการส่ง Request Message ไปหา Server ซึ่ง โดยจะส่ง INVITE Message ไปหา Server-192.168.9.1 โดยจะส่งพร้อมกับ SDP (Session Description Protocol) ซึ่ง Protocol นี้จะทำการส่ง รายละเอียดของเครื่อง Client ในการติดต่อ เช่น Codec ที่จะใช้งานติดต่อเป็นประเภทใด เช่น Media Type : Audio Protocol ที่ใช้งาน คือ RTP/AVP เป็นต้น

STEP2 : Server จะทำการตอบกลับมาหา client ด้วย Response Message : 407 Proxy Authentication Required ซึ่งจะให้ทาง Client ทำการระบุตัวตนอีกครั้งหนึ่ง

STEP3 : Client จะทำการ ตอบกลับหา Server ด้วย ACK Message

STEP4 : Client จะทำการส่ง Request Message หา Server อีกครั้งนึงโดยส่ง INVITE Message พร้อมทั้ง ระบุ Authentication ลงไปเพื่อยืนยันตัวตน
ใน STEP เดียวกันนี้ทาง Server จะส่ง Request Message : INVITE ไปให้ทาง Client-2002 เมื่อทาง Client-2002 ได้รับ INVITE MESSAGE ก็จะทำการส่ง Response Message : 180 Ringing กลับไปให้ทาง Server เพื่อบอกว่าพร้อมที่จะทำการสนทนากับทาง Client-2004

STEP5 : หลังจาก Server ได้รับ Ringing จากทาง Client-2002 ก็จะทำการ ส่ง Ringing กลับไปให้ทาง Client-2004

STEP6 : ทาง Client-2002 จะทำการส่ง Response Message : 200 OK เพื่อตอบกลับให้เครื่อง client ต้นทางได้รับรู้ว่า การเชื่อมต่อเสร็จสมบูรณ์แล้ว

STEP7 : ก็เป็นส่วนของการสนทนา ที่ใช้ Protocol RTP ในการคุยระหว่างเบอร์ 2004 ไปยัง 2002
ซึ่งในส่วนนี้จะเป็นการคุยกันโดยตรงโดยใช้ RTP Protocol ระหว่างเครื่องต้นทางและปลายทางโดยไม่ผ่าน SERVER

โดยจะขออธิบายในส่วนของ RTP กันนิดนะครับโดย RTP ย่อมาจาก Real Time Protocol เป็น โปรโตคอล ที่ใ่ช้งาน UDP ในการส่ง(ซึ่งสามารถใช้งานบน TCP ก็ได้) เพื่อความรวดเร็วในการส่งข้อมูล โดยโปรโตคอลนี้จะถูกนำมาใ้ช้งานในการส่งข้อมูลประเภทมัลติมีเดีย โดยตัวอย่างของ filed ภายใน Header ของ RTP ที่สำคัญ เช่น version จะระบุ Version ของ RTP โดยจาก ที่ทำการทดลองจะใช้ version : RFC 1889 Version(2) , จะระบุถึง Payload Type : คือ จะระบุชนิดของ format payload ใน RTP โดยจากการทดลองจะ เป็น ITU-T G.711 PCMU เป็นต้น

STEP8 : เมื่อการสนทนาสิ้นสุด ทางปลายทางจะส่ง Request Message : BYE ไปหา เครื่อง 2004 เพื่อบอกว่าจะทำการวางสายเพื่อสิ้นสุดการสนทนา (ถ้าต้นทางเป็นคนวางสาย ต้นทางจะเป็นผู้ส่ง BYE ไปหาปลายทาง)

STEP9 : เมื่อทาง Client เบอร์ 2004 ได้รับ BYE Message ก็จะทำการตอบกลับไปหา Client-2002 ด้วย Response Message : 200 OK