การจับแพ็คเก็จของเครือข่าย

ในตัวอย่างด้านล่างเราจะใช้ tcpdump ในการดูข้อมูลที่ถูกส่งผ่านเครือข่ายของแอปพลิเคชั่น workerman-chat ผ่าน websocket โดยแอปพลิเคชั่น workerman-chat มีเซิร์ฟเวอร์ที่ให้บริการ websocket ที่พอร์ต 7272 ดังนั้นเราจะจับแพ็คเกจที่ถูกส่งผ่านพอร์ต 7272

  1. ให้ใช้คำสั่ง tcpdump -Ans 4096 -iany port 7272

  2. นำ URL นี้ไปวางในแถบที่อยู่ของเบราว์เซอร์ http://127.0.0.1:55151

  3. ป้อนชื่อเล่นว่า mynick

  4. ในช่องข้อความพิมพ์ hi, all !

ข้อมูลที่ถูกจับแพ็คเกจสุดท้ายคือ:

/*
 * การ handshake TCP ครั้งที่ 1
 * พอร์ตด้านบนของเครื่องนี้ 60653 ส่งสัญญาณ SYN ไปยังพอร์ต 7272 ที่เครื่องนี้
 */
17:50:00.523910 IP 127.0.0.1.60653 > 127.0.0.1.7272: Flags [S], seq 3524290970, win 32768, options [mss 16396,sackOK,TS val 28679666 ecr 28679554,nop,wscale 7], length 0
E..<.h@.@.HQ...........h..i..........0....@....
............

...
(เนื้อหาส่วนอื่น ๆ ของแพ็คเกจที่ถูกจับ หลายบรรทัด)
...

หมายเหตุ:

  • การได้รับข้อมูลบนพอร์ต 7272 แทนโดยสัญญาณ [S] (การเริ่มต้นของการเชื่อมต่อ)
  • การโต้ตอบด้วยสัญญาณ [.] หมายความว่าได้รับคำขอจากฝั่งตรงข้ามแล้ว
  • การส่งข้อมูลถือเป็นสัญญาณ [P]
  • [P.] หมายถึง[P]+[.]

หากข้อมูลที่ถูกส่งผ่านพอร์ตเป็นข้อมูลไบนารี สามารถใช้รหัสสิบหกกำหนดเพื่อแสดง tcpdump -XAns 4096 -iany port 7272