TCP Three-Way Handshake: เมื่อเหล่านักสืบ Packet อยากจะทักทายกัน

 

เวลาที่เราเปิดหน้าจอสั่งเช็คระบบ SCOM หรือพยายามเชื่อมต่อสคริปต์ PowerShell ไปยัง Exchange Server แล้วระบบมันขึ้น Error ว่า Connection Timeout หรือ Connection Refused เคยสงสัยไหมครับว่าลึกลงไปในสาย LAN หรือคลื่น Wi-Fi มันเกิดอะไรขึ้น?

ในฐานะชาว IT โครงสร้างพื้นฐาน อาวุธลับที่เราต้องเข้าใจคือกระบวนการที่เรียกว่า TCP Three-Way Handshake หรือการ "จับมือสามจังหวะ" ซึ่งมันมีขั้นตอนโรแมนติก (ผสมความระแวง) ดังนี้ครับ:

จังหวะที่ 1: SYN (จะจีบแล้วนะ!)

  • ฝั่งวิชาการ: เครื่องต้นทาง (Client) จะส่ง Packet ที่ตั้งค่า Flag เป็น SYN (Synchronize) ไปหา Server เพื่อบอกว่า "ฉันอยากคุยด้วยนะ และนี่คือเลข Sequence Number เริ่มต้นของฉัน"

  • ฝั่งความฮา: มันเหมือนกับการที่เราเดินเข้าไปหาคนที่แอบชอบแล้วพูดว่า "สวัสดีครับผมชื่อณเดช ขอเบอร์ติดต่อหน่อยได้ไหมครับ?" วินาทีนี้ Client จะนั่งรอตาแป๋วอยู่ในสถานะ SYN-SENT ครับ

จังหวะที่ 2: SYN-ACK (รับแซ่บ และฉันก็อยากคุยด้วย!)

  • ฝั่งวิชาการ: ถ้าพอร์ตของ Server เปิดอยู่ (เช่น พอร์ต 443 สำหรับ HTTPS) Server จะตอบกลับมาด้วย Packet ที่มี Flag เป็น SYN-ACK (Synchronize-Acknowledgment) เพื่อบอกว่า "รับทราบเลขของคุณแล้ว และนี่คือเลข Sequence ของฝั่งฉันบ้าง"

  • ฝั่งความฮา: ฝ่ายตรงข้ามหันมาส่งยิ้มหวานแล้วตอบว่า "อ๋อ ได้ค่ะ! นี่เบอร์ฉันนะคะ แล้วคุณชื่ออะไรนะขออีกที?" วินาทีนี้ Server จะเข้าสู่สถานะ SYN-RECEIVED ทันที

จังหวะที่ 3: ACK (โอเค ดีล! คุยกันเลย)

  • ฝั่งวิชาการ: Client ได้รับคำตอบปุ๊บ ก็จะส่ง Packet สุดท้ายที่มี Flag เป็น ACK กลับไปให้ Server เพื่อยืนยันว่า "ฉันได้รับเลขของเธอแล้วนะ มาเริ่มส่งข้อมูลกันเลย!"

  • ฝั่งความฮา: คุณรีบพยักหน้าแล้วบอกว่า "โอเคครับ เมมเบอร์เรียบร้อย เดี๋ยวทักไลน์ไปนะครับ!" จากนั้นทั้งคู่ก็ขยับสถานะเป็น ESTABLISHED และเริ่มคุยกันยาวๆ ได้เลยครับ!

 [ Client ]                               [ Server ]
     |                                        |
     | ------- SYN (หนูอยากคุยด้วย) ---------> |  (Port Open?)
     |                                        |
     | <------ SYN-ACK (ได้เลย นี่เลขฉัน) ----- |
     |                                        |
     | ------- ACK (รับทราบ! ลุยโลด) --------> |
     |                                        |
 [ ESTABLISHED ]                         [ ESTABLISHED ]

💔 แล้วถ้า 'รักคุด' (Connection Failed) เกิดจากอะไร?

ในชีวิตจริง (และชีวิตระบบ) การจับมือมันไม่ได้สวยงามเสมอไปครับ:

  • เจอสถานะ RST (Reset): เดินเข้าไปทัก SYN แต่ Server สวนกลับมาด้วย RST ทันที! แปลภาษาคนคือ "ไม่คุย! ไปไกลๆ!" ซึ่งมักเกิดจากพอร์ตปิดอยู่ หรือโดน Microsoft Defender บล็อกไว้นั่นเอง

  • เจอความเงียบ (Timeout): ส่ง SYN ไปแล้วเงียบหาย... เหมือนไลน์ไปแล้วขึ้นว่าอ่านแต่ไม่ตอบ ส่วนใหญ่เกิดจากสายหลุด สัญญาณกาก หรือ Firewall คัดกรองทิ้ง (Drop) ไปเฉยๆ ครับ

💡 IT Tips: เช็คลิสต์

ลองตรวจสุขภาพเครื่องมือคู่ใจสัก 2 ข้อครับ:

  1. Wireshark Quick Test: ลองเปิดโปรแกรม Wireshark บนเครื่อง แล้วลอง Filter คำสั่ง tcp.flags.syn == 1 and tcp.flags.ack == 1 ดูครับ คุณจะเห็นเหล่าน้อง Packet กำลังทำท่าจับมือกันเต็มหน้าจอไปหมด ดูแล้วเพลินตาดีแท้!

  2. Clear TCP Stack: ถ้าเครื่องใช้งานมาทั้งสัปดาห์แล้วรู้สึกเน็ตหน่วงๆ พิกล ลองสั่ง Flush DNS และ Reset IP Stack ด้วยคำสั่งอมตะใน CMD (Run as Admin):

    DOS
    netsh int ip reset
    ipconfig /flushdns
    

💡 สรุปส่งท้าย

การเข้าใจพื้นฐานระดับ Network Layer อย่าง TCP Handshake จะช่วยให้เวลาที่คุณไปทำหน้าที่ Consultant สามารถวิเคราะห์ปัญหา "ระบบไม่คุยกัน" ได้อย่างแม่นยำ ไม่ต้องนั่งเดาว่าแอปพังหรือเน็ตล่มครับ


#ITTipsAndTricks #TCPHandshake #Network101 #SystemEngineer #Infrastructure #CyberSecurity #ITAdminLife #Wireshark #NetworkTroubleshooting #BloggerIT

Comments

Popular posts from this blog

Microsoft Sentinel: SIEM บน Azure ที่ IT Admin ไทยควรรู้จักในปี 2026

Azure Active Directory / Entra ID — แนวทางการจัดการ Identity อย่างมืออาชีพสำหรับองค์กรไทย

ปลดล็อกพลัง Microsoft Defender for Endpoint: 5 Tips & Tricks ที่ Admin สายลุยต้องรู้! (ฉบับปี 2026)