วันอังคารที่ 13 สิงหาคม พ.ศ. 2556

ตั้งเวลาคอมพิวเตอร์ให้ตรงกับ Server

โปรแกรมตัวนี้ผมเขียนด้วย VB2010 โดยรับค่าวันที่และเวลาจาก time.navy.mi.th ติดต่อโดยใช้ Daytime Protocol โดย Protocol ตัวนี้ทำงานบน TCP พอร์ต 13 หลักการของ Protocol นี้ไม่ซับซ้อนครับ โดยมีลำดับขั้นตอนดังรูปที่ 1

รูปที่ 1 ลำดับการทำงานของ Daytime Protocol
จากรูปที่ 1 เป็นรายละเอียดที่ได้จากโปรแกรม Wireshark จะเห็นได้ว่าที่

  1. Packet ลำดับที่ 190 ตัว Client ซึ่งก็คือเครื่องของเราได้ทำการส่งคำขอ syn กับ Server 
  2. Packet ลำดับที่ 192 คือการตัวกลับจาก Server ด้วยการ syn และ ack
  3. Packet ลำดับที่ 193 ตัว Client ทำการ ack กลับ เป็นการเสร็จขั้นตอนในการทำ 3-way handshake ของ TCP
  4. Packet ลำดับที่ 198 ตัว Server ส่งข้อมูลวันที่ให้กับ Client 
  5. Packet ลำดับที่เหลือเป็นการบอกหยุดการติดตอระหว่าง Client และ Server
ในส่วนของข้อมูลที่ส่งใน Protocol จะเป็นวันที่และเวลาที่ส่งมาในรูปแบบข้อความธรรมดา สามารถนำไปแสดงผลได้ในทันที

รูปที่ 2 ข้อมูลวันที่และเวลาที่มาจาก Server
ในส่วนของโปรแกรมที่เขียนขึ้นมามีหน้าตาดังรูปที่ 3

รูปที่ 3 หน้าตาของโปรแกรมทดสอบ

ตัวโปรแกรมมีสองฟังก์ชันการทำงานคือ

  1. อ่านค่าเวลาจาก Server
  2. อ่านค่าเวลาจาก Server พร้อมทั้งตั้งเวลาเครื่อง Client ให้ตรงกับ Server
โปรแกรมตัวนี้ต้องการสิทธิ์ Administrator ในการตั้งเวลาตัวเครื่อง โดยเครื่องที่ใช้งานต้องมี .net framework เวอร์ชัน 2.0 ขึ้นไป เครื่องที่ทดสอบมีระบบวันที่แบบพุทธศักราช ไม่ได้ทดสอบกับเครื่องที่มีปีแบบคริสตศักราช ซึ่งอาจจะมีผลต่อการทำงานของโปรแกรมครับ


แหล่งข้อมูล

1 ความคิดเห็น: