สอน Networking และ TCP/IP ฉบับสมบูรณ์ 2026: OSI Model DNS DHCP Subnetting สำหรับ Developer

สอน Networking และ TCP/IP ฉบับสมบูรณ์ 2026: OSI Model DNS DHCP Subnetting สำหรับ Developer

networking tcpip guide 2026
· 3400 คำ · หมวด: tech
NetworkingTCP/IPOSI ModelDNSDHCPSubnettingRoutingHTTP

ไม่ว่าคุณจะเป็น Developer, System Admin หรือ DevOps Engineer ความเข้าใจเรื่อง Networking เป็นพื้นฐานที่ขาดไม่ได้ ทุกแอปพลิเคชันที่เราสร้างล้วนสื่อสารผ่านเครือข่าย ตั้งแต่ API Call ไปจนถึง Database Connection บทความนี้จะพาคุณทำความเข้าใจตั้งแต่ OSI Model, TCP/IP, DNS, DHCP, Subnetting ไปจนถึง Network Tools ที่ใช้ในงานจริง พร้อมตัวอย่างคำสั่งที่ใช้ได้ทันที

Networking คืออะไร

Computer Networking คือการเชื่อมต่อคอมพิวเตอร์และอุปกรณ์ต่างๆ เข้าด้วยกันเพื่อแลกเปลี่ยนข้อมูล ตั้งแต่เครือข่ายเล็กๆ ภายในบ้าน (LAN) ไปจนถึงเครือข่ายระดับโลกอย่างอินเทอร์เน็ต ความเข้าใจพื้นฐาน Networking จะช่วยให้คุณแก้ปัญหาการเชื่อมต่อ ออกแบบระบบที่มีประสิทธิภาพ และรักษาความปลอดภัยของข้อมูลได้

เครือข่ายแบ่งตามขนาดได้หลายระดับ ได้แก่ PAN (Personal Area Network เช่น Bluetooth), LAN (Local Area Network เครือข่ายภายในอาคาร), MAN (Metropolitan Area Network ระดับเมือง), WAN (Wide Area Network ข้ามประเทศ) และ Internet ซึ่งเป็น Network of Networks ที่ใหญ่ที่สุดในโลก

OSI 7 Layers: โมเดลอ้างอิงมาตรฐาน

OSI Model (Open Systems Interconnection) เป็นโมเดลอ้างอิง 7 ชั้นที่อธิบายว่าข้อมูลเดินทางจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันหนึ่งผ่านเครือข่ายอย่างไร แต่ละ Layer มีหน้าที่เฉพาะและสื่อสารกับ Layer ที่อยู่ติดกันเท่านั้น

Layerชื่อหน้าที่โปรโตคอล/อุปกรณ์
7Applicationบริการเครือข่ายสำหรับแอปพลิเคชันHTTP, HTTPS, FTP, SMTP, DNS, SSH
6Presentationแปลงรูปแบบข้อมูล เข้ารหัส/ถอดรหัสSSL/TLS, JPEG, JSON, XML, ASCII
5Sessionจัดการ Session การเชื่อมต่อNetBIOS, RPC, PPTP
4Transportส่งข้อมูลแบบ End-to-end, ควบคุม FlowTCP, UDP — Port Number
3Networkกำหนดเส้นทาง (Routing) ข้ามเครือข่ายIP, ICMP, OSPF, BGP — Router
2Data Linkส่งข้อมูลภายในเครือข่ายเดียวกันEthernet, Wi-Fi, ARP — Switch
1Physicalสัญญาณไฟฟ้า/แสง/คลื่นวิทยุสาย UTP, Fiber, Wi-Fi — Hub
วิธีจำ OSI 7 Layers: จากบนลงล่าง "All People Seem To Need Data Processing" หรือจากล่างขึ้นบน "Please Do Not Throw Sausage Pizza Away" ในทางปฏิบัติ Layer 5-7 มักรวมกันเป็น Application Layer ในโมเดล TCP/IP

TCP/IP Model vs OSI Model

TCP/IP Model เป็นโมเดลที่ใช้งานจริงบนอินเทอร์เน็ต มี 4 ชั้น ซึ่งง่ายกว่า OSI ที่เป็นโมเดลทางทฤษฎี

TCP/IP LayerOSI Layers ที่เทียบเท่าตัวอย่าง
ApplicationApplication + Presentation + SessionHTTP, DNS, FTP, SMTP, SSH
TransportTransportTCP, UDP
InternetNetworkIP, ICMP, ARP
Network AccessData Link + PhysicalEthernet, Wi-Fi

เมื่อคุณเปิดเว็บไซต์ ข้อมูลจะถูก Encapsulation คือหุ้มด้วย Header ของแต่ละ Layer ตั้งแต่ Application (HTTP Request) → Transport (TCP Header + Port) → Internet (IP Header + IP Address) → Network Access (Ethernet Frame + MAC Address) แล้วส่งออกเป็นสัญญาณ ฝั่งรับจะทำกระบวนการกลับกันเรียกว่า Decapsulation

IP Address: IPv4, IPv6 และ Subnetting

IPv4

IPv4 คือหมายเลขที่ระบุตัวตนของอุปกรณ์บนเครือข่าย เป็นเลข 32 บิต เขียนแบบ Dotted Decimal เช่น 192.168.1.100 แบ่งเป็น 4 Octet (แต่ละ Octet = 8 บิต = 0-255)

IP Address แบ่งเป็น Public IP (ใช้บนอินเทอร์เน็ต ไม่ซ้ำกัน) และ Private IP (ใช้ภายในเครือข่ายส่วนตัว)

ประเภทช่วง IPจำนวน Address
Class A Private10.0.0.0 – 10.255.255.25516,777,216
Class B Private172.16.0.0 – 172.31.255.2551,048,576
Class C Private192.168.0.0 – 192.168.255.25565,536
Loopback127.0.0.0 – 127.255.255.255Localhost

IPv6

IPv6 ใช้ 128 บิต เขียนเป็นเลขฐาน 16 จำนวน 8 กลุ่ม คั่นด้วย : เช่น 2001:0db8:85a3:0000:0000:8a2e:0370:7334 รองรับ Address ได้ 2^128 ตัว (ประมาณ 3.4 x 10^38) ซึ่งเพียงพอสำหรับอนาคตอันยาวไกล IPv6 ยังมีฟีเจอร์เพิ่มเติม เช่น IPSec ในตัว, Simplified Header และ Stateless Address Autoconfiguration (SLAAC)

CIDR และ Subnetting

CIDR (Classless Inter-Domain Routing) ใช้เครื่องหมาย / ตามด้วยจำนวนบิตของ Network Portion เช่น 192.168.1.0/24 หมายถึง 24 บิตแรกเป็น Network ส่วนที่เหลือ 8 บิตเป็น Host

ตัวอย่าง Subnetting

/24 (255.255.255.0): 256 IP, ใช้ได้จริง 254 Host (ลบ Network Address และ Broadcast)
เช่น 192.168.1.0/24 → Host: 192.168.1.1 ถึง 192.168.1.254

/25 (255.255.255.128): 128 IP, ใช้ได้ 126 Host
เช่น 192.168.1.0/25 → Host: .1 ถึง .126 | 192.168.1.128/25 → Host: .129 ถึง .254

/26 (255.255.255.192): 64 IP, ใช้ได้ 62 Host
เช่น 192.168.1.0/26 → .1 ถึง .62 | 192.168.1.64/26 → .65 ถึง .126 | 192.168.1.128/26 → .129 ถึง .190 | 192.168.1.192/26 → .193 ถึง .254

/28 (255.255.255.240): 16 IP, ใช้ได้ 14 Host
เหมาะกับ Subnet ขนาดเล็ก เช่น แบ่งให้แต่ละแผนก

# คำนวณ Subnet ด้วย Python
import ipaddress

network = ipaddress.ip_network('192.168.1.0/24')
print(f"Network: {network.network_address}")
print(f"Broadcast: {network.broadcast_address}")
print(f"Netmask: {network.netmask}")
print(f"Total hosts: {network.num_addresses}")
print(f"Usable hosts: {network.num_addresses - 2}")

# แบ่ง Subnet ย่อย
for subnet in network.subnets(prefixlen_diff=2):  # แบ่งเป็น /26
    print(f"  {subnet} -> {subnet.num_addresses - 2} hosts")

TCP vs UDP

TCP และ UDP เป็นโปรโตคอลหลักใน Transport Layer ที่มีลักษณะการทำงานแตกต่างกัน

TCP (Transmission Control Protocol)

TCP เป็นโปรโตคอลแบบ Connection-oriented ที่รับประกันว่าข้อมูลจะส่งถึงปลายทางครบถ้วนและเรียงลำดับถูกต้อง ก่อนส่งข้อมูลต้องทำ 3-Way Handshake เพื่อสร้าง Connection ก่อน

# TCP 3-Way Handshake:
#
# Client                    Server
#   |                         |
#   |--- SYN (seq=100) ------>|   1. Client ส่ง SYN พร้อม Sequence Number
#   |                         |
#   |<-- SYN-ACK ------------|   2. Server ตอบ SYN-ACK (seq=300, ack=101)
#   |   (seq=300, ack=101)    |
#   |                         |
#   |--- ACK (ack=301) ------>|   3. Client ส่ง ACK ยืนยัน
#   |                         |
#   |=== Connection สร้างสำเร็จ ===|
#   |--- Data Transfer ------>|   เริ่มส่งข้อมูลได้

TCP มี Flow Control (ควบคุมความเร็วส่ง), Congestion Control (ลดความแออัดของเครือข่าย) และ Error Detection (ตรวจจับข้อผิดพลาด + ส่งใหม่) เหมาะกับ HTTP/HTTPS, SSH, FTP, SMTP, Database Connection

UDP (User Datagram Protocol)

UDP เป็นโปรโตคอลแบบ Connectionless ส่งข้อมูลเลยโดยไม่ต้อง Handshake ไม่รับประกันว่าข้อมูลจะถึงหรือเรียงลำดับถูกต้อง แต่แลกมาด้วยความเร็วและ Latency ต่ำ เหมาะกับ DNS Query, Video Streaming, VoIP, Online Gaming, IoT Sensor Data

คุณสมบัติTCPUDP
ConnectionConnection-oriented (Handshake)Connectionless
ความน่าเชื่อถือรับประกันการส่ง, เรียงลำดับไม่รับประกัน
Speedช้ากว่า (มี Overhead)เร็วกว่า (Overhead น้อย)
Header Size20-60 bytes8 bytes
Flow Controlมี (Window Size)ไม่มี
Use CasesWeb, Email, File TransferStreaming, DNS, Gaming

DNS: ระบบชื่อโดเมน

DNS (Domain Name System) คือระบบที่แปลงชื่อโดเมนที่มนุษย์อ่านได้ (เช่น siamcafe.net) เป็น IP Address ที่คอมพิวเตอร์ใช้ (เช่น 122.155.168.7) เปรียบเสมือนสมุดโทรศัพท์ของอินเทอร์เน็ต

ประเภท DNS Records

Record Typeหน้าที่ตัวอย่าง
Aแมปชื่อโดเมนไปยัง IPv4siamcafe.net → 122.155.168.7
AAAAแมปชื่อโดเมนไปยัง IPv6siamcafe.net → 2001:db8::1
CNAMEAlias ชี้ไปยังชื่อโดเมนอื่นwww.siamcafe.net → siamcafe.net
MXระบุ Mail Serversiamcafe.net → mail.siamcafe.net (Priority 10)
TXTข้อความทั่วไป (SPF, DKIM, verify)v=spf1 include:_spf.google.com ~all
NSระบุ Nameserver ที่ดูแลโดเมนns1.hosting.com, ns2.hosting.com

DNS Resolution Flow

เมื่อคุณพิมพ์ siamcafe.net ในเบราว์เซอร์ กระบวนการค้นหา IP มีดังนี้:

  1. Browser Cache: ตรวจสอบว่าเคยค้นหาชื่อนี้แล้วหรือยัง
  2. OS Cache: ถาม OS (ไฟล์ /etc/hosts และ DNS Cache ของระบบ)
  3. Recursive Resolver: ส่งคำถามไปยัง DNS Resolver ของ ISP หรือ Public DNS (8.8.8.8, 1.1.1.1)
  4. Root Server: Resolver ถาม Root Server (มี 13 กลุ่มทั่วโลก) ซึ่งจะชี้ไปยัง TLD Server
  5. TLD Server: Server ที่ดูแล .net จะชี้ไปยัง Authoritative Nameserver ของ siamcafe.net
  6. Authoritative NS: Nameserver ที่เก็บ Record จริงจะตอบ IP Address กลับมา
  7. Response: Resolver ส่ง IP กลับให้ Browser และ Cache ไว้ตาม TTL
# ค้นหา DNS Record ด้วย nslookup
nslookup siamcafe.net
nslookup -type=MX siamcafe.net
nslookup -type=NS siamcafe.net

# ใช้ dig (ข้อมูลละเอียดกว่า)
dig siamcafe.net A
dig siamcafe.net MX +short
dig siamcafe.net ANY +noall +answer

# Trace DNS Resolution path ทั้งหมด
dig siamcafe.net +trace

DHCP: แจก IP อัตโนมัติ

DHCP (Dynamic Host Configuration Protocol) เป็นโปรโตคอลที่แจก IP Address และค่า Network Configuration ให้อุปกรณ์ในเครือข่ายโดยอัตโนมัติ ทำให้ไม่ต้องตั้งค่า IP ด้วยมือทีละเครื่อง

DORA Process

กระบวนการขอ IP จาก DHCP Server มี 4 ขั้นตอนที่เรียกว่า DORA:

  1. Discover: อุปกรณ์ใหม่ Broadcast ข้อความ "ใครเป็น DHCP Server บ้าง?" ไปทั้งเครือข่าย (Destination: 255.255.255.255)
  2. Offer: DHCP Server ตอบกลับพร้อมเสนอ IP Address, Subnet Mask, Gateway, DNS Server และ Lease Time
  3. Request: อุปกรณ์ตอบรับข้อเสนอ (Broadcast อีกครั้งเพื่อแจ้ง DHCP Server ตัวอื่นว่าเลือก Server นี้แล้ว)
  4. Acknowledge: DHCP Server ยืนยันและจองIP ให้ พร้อมกำหนด Lease Time (เช่น 24 ชั่วโมง เมื่อหมดอายุต้องต่ออายุ)
# ดูข้อมูล DHCP Lease บน Linux
cat /var/lib/dhcp/dhclient.leases

# ขอ IP ใหม่จาก DHCP
sudo dhclient -r eth0    # ปล่อย IP เดิม
sudo dhclient eth0       # ขอ IP ใหม่

# Windows
ipconfig /release
ipconfig /renew
ipconfig /all   # ดูข้อมูล DHCP ทั้งหมด

HTTP/HTTPS: โปรโตคอลเว็บ

TLS/SSL

HTTPS = HTTP + TLS (Transport Layer Security) ใช้การเข้ารหัสข้อมูลระหว่าง Client กับ Server ทำให้ผู้โจมตีไม่สามารถดักอ่านข้อมูลได้ กระบวนการ TLS Handshake ประกอบด้วยการแลกเปลี่ยน Certificate, ตรวจสอบตัวตน Server และสร้าง Session Key สำหรับเข้ารหัสข้อมูล

HTTP Status Codes ที่ควรรู้

รหัสความหมายพบเมื่อ
200OK — สำเร็จRequest ปกติ
201Created — สร้างสำเร็จPOST สร้างข้อมูลใหม่
301Moved PermanentlyRedirect ถาวร (SEO)
302Found (Temporary Redirect)Redirect ชั่วคราว
400Bad RequestRequest ไม่ถูกรูปแบบ
401Unauthorizedไม่ได้ Login
403Forbiddenไม่มีสิทธิ์เข้าถึง
404Not Foundไม่พบ Resource
429Too Many Requestsถูก Rate Limit
500Internal Server ErrorServer มีปัญหา
502Bad GatewayReverse Proxy ติดต่อ Backend ไม่ได้
503Service UnavailableServer โหลดสูง/Maintenance

HTTP Headers ที่สำคัญ

# Request Headers ที่ควรรู้
GET /api/users HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
Accept: application/json
User-Agent: MyApp/1.0
Cache-Control: no-cache

# Response Headers ที่สำคัญ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=3600
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: default-src 'self'

Routing: Static vs Dynamic

Routing คือกระบวนการตัดสินใจว่า Packet จะถูกส่งไปทางไหนเพื่อไปถึงปลายทาง Router จะดู Routing Table เพื่อเลือกเส้นทางที่ดีที่สุด

Static Routing

ตั้งค่าเส้นทางด้วยมือ เหมาะกับเครือข่ายเล็กที่ไม่ค่อยเปลี่ยนแปลง

# Linux: เพิ่ม Static Route
sudo ip route add 10.0.2.0/24 via 192.168.1.1 dev eth0
ip route show   # ดู Routing Table

# Windows
route add 10.0.2.0 mask 255.255.255.0 192.168.1.1
route print     # ดู Routing Table

Dynamic Routing

ใช้ Routing Protocol ให้ Router แลกเปลี่ยนข้อมูลเส้นทางกันอัตโนมัติ ปรับตัวเมื่อเครือข่ายเปลี่ยนแปลง

NAT และ Port Forwarding

NAT (Network Address Translation) แปลง Private IP เป็น Public IP เมื่อส่งข้อมูลออกอินเทอร์เน็ต ทำให้อุปกรณ์หลายเครื่องในเครือข่ายภายในใช้ Public IP เดียวกันได้ เช่น ที่บ้านมีคอมพิวเตอร์ 5 เครื่องแต่มี Public IP เดียว

Port Forwarding คือการตั้งค่าให้ Router ส่ง Traffic ที่เข้ามาทาง Port ที่กำหนดไปยังเครื่องภายในเครือข่าย เช่น ส่ง Port 80 ไปที่ Web Server ภายใน หรือ Port 22 ไปที่ SSH Server ใช้ในการเปิดให้เข้าถึงบริการภายในจากอินเทอร์เน็ต

# ดู NAT Table บน Linux (iptables)
sudo iptables -t nat -L -n -v

# Port Forward: Port 8080 ภายนอก → Port 80 ภายในที่ 192.168.1.100
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 \
  -j DNAT --to-destination 192.168.1.100:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Network Tools: เครื่องมือที่ต้องรู้

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

ping — ตรวจสอบการเชื่อมต่อ

# ทดสอบว่าเชื่อมต่อถึงปลายทางหรือไม่
ping -c 4 siamcafe.net        # Linux: ส่ง 4 packets
ping -n 4 siamcafe.net        # Windows

# ผลลัพธ์: round-trip time (RTT), packet loss

traceroute — ดูเส้นทาง Packet

# ดูว่า Packet ผ่าน Router กี่ตัวก่อนถึงปลายทาง
traceroute siamcafe.net       # Linux
tracert siamcafe.net          # Windows

# ช่วยระบุจุดที่ Latency สูงหรือ Packet หาย

netstat / ss — ดูการเชื่อมต่อ

# ดู Port ที่เปิดอยู่และการเชื่อมต่อ
ss -tlnp                      # Linux: TCP Listening ports + Process
netstat -an | findstr LISTEN   # Windows

# ดูการเชื่อมต่อทั้งหมดของ Process
ss -tp | grep nginx

tcpdump — จับ Packet

# จับ Packet ที่ Port 80 บน Interface eth0
sudo tcpdump -i eth0 port 80 -n -c 20

# จับ Packet เฉพาะ IP ที่กำหนด
sudo tcpdump -i eth0 host 192.168.1.100

# บันทึกเป็นไฟล์ .pcap เพื่อวิเคราะห์ใน Wireshark
sudo tcpdump -i eth0 -w capture.pcap -c 1000

Wireshark

Wireshark เป็น GUI Network Analyzer ที่ทรงพลังมาก สามารถจับและวิเคราะห์ Packet ได้ละเอียดทุก Layer แสดง Protocol Hierarchy, Follow TCP Stream, Filter ข้อมูลด้วย Display Filter เช่น http.request.method == "POST" หรือ tcp.port == 443 && tls.handshake เหมาะกับการ Debug ปัญหาเครือข่ายที่ซับซ้อน

เคล็ดลับ Wireshark: ใช้ Capture Filter เพื่อจำกัดข้อมูลที่จับ (เช่น host 192.168.1.100 and port 443) จะลด Load และทำให้วิเคราะห์ง่ายขึ้น Display Filter ใช้กรองข้อมูลหลังจับแล้ว ทั้งสองใช้ Syntax คนละแบบ

ข้อผิดพลาดที่พบบ่อย

FAQ — คำถามที่พบบ่อย

Q: TCP/IP กับ OSI Model ต่างกันอย่างไร?
A: OSI เป็นโมเดลทางทฤษฎี 7 ชั้นที่ใช้เป็นกรอบอ้างอิง ส่วน TCP/IP เป็นโมเดลที่ใช้งานจริงบนอินเทอร์เน็ต มี 4 ชั้น ในการทำงานจริงเราใช้ TCP/IP แต่อ้างอิง OSI ในการอธิบายและ Troubleshoot

Q: ทำไม IPv6 ยังไม่แพร่หลาย?
A: เพราะ NAT ช่วยยืดอายุ IPv4 ได้มาก และการเปลี่ยนไปใช้ IPv6 ต้องอัพเกรดอุปกรณ์และซอฟต์แวร์ทั้งระบบ ซึ่งมีต้นทุนสูง อย่างไรก็ตาม IPv6 Adoption กำลังเพิ่มขึ้นเรื่อยๆ โดยเฉพาะใน Mobile Network

Q: Port 80 กับ 443 ต่างกันอย่างไร?
A: Port 80 ใช้สำหรับ HTTP (ไม่เข้ารหัส) ส่วน Port 443 ใช้สำหรับ HTTPS (เข้ารหัสด้วย TLS) ปัจจุบันเว็บไซต์ควรใช้ HTTPS เท่านั้นเพื่อความปลอดภัย และ Google ให้คะแนน SEO กับเว็บที่ใช้ HTTPS สูงกว่า

Q: Developer ต้องรู้ Networking ลึกแค่ไหน?
A: ควรเข้าใจ DNS, HTTP/HTTPS, TCP vs UDP, IP/Port, Firewall เป็นอย่างน้อย ถ้าทำ Backend หรือ DevOps ควรรู้ Subnetting, NAT, Load Balancing, Reverse Proxy เพิ่มเติม ศึกษาเพิ่มเติมใน บทความ Docker และ Kubernetes ที่ต้องใช้ความรู้ Networking เข้มข้น

Q: จะเรียน CCNA ได้ที่ไหน?
A: ศึกษาเพิ่มเติมได้ที่ คู่มือ CCNA 200-301 ที่ SiamLanCard ซึ่งมีเนื้อหาภาษาไทยครบถ้วน

Networking คือ TCP/IP OSI Model DNS DHCP Subnetting Routing สอน networking ภาษาไทย คู่มือ TCP IP สำหรับนักพัฒนา HTTP HTTPS TLS SSL Network Tools ping traceroute Wireshark