ICMP คืออะไร? ในระบบ Computer Network

Ake_.Net JPK
7 min readApr 26, 2024

--

Internet Protocol (IP) เป็นข้อกำหนดของการสื่อสารในระดับ Network Layer

รูปแสดง ชื่อเรียกประเภทของการสื่อสารในแต่ละชั้นของการสื่อสาร (OSI Model 7Layer)cr. รูปจาก https://www.cpe.ku.ac.th/~plw/dccn/presentation/ch23.pdf

หรือที่เรียกว่า Host-to-Host ในยุคเริ่มแรกเราเรียกโมเดลเครือข่ายลักษณะนี้ว่า Catenet

รูปแสดง คุณ Louis Pouzin cr.รูปจาก https://qeprize.org/winners/louis-pouzin

ถูกนำเสนอโดยคุณ Louis Pouzin ในปี คศ.1974 ต่อมาช่วงต้นปี 1980 จนถึงปัจจุบันคำว่า Catenet ไม่นิยมใช้แล้ว เราหันมาใช้คำว่า Internet จนถึงปัจจุบัน

โดยระบบ Catenet เป็นโปรเจคที่พัฒนาภายใต้หน่วยงาน DARPA ซึ่งเป็นหน่วยงานวิจัยเทคโนโลยีต่างๆของกระทรวงกลาโหมของสหรัฐ ก่อตั้งเมื่อ 7 กุมภาพันธ์ คศ.1985

ในยุคเริ่มแรกนั้นมีสิ่งที่ใช้เชื่อมต่อแต่ละเครือข่ายเข้าด้วยกันเราเรียกว่า Gateway เกตเวย์เหล่านี้จะสื่อสารระหว่างกันเองด้วย เพื่อวัตถุประสงค์ในการควบคุมการทำงานในการส่ง Packet , Datagram ต่างๆ โดยผ่านสิ่งที่เรียกว่า GGP (Gateway-to-Gateway Protocol)

ในบางครั้ง Gateway หรือโฮสต์ปลายทางจะสื่อสารกับโฮสต์ต้นทางด้วยเช่นกัน เพื่อรายงานข้อผิดพลาดในการประมวลผล Packet , Datagram ดังนั้นจำเป็นที่จะต้องมี Protocol บางอย่างที่จะนำมาใช้เพื่อวัตถุประสงค์ดังกล่าวนี้

รูปแสดง คุณ Jon Postel cr.รูปจาก https://www.internethalloffame.org/wp-content/uploads/2012/10/Postel_Jon.jpg

โปรโตคอลนี้ก็คือ ICMP ย่อมาจากคำว่า Internet Control Message Protocol ถูกพัฒนาขึ้นในและออกเป็นข้อกำหนดในปี คศ.1981 โดยคุณ Jon Postel และทีมพัฒนา

ICMP จะเป็นชุดของกฎการสื่อสารที่อุปกรณ์ใช้ในการสื่อสารข้อผิดพลาดในการรับส่งข้อมูลในระบบเครือข่าย ในการแลกเปลี่ยนข้อความระหว่างผู้ส่งและผู้รับ

ซึ่งจะช่วยแจ้งสถานะและรายงานข้อผิดพลาดที่เกิดขึ้นที่เกี่ยวกับการทำงานของโปรโตคอล TCP/IP หรือ Layer ที่สูงกว่าขึ้นไปด้วย (TCP หรือ UDP)

โดยข้อความควบคุมเหล่านี้จะไม่ได้เป็นการส่งข้อมูลของผู้ใช้ แต่เป็นข้อมูลของ ICMP โดยมันจะถูกใช้เพื่อให้ผู้ดูแลระบบเครือข่ายได้ใช้ข้อมูลดังกล่าวเพื่อการวิเคราะห์ปัญหาต่างๆที่เกิดขึ้นได้ง่ายขึ้น

โดย Host ต่างๆที่กล่าวไว้ข้างต้นจะหมายถึง Computer , Router หรืออุปกรณ์ Computer Network ต่างๆทั้งหมด จะสามารถส่ง ICMP Packet ออกมาได้ทั้งสิ้นครับ

ICMP เป็น Protocol ที่ทำงานอยู่ใน Layer 3 : Network Layer โดยถูก Encapsulation ลงมาใน IP Packet อีกทีหนึ่งครับ

ในบทความนี้ผมจะพูดถึง ICMP version 4 เป็นหลักก่อนนะครับ โดยมันจะถูกใช้งานด้วย Internet Protocol version 4 ครับ

รูป แสดงข้อมูลแต่ละ Field ของ IP Header version 4 cr.รูปจาก https://pressbooks.howardcc.edu/app/uploads/sites/4/2020/02/IPheader.png

จากที่บอกไปคือ ICMP จะอาศัย Internet Protocol โดยจะทำการระบุข้อมูลให้กับ IP Header ครับ

จากรูปด้านบน ข้อมูลหลักๆที่ถูกบรรจุไปใน IP Header เมื่อต้องการใช้ ICMP มีดังนี้

— Version = 4
— IHL = 20 Bytes default
— TOS = 0
— Protocol = 1 (ค่า 1 เพื่อบอกว่า Packet นี้ใช้ ICMP ครับ)

ซึ่ง IPv4 Header จะมีขนาด Default ของ Header คือ 20 Bytes ครับ จบที่ทั้งหมดตั้งแต่ Bit ที่ 0–159 รวม 160 Bits = 160/8 = 20 Bytes ครับ

รูปแสดง รูปแบบข้อมูลของ ICMP message cr.รูปจาก https://info.support.huawei.com/info-finder/encyclopedia/en/ICMP.html

จากนั้นข้อมูลเมื่อบอกว่า Protocol = 1 คือจะใช้ ICMP ดังนั้นตำแหน่ง Bit ที่ 160–191 ครับ คือขนาดของ ICMP Header 32 Bits (4 Bytes) ส่วนตำแหน่ง Bit ที่ 192 เป็นต้นไป ก็จะเป็นในส่วนของ ข้อมูลที่จำเป็นสำหรับ ICMP ในแต่ละ Type ที่ใช้งานครับ

รูป แสดง การเปรียบเทียบของข้อมูล ICMP version 4 และ 6 cr.รูปจาก https://en.wikipedia.org/wiki/ICMPv6 , https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

สำหรับ version 6 จะพูดถึงในบทความต่อๆไปครับ แต่ version 6 ก็จะมีความเหมือนกันอย่างนึงคือขนาดของ ICMP Header จะมีขนาดเท่ากันที่ 32 Bits (4 Bytes) ครับ ความแตกต่างจะอยู่ในรายละเอียดของ Type และ Code ที่จะมีความแตกต่างกันครับ

เราใช้ ICMP ในงานใดบ้าง?

1.การรายงานข้อผิดพลาด (Error reporting)

ICMP จะรายงานข้อผิดพลาดของระบบเครือข่าย เช่น
— ปลายทางที่ไม่สามารถเข้าถึงได้ (unreachable destinations)
— การหมดเวลา (timeouts)
—ปัญหาการทำการแตกข้อมูล (fragmentation problems)

ยกตัวอย่างในกรณีที่ Packet นั้นใช้ User Datagram Protocol (UDP) ซึ่งมีรูปแบบการสื่อสารแบบที่ไม่มีการสร้าง Connection หรือที่เรียกว่า Connectionless

UDP ไม่ใช่การจัดส่งแพ็คเก็ตที่เชื่อถือได้หรือเรียงตามลำดับ เมื่อมีแพ็คเก็ต UDP ถูกส่งออกไป มีความเป็นไปได้ว่าแพ็คเก็ตอาจสูญหาย หรืออาจมีความผิดพลาดในการจัดส่ง เช่น ข้อผิดพลาดเกี่ยวกับ checksum หากเกิดเหตุการณ์นี้ขึ้น ตัวรับหรือ Host ปลายทางจะส่งข้อความรายงานข้อผิดพลาด โดยจะใช้ ICMP เพื่อส่ง ICMP Packet กลับไปยังผู้ส่งเพื่อแจ้งให้ทราบถึงปัญหาดังกล่าวครับ

2.การวินิจฉัย (Diagnostics)

เราจะใช้ ICMP สำหรับการวินิจฉัย,ตรวจสอบข้อมูลเกี่ยวกับระบบเครือข่ายคอมพิวเตอร์ โดยที่นิยมก็คือการใช้คำสั่ง ping และ traceroute

คำสั่ง ping ทดสอบการเข้าถึงของอุปกรณ์เครือข่ายโดยส่งจะทำการส่ง ICMP echo request packets ไปยังอุปกรณ์เป้าหมาย ถ้าสามารถเข้าถึงอุปกรณ์ได้ อุปกรณ์ปลายทางก็จะส่งการตอบกลับ ICMP echo reply กลับมา และจะมีข้อมูลของ Latency times (เวลาที่ใช้ในการเดินทางของ Packet จากต้นทางไปยังปลายทาง) ตอบกลับมาด้วยซึ่งจะเป็นข้อมูลที่เชื่อถือได้ ทำให้มั่นใจได้ว่าอุปกรณ์นั้นพร้อมใช้งาน

รูปแสดง ตัวอย่าง จำนวน Router ของเส้นทางจาก Host หนึ่ง ไปยัง IP: 1.1.1.1

คำสั่ง traceroute จะใช้ ICMP Packet เพื่อส่ง echo Request และ echo Reply เพื่อตามรอยเส้นทางที่ Packet ใช้ตั้งแต่ต้นทางไปจนถึงปลายทาง เส้นทางที่หมายถึงคือ Router ที่แต่ละตัวจนถึงปลายทาง โดยคำขอแบบ echo (echo Request) จะมีค่า time-to-live (TTL) อยู่ด้วยตามข้อกำหนดของ IP Protocol ซึ่งจะลดลงทีละหนึ่งในแต่ละครั้งที่ Packet ส่งผ่าน Router (ตัวอย่างตามรูปด้านบน) อ่านรายละเอียดเกี่ยวกับค่า TTL ได้ในบทความนี้ครับ -> https://medium.com/@akenetjpk/4271a7d4b9e1

รูปแสดง การใช้คำสั่ง Ping , Traceroute

ข้อความ (Message) นี้จะมีข้อมูลเกี่ยวกับเส้นทางที่ Packet ใช้ในการเดินทาง โดย traceroute จะเผยให้เห็นเส้นทางที่แน่นอนของ Packet ซึ่งสามารถให้ข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของเครือข่ายสำหรับผู้ดูแลระบบได้ครับ (ดังแสดงตามรูปด้านบน)

3.ความปลอดภัยของเครือข่าย (Network security)

เราสามารถใช้ ICMP เพื่อตรวจหา,ตรวจสอบการรับส่งข้อมูลเครือข่ายที่ไม่ได้รับอนุญาตและอนุญาตได้

Firewall ใช้ ICMP เพื่ออนุญาตหรือบล็อกการรับส่งข้อมูลบางประเภทได้

ผู้ดูแลระบบเครือข่ายยังใช้ ICMP เป็นเครื่องมือในการตรวจสอบ เพื่อติดตามสถานะและการเชื่อมต่อของอุปกรณ์เครือข่ายและตรวจหาอุปกรณ์ที่ไม่รู้จักได้อีกด้วย

นอกจากนี้ยังสามารถใช้ ICMP นี้เพื่อระบุรูปแบบการรับส่งข้อมูลที่ผิดปกติซึ่งอาจชี้ให้เห็นถึงกิจกรรมหรือ Packet ต่างๆที่ไม่ได้รับอนุญาตได้

ICMP ทำงานอย่างไร?
Internet Control Message Protocol (ICMP) จะทำงานควบคู่ไปกับ Network Protocol อื่นๆ เช่น TCP/IP และ User Datagram Protocol (UDP) โดย Host และ Router ในเครือข่ายนั้นๆจะแลกเปลี่ยนข้อความ ICMP หรือ ICMP Packet เมื่อมีเหตุการณ์ในเครือข่ายบางอย่างเกิดขึ้น

ใน ICMP Packet มีข้อมูลอะไรอยู่ในนั้นบ้าง?

รูปแสดง รูปแบบข้อมูลของ ICMP message cr.รูปจาก https://info.support.huawei.com/info-finder/encyclopedia/en/ICMP.html

ICMP Packet จะประกอบด้วยส่วนหัวของ ICMP Packet (ICMP Header) และส่วนของ ICMP Packet Content (หรือเรียกว่า Rest of header ก็ได้ครับ คือส่วนที่นอกเหนือจาก Header ครับ) ส่วนนี้ขึ้นอยู่กับ Type และ Code นั้นๆ โดยจะใช้ เพิ่มขึ้นทีละ 4 Bytes ขึ้นอยู่กับ Type และ Code นั้นๆครับ

ICMP Packet Header

รูปแสดง รูปแบบข้อมูลของ ICMP message cr.รูปจาก https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

ส่วนหัวของ ICMP (ICMP Header) มีขนาด 32 Bits เริ่มที่ Bit ที่ 0–31 หรือก็คือ มีทั้งหมด 4 Bytes ประกอบด้วย Field ที่ใช้เก็บข้อมูลเกี่ยวกับ

— ประเภท(Field : Type)
— รหัส (Field : Code)
— ใช้ตรวจสอบความครบถ้วนของข้อมูล Field : Checksum

เมื่อมีการส่ง ICMP Packet (จากที่กล่าวไปข้างต้นคือส่งผ่านโดยใช้ Internet Protocol) ผู้รับจะได้รับ ICMP Message จากนั้นจะอ่านข้อมูลส่วนหัว (Header) โดยอิงจาก Type เพื่อที่จะเลือกวิธีดำเนินการที่เหมาะสมต่อไป

ICMP Type ทั้งหมดก็จะมีดังนี้ครับ
— Type 0 Echo Reply
— Type 3 Destination Unreachable
— Type 4 Source Quench
— Type 5 Redirect
— Type 8 Echo (Echo Request)
— Type 11 Time Exceeded
— Type 12 Parameter Problem
— Type 13 Timestamp
— Type 14 Timestamp Reply
— Type 15 Information Request
— Type 16 Information Reply

สำหรับบทความนี้ผมจะพูดถึง Type ที่เราพบหรือใช้งานบ่อยๆจะมีประมาณนี้ครับ
— Type 0 Echo Reply
— Type 3 Destination Unreachable
— Type 4 Source Quench
— Type 5 Redirect
— Type 8 Echo (Echo Request)
— Type 11 Time Exceeded

มาเริ่มกันที่…

— Type = 8 คือ echo Request แล้วส่งไปถึงตัวรับและสามารถติดต่อกันได้ ตัวรับจะตอบกลับด้วย Field :

— Type = 0 คือ echo Reply โดยข้อมูลใน Field : Code จะเป็นข้อมูลที่เหมือนกันคือ = 0 เพราะ Field : Code นี้จะไม่ถูกใช้งานครับเมื่อใช้ Type = 8 และ 0 เพราะติดต่อกันได้ปกติ

รูปแสดง ข้อมูล ICMP Packet Type=8 และ 0 cr.รูปจาก https://datatracker.ietf.org/doc/html/rfc792

ใน ICMP Packet Content จะมี 2 Field ข้อมูลคือ

— Identifier ขนาด 2 Bytes ใช้เพื่อช่วยในการจับคู่ echo Request และ echo Reply
— Sequence Number ขนาด 2 Bytes ใช้สำหรับระบุค่าลำดับที่ใช้ในการจับคู่ echo Request และ echo Reply เช่นกัน

ซึ่งทั้ง 2 Field นี้จะช่วยเพื่อใช้ตอบกลับไปยังผู้ส่งได้ถูกต้องตาม echo Request ที่ได้รับมา

โดย Type = 8 และ 0 นี้เราจะพบบ่อยกับโปรแกรม ping ครับที่ได้ยกตัวอย่างการใช้งานไปข้างต้น

— Type = 3 คือ Destination Unreachable

รูปแสดง ข้อมูล ICMP Packet Type=3 cr.รูปจาก https://datatracker.ietf.org/doc/html/rfc792

แสดงว่า Router หรือ ผู้ส่งไม่สามารถติดต่อไปยัง Host , Router ปลายทางได้ หรือก็คือ ปลายทางที่ไม่สามารถเข้าถึงได้

รูปแสดง เหตุการณ์ ICMP Type=3 cr.รูปจาก https://www.researchgate.net/figure/ICMP-error-message-format-ICMP-error-messages-of-Type-3-represent-a-destination_fig1_332993177

ตัวรับ เช่น Router หรือ Host ผู้ส่งเอง จะตอบกลับด้วยข้อความ(Message) Destination Unreachable (ปลายทางที่ไม่สามารถเข้าถึงได้) กลับไปยัง Host ต้นทางเพื่อแจ้งสถานะให้ทราบ ส่วนสาเหตุว่าทำไมจึงไปไม่ถึงนั้นข้อมูลจะอยู่ใน Field : Code ครับ โดยในส่วนของ ICMP Packet Content ไม่มีการใช้งานครับ (Unused)

สำหรับ Code ของ Type 3 ก็จะมี ดังนี้ครับ

Code = 0 คือ Network Unreachable : (ใน Router Cisco หรือ Windows เรามักจะเห็นคำว่า destination host unreachable) เป็นไปได้ว่า ไม่มี Network ID , Subnet ปลายทาง อยู่ใน Routing Table ของ Router ที่ต่ออยู่กับผู้ส่งครับ ส่งผลให้ Router ส่ง Packet ออกไปไม่ได้

Code = 1 คือ Host Unreachable : (ใน Router Cisco หรือ Windows เรามักจะเห็นคำว่า request timeout) เป็นไปได้ว่า มี Network ID , Subnet ปลายทาง อยู่ใน Routing Table ของ Router ที่ต่ออยู่กับผู้ส่งแล้ว แต่ไม่สามารถส่งไปหา Host ปลายได้ อาจเพราะ Host ปลายทางนั้น Down อยู่หรือมี Firewall ปิดกั้นไว้ครับ

Code = 2 คือ Protocol Unreachable
Code = 3 คือ Port Unreachable
Code = 4 คือ Fragmentation needed and the do not fragment bit set
Code = 5 คือ Source Route failed

— Type = 4 , Code = 0 คือ Source quench

รูปแสดง ข้อมูล ICMP Packet Type=4 cr.รูปจาก https://datatracker.ietf.org/doc/html/rfc792

ICMP Packet นี้จะถูกส่งจาก Router ไปแจ้งให้ Host ต้นทาง หรือ ให้อุปกรณ์เครือข่ายอื่นๆที่เชื่อมต่ออยู่ด้วยโดยตรง(Connected) เพื่อให้ต้นทางหรืออุปกรณ์เครือข่ายอื่นๆให้ทำการลดอัตราการส่ง Packet ที่เข้ามาหาตัวมัน เนื่องจากผู้รับหรือ Router นั้นกำลังประสบปัญหาความแออัดของข้อมูลและจำเป็นต้องจำกัดจำนวน Packet ที่ได้รับครับ โดย Code จะมีค่าเดียวคือ Code = 0

— Type = 5 คือ Redirect

รูปแสดง ข้อมูล ICMP Packet Type=5 cr.รูปจาก https://datatracker.ietf.org/doc/html/rfc792
รูปแสดง เหตุการณ์ ICMP Type=5 cr.รูปจาก https://media.geeksforgeeks.org/wp-content/uploads/6-18.png

เมื่อ Host นั้นๆมีการเชื่อมต่อ Router หรือ Gateway ไว้มากกว่า 1 เส้นทาง และเมื่อ Gateway ที่ทำหน้าที่เป็น Default Gateway พบว่ามีเส้นทางนี้ไม่เหมาะสำหรับ IP Packet นั้นแล้ว Router จะส่ง ICMP Type5 กลับไปที่ Host ผู้ส่ง เพื่อให้ครั้งต่อไป Host นั้นๆจะได้ส่ง IP Packet ดังกล่าวข้างต้น ออกไปยัง Gateway อื่นแทน ซึ่งก็คือการทำ Packet Redirect ครับ ดังนั้นในส่วนของ ICMP Packet Content จะเป็น Field : Gateway Internet Address ขนาด 32 Bits ครับ

สำหรับ Code ของ Type 5 ก็จะมีดังนี้ครับ
0 = Redirect datagrams for the Network
1 = Redirect datagrams for the Host
2 = Redirect datagrams for the Type of Service and Network
3 = Redirect datagrams for the Type of Service and Host

— Type = 11 คือ Time Exceeded

รูปแสดง ข้อมูล ICMP Packet Type=11 cr.รูปจาก https://datatracker.ietf.org/doc/html/rfc792

เป็นข้อความแจ้งกลับมาต้นทางว่าแพ็คเก็ตได้ใช้เวลานานเกินเวลาสูงสุดที่จะไปถึงปลายทาง ในส่วนของ ICMP Packet Content นั้นไม่ได้ใช้งาน(Unused) ตามรูปบนครับ

รูปแสดง เหตุการณ์ ICMP Type=11 , code = 0 และเปรียบเทียบ Type = 3 , code = 0 cr.รูปจาก https://media.geeksforgeeks.org/wp-content/uploads/4-30.png

สำหรับ Code ของ Type 11 ก็จะมีดังนี้ครับ

รูปแสดง Network Diagram เมื่อ Router ทำงานผิดพลาด ทำให้เกิด Layer 3 Loop
รูปแสดง Network Diagram เมื่อ Router ได้รับ Packet ที่มีค่า TTL = 0 และจะทำการส่ง ICMP message กลับไปยังต้นทางด้วย Type 11 Code 0 เพื่อบอกว่า TTL = 0 แล้ว แต่ยังไม่ถึงปลายทาง

0 = time to live exceeded in transit : คือ ค่า TTL = 0 แล้ว แต่ Packet ยังไม่ถึงปลายทางที่ต้องการ เช่นเกิดเหตุการณ์ Layer 3 Loop ครับ โดยส่วนมาก Code 0 นี้จะได้รับจาก Router เพราะ Packet ยังไม่ถึง Host ปลายทาง

1 = fragment reassembly time exceeded : Packet ที่ถูกทำการ Fragmentation (หั่นข้อมูลเป็นชิ้นๆ) ไม่สามารถประกอบกลับคืนได้ครบภายในเวลาที่กำหนด โดยส่วนมาก Code 1 นี้จะได้รับจาก Host ปลายทาง โดย Host ปลายทางไม่สามารถประกอบ Packet , IP Datagram กลับคืนได้ครบ ก็จะส่ง ICMP message type 11 code 1 ไปบอกต้นทางให้ทราบครับ

เรามาดูข้อมูลแต่ละ Field ของ IPv4 Header และ ICMPv4 Header กับของจริงกันครับ ว่ามีข้อมูลอะไรบ้าง เหมือนกับทฤษฎีหรือป่าว?

รูป แสดง Network Diagram เพื่อใช้อธิบายเกี่ยวกับการทำ Packet Capture
รูปแสดงข้อมูลจากโปรแกรม Wireshark Packet Capture ของ ICMP Packet Type 8 Code 0 (echo Request)

ทำการใช้คำสั่ง ping บนเครื่อง Windows จากนั้นข้อมูลที่อ่านได้จากโปรแกรม Wireshark จะแสดงตามรูปบนคือ เมื่อใช้คำสั่ง ping แล้ว IP Packet จะทำการขน ICMP Packet ไปด้วย ด้วยข้อมูลขนาด default ของโปรแกรม ping คือ 32 Bytes จะเห็นว่า ICMP Type คือ 8 คือการส่ง echo Request ออกไปยังผู้รับปลายทาง ก็คือ IP : 9.9.9.9

รูปแสดงข้อมูลจากโปรแกรม Wireshark Packet Capture ของ ICMP Packet Type 3 Code 0 (echo Reply)

เมื่อ Host IP : 9.9.9.9 ได้รับ ICMP Packet Type 8 (echo Request) ก็จะทำการตอบกลับด้วย ICMP Packet Type 3 (echo Reply) กลับมา คือการติดต่อกันได้ปกติ ไม่มี error code message ตามรูปด้านบนครับ

References :
https://info.support.huawei.com/info-finder/encyclopedia/en/ICMP.html
https://aws.amazon.com/th/what-is/icmp/
— หนังสือ เรียนรู้ระบบเน็ตเวิร์กจากอุปกรณ์ Cisco ภาคปฏิบัติ พิมพ์ครั้งที่12, เอกชัย วิริยจารี , หน้า77
https://datatracker.ietf.org/doc/html/rfc792
https://www.rfc-editor.org/ien/ien48.txt
https://www.geeksforgeeks.org/internet-control-message-protocol-icmp/
https://www.cpe.ku.ac.th/~plw/dccn/presentation/ch23.pdf
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

--

--

Ake_.Net JPK

ชอบเขียนบทความเกี่ยวกับระบบ Computer Network เพื่อทบทวนความรู้ความเข้าใจให้กับตนเองเป็นหลัก และให้ผู้ที่สนใจสามารถเข้ามาอ่านได้ครับ ขอขอบคุณที่ติดตามครับ