บทที่ 5

แอดเดรส

เครื่องหนึ่งเครื่องมีชื่อเรียกได้ 4 แบบพร้อมกัน — MAC (L2), IP (L3), พอร์ต (L4) และชื่อเว็บ (L7) บทนี้บอกว่าอันไหนอยู่ชั้นไหน และมีโปรโตคอลอะไรคอยแปลงไปมา (DHCP, DNS, ARP)

อ่าน ~16 นาที คุ้มที่สุดในเล่ม ข้อสอบ Q3 · 6 คะแนน
ข้อสอบออกแบบไหน — อ่านก่อนเลย

บทนี้คือหัวใจของ ข้อ Q3 (Wireshark) ที่โจทย์เปิดหน้าจอ Wireshark มาแล้วถามว่า "แอดเดรสแต่ละเลเยอร์คืออะไร" — ตอบ 3 บรรทัดได้ 6 คะแนน คุ้มที่สุดในฉบับ สิ่งที่ต้องจำมีแค่นี้:

เลเยอร์ชื่อแอดเดรสตัวอย่างอยู่ในเฮดเดอร์ของ
Layer 2 ดาต้าลิงก์Physical address (MAC)18-5E-0F-BA-C7-0FEthernet header
Layer 3 เน็ตเวิร์กLogical address (IP)192.168.0.55IP header
Layer 4 ทรานสปอร์ตPort address80 (HTTP)TCP/UDP header
Layer 7 แอปพลิเคชันSpecific addresswww.kku.ac.thข้อมูลของแอปพลิเคชัน

ท่องแค่ “MAC สอง · IP สาม · พอร์ตสี่” ก็ได้คะแนนแล้ว ที่เหลือในหน้านี้คือรายละเอียดที่ทำให้ตอบได้แม้โจทย์พลิก

เพื่อให้โฮสต์แต่ละเครื่องสื่อสารกันได้ จำเป็นต้องกำหนด IP address ให้ทุกเครื่อง เน็ตเวิร์กขนาดเล็กอาจกำหนดด้วยตนเองได้ แต่เมื่อเน็ตเวิร์กใหญ่ขึ้นหรือมีอุปกรณ์ไร้สายเข้าออกตลอดเวลา การกำหนดด้วยมือย่อมไม่มีประสิทธิภาพ บทนี้จึงนำเสนอ DHCP ที่กำหนด IP address อัตโนมัติ และ DNS ที่แปลงชื่อเว็บไซต์ (URL) เป็น IP address

5.1IP Address มาจากไหน

ในเน็ตเวิร์ก ทุกเครื่องจำเป็นต้องมี IP address บน Windows 10 ตรวจสอบได้โดยคลิกไอคอน Internet Access แล้วเปิด Properties เลื่อนลงมาด้านล่างจะพบข้อมูลแอดเดรส

ข้อมูลแอดเดรสบน Windows 10
รูปที่ 5.1 จากหนังสือ — ข้อมูลแอดเดรสบน Windows 10 (ตัวเลขในรูปนี้จะถูกใช้เป็นตัวอย่างตลอดทั้งหน้า)

จากรูปที่ 5.1 พบแอดเดรส 3 ประเภท:

IPv4 address

IP address ของเครื่องที่ใช้งานอยู่ในขณะนั้น
192.168.0.55

IPv4 DNS servers

IP ของ DNS เซิร์ฟเวอร์ ทำหน้าที่แปลง URL เป็น IP address เช่นแปลง www.google.com ให้เป็น IP
192.168.0.1

Physical address (MAC)

หมายเลขประจำอินเทอร์เฟซที่ใช้สื่อสาร
18-5E-0F-BA-C7-0F

ในส่วน IP Settings ด้านบนของรูปเดียวกัน จะพบการตั้งค่าแบบ Automatic (DHCP) ซึ่งทำหน้าที่แจกจ่าย IP address ให้เครื่องที่เชื่อมต่อเน็ตเวิร์กโดยอัตโนมัติ แม้จะกำหนดแบบ Manual ได้ผ่านปุ่ม Edit แต่ไม่แนะนำให้ใช้โดยไม่จำเป็น เนื่องจากอาจเกิดหมายเลข IP address ซ้ำกันภายในเน็ตเวิร์กได้

ส่วนขยาย — แล้วเลข IP ทั้งโลกมาจากไหน (IANA → RIR → ISP)

ตำราไม่ได้อธิบายส่วนนี้ แต่เป็นคำถามที่ชื่อหัวข้อ "IP Address มาจากไหน" ชวนให้ถามต่อ — IP address ถูกแจกจ่ายเป็นลำดับชั้น 4 ระดับ คล้ายกับการแจกเลขบ้าน:

  1. IANA (Internet Assigned Numbers Authority) — ผู้ถือครองเลข IP ทั้งหมดของโลก แบ่งบล็อกใหญ่ให้ RIR
  2. RIR (Regional Internet Registry) — องค์กรระดับภูมิภาค 5 แห่ง เช่น APNIC (เอเชีย-แปซิฟิก ซึ่งไทยอยู่ในเขตนี้), ARIN, RIPE NCC, LACNIC, AFRINIC
  3. ISP (Internet Service Provider) — ผู้ให้บริการอินเทอร์เน็ตอย่าง AIS, True, 3BB ขอบล็อก IP จาก RIR มาแจกลูกค้า
  4. ผู้ใช้ปลายทาง — เร้าเตอร์ที่บ้าน/ที่ทำงานได้ IP สาธารณะจาก ISP แล้วแจก IP ส่วนตัว (เช่น 192.168.0.x) ให้เครื่องภายในด้วย DHCP อีกทอดหนึ่ง
จุดที่คนพลาดบ่อย

192.168.0.1 ในรูปที่ 5.1 ปรากฏในช่อง "IPv4 DNS servers" ไม่ใช่ "Default gateway" — ในเน็ตเวิร์กตามบ้านเร้าเตอร์ตัวเดียวกันมักทำทั้งสองหน้าที่ (เป็นทั้ง gateway และ DNS caching server) จึงเห็นเลขเดียวกัน แต่คนละบทบาทกัน อย่าตอบสลับ

5.2แอดเดรส (Address)

จากส่วนที่แล้วพบว่ามีการใช้งานแอดเดรสหลายประเภท แบ่งออกได้เป็น 4 ประเภท ได้แก่ Physical address, Logical address, Port address และ Specific address โดยแต่ละประเภทสัมพันธ์กับเลเยอร์ต่าง ๆ ในเน็ตเวิร์ก

1 Physical Address (MAC Address) — Layer 2

Physical Address หรือ Hardware Address คือหมายเลขประจำอุปกรณ์ที่ไม่สามารถเปลี่ยนแปลงได้ อุปกรณ์เน็ตเวิร์กทุกชนิดต้องมี Physical address · MAC Address เป็นตัวอย่างที่ใช้แพร่หลายที่สุด มีขนาด 6 ไบต์ (48 บิต) แสดงในเลขฐาน 16 เช่น 01:00:A2:12:25:BC

ประโยคสำคัญที่ออกสอบได้

MAC address (หรือ Data Link Control: DLC address) เป็นแอดเดรสของอินเทอร์เฟซ ไม่ใช่แอดเดรสของโนด — เพราะโนดหนึ่งอาจมีการ์ด LAN มากกว่าหนึ่งแผ่น เช่น เร้าเตอร์ที่มีหลายอินเทอร์เฟซ หรือ เซิร์ฟเวอร์ที่มีหลายการ์ด LAN เพื่อความสำรองในการเชื่อมต่อ

โครงสร้าง OUI + ส่วนที่ผู้ผลิตกำหนด

3 ไบต์แรกของ MAC address คือ Organizationally Unique Identifier (OUI) กำหนดโดย IEEE เพื่อระบุบริษัทผู้ผลิต ส่วน 3 ไบต์ที่เหลือกำหนดโดยบริษัทนั้น ๆ

OUIบริษัท
0x0001023Com
0x000142Cisco
0x0002B3Intel
0x0004ACIBM

ตารางที่ 5.1 — ตัวอย่างค่า OUI ที่ถูกกำหนดให้กับบริษัทต่าง ๆ

MAC address 3 ประเภท และ 2 บิตพิเศษ

MAC address แบ่งได้เป็น 3 ประเภท: Unicast, Multicast และ Broadcast โดยดูจากบิตพิเศษ 2 บิตในไบต์แรก

บิตค่าความหมาย
Group Bit0เป็น Unicast — ส่งถึงเครื่องเดียว
1เป็น Multicast หรือ Broadcast address
Universal/Local Bit (u/l bit)0เป็นแอดเดรสที่ IEEE กำหนดให้ผู้ผลิตตามปกติ
1MAC address นี้ถูกกำหนดขึ้นเพื่อจุดประสงค์เฉพาะ และไม่ใช้ปะปนกับ NIC ทั่วไป
รูปแบบของ MAC address
รูปที่ 5.2 จากหนังสือ — รูปแบบของ MAC address (OUI 3 ไบต์แรก + ผู้ผลิตกำหนด 3 ไบต์หลัง พร้อมตำแหน่ง Group Bit และ u/l bit)

2 Logical Address (IP Address) — Layer 3

Logical Address เป็นแอดเดรสสำหรับระบุตัวตนในเน็ตเวิร์ก สามารถเปลี่ยนแปลงได้ตามลักษณะเน็ตเวิร์กที่ใช้งาน ปัจจุบันนิยมใช้ IP address ใน 2 เวอร์ชัน

IPv4 — 32 บิต

เขียนเป็น 4 ชุดคั่นด้วยจุด เช่น 192.168.1.10 · การกำหนด Logical address ไม่สัมพันธ์กับ Physical address — เลข IP กับเลข MAC ไม่มีความเกี่ยวข้องกันเลย

IPv6 — 128 บิต

เนื่องจาก IPv4 address ใกล้หมดแล้ว จึงจำเป็นต้องใช้ IPv6 ที่รองรับอุปกรณ์ได้มากกว่า · ใน IPv6 มีการนำ Physical address มาช่วยในการกำหนดแอดเดรส

จุดที่คนพลาดบ่อย

MAC เปลี่ยนไม่ได้ / IP เปลี่ยนได้ — MAC ติดมากับการ์ดจากโรงงาน แต่ IP ขึ้นกับว่าเสียบอยู่กับเน็ตเวิร์กไหน · และข้อแตกต่างที่ต่อยอดไปบทที่ 4 คือ MAC มีความหมายเฉพาะภายในลิงก์เดียว จึงเปลี่ยนทุก hop ส่วน IP มีความหมายจากต้นทางถึงปลายทาง จึงไม่เปลี่ยน

3 Port Address — Layer 4

Logical address และ Physical address ระบุเฉพาะตำแหน่งของโฮสต์ในเน็ตเวิร์ก แต่ไม่ได้ระบุว่าข้อมูลควรส่งไปยังโปรโตคอลใด เนื่องจากโฮสต์หนึ่งเครื่องอาจใช้งานหลายโปรโตคอลพร้อมกัน จึงต้องมีหมายเลขพอร์ตระบุโปรโตคอลที่ถูกต้อง เช่น HTTP ใช้พอร์ต 80 และ FTP ใช้พอร์ต 21

พอร์ตโปรโตคอลรายละเอียด
20FTP, Data (TCP)File Transfer Protocol (data)
21FTP, Control (TCP)File Transfer Protocol (control)
23TELNET (TCP)Terminal Network
53Nameserver (UDP)Domain Name Server
69TFTP (UDP)Trivial File Transfer Protocol
80HTTP (TCP)Hypertext Transfer Protocol
111RPC (UDP)Remote Procedure Call
123NTP (UDP)Network Time Protocol

ตารางที่ 5.2 — ตัวอย่างหมายเลขพอร์ตที่ใช้งานทั่วไป

สังเกตคอลัมน์ TCP/UDP

ตารางนี้บอกด้วยว่าโปรโตคอลไหนวิ่งบน TCP หรือ UDP — ตัวที่ต้องเชื่อถือได้ (FTP, TELNET, HTTP) ใช้ TCP ส่วน ตัวที่เน้นเร็ว/ข้อความสั้น (DNS, TFTP, RPC, NTP) ใช้ UDP ข้อสอบชอบถามว่า "DNS ใช้พอร์ตอะไร โปรโตคอลอะไร" → ตอบ 53/UDP

4 Specific Address — Layer 7

Specific Address เป็นแอดเดรสที่เข้าใจและจำได้ง่าย เช่น www.kku.ac.th ซึ่งใช้แทน IP address ที่เป็นตัวเลข

แอดเดรสถูกใส่ลงไปตอนไหน — เทียบกับ Encapsulation

เมื่อผู้ใช้ส่งข้อมูลจาก Application Layer ข้อมูลจะถูกเรียกว่า Application Message พร้อมเพิ่ม Specific Address ในเฮดเดอร์ จากนั้น:

  1. ส่งไปยัง Transport Layer — เพิ่ม Port address กลายเป็น TCP Segment
  2. ต่อมาใน Network Layer — เพิ่ม Logical Address (IP address) กลายเป็น IP Packet
  3. และใน Data Link Layer — เพิ่ม Physical Address (MAC address) กลายเป็น Frame
  4. ก่อนส่งลงสู่ Physical Layer เพื่อแปลงเป็นสัญญาณ

เมื่อเฟรมถึงโนดปลายทาง กระบวนการถอดเฮดเดอร์จะเกิดขึ้นย้อนกลับ เพื่อส่งข้อมูลไปยังแอปพลิเคชันภาครับ (ดูรายละเอียดที่ บทที่ 4 หัวข้อ 4.4)

การใช้งานแอดเดรสในแต่ละเลเยอร์บนโมเดล TCP/IP
รูปที่ 5.3 จากหนังสือ — การใช้งานแอดเดรสในแต่ละเลเยอร์บนโมเดลมาตรฐาน TCP/IP (สังเกตขนาด: อีเทอร์เน็ตเฮดเดอร์ 14 ไบต์ · IP เฮดเดอร์ 20 ไบต์ · TCP เฮดเดอร์ 20 ไบต์ · ข้อมูล 46–1,500 ไบต์ · Trailer 4 ไบต์)

5.3การแปลงระหว่างแอดเดรส

เมื่อมีแอดเดรสหลายประเภทอยู่คนละเลเยอร์ ก็ต้องมีโปรโตคอลคอย "แปลง" ระหว่างกัน ตำรากล่าวถึง 3 ตัว:

โปรโตคอลแปลงจากไปเป็นประโยคจำ
DHCPไม่มี IP เลยIP address (+ subnet, gateway, DNS)"ขอเลขบ้านให้ฉันหน่อย"
DNSSpecific address (ชื่อเว็บ)Logical address (IP)"ชื่อนี้ IP อะไร"
ARPLogical address (IP)Physical address (MAC)"IP นี้ MAC อะไร"
ลำดับการทำงานจริงเวลาเปิดเว็บ 1 หน้า

DHCP (ได้ IP + DNS server ก่อน) → DNS (แปลงชื่อเว็บเป็น IP) → ARP (หา MAC ของ gateway) → ค่อยส่งข้อมูลจริง — จำลำดับ DHCP → DNS → ARP ไว้ แล้วจะไม่งงว่าตัวไหนมาก่อน

5.3.1Dynamic Host Configuration Protocol (DHCP)

การกำหนด IP address ด้วยตนเองอาจทำให้เกิดหมายเลขซ้ำได้ DHCP แก้ปัญหานี้โดยให้ DHCP เซิร์ฟเวอร์เป็นผู้กำหนด IP address แทนผู้ดูแลระบบ

IP address ที่ได้รับจาก DHCP จะมีเวลาการใช้งานที่กำหนด เรียกว่า Lease Time · หากโฮสต์ไม่ต่ออายุ (Renew) ก่อนหมดเวลา IP address นั้นจะถูกนำกลับไปกำหนดให้โฮสต์อื่นต่อไป

ขั้นตอนการได้มาซึ่ง IP address ตามรูปที่ 5.4 มี 4 ข้อความ จำง่าย ๆ ว่า DORA:

Discover → Offer → Request → Ack DORA — ลำดับ 4 ข้อความของ DHCP
#ข้อความทิศทางชนิดการส่งความหมาย
1DHCP DISCOVERไคลเอนต์ → เซิร์ฟเวอร์BroadcastIP Address Request — "มี DHCP เซิร์ฟเวอร์อยู่ไหม ขอ IP หน่อย"
2DHCP OFFERเซิร์ฟเวอร์ → ไคลเอนต์Broadcast / UnicastIP Address Offer — "เอาเลขนี้ไปไหม พร้อม subnet, gateway, DNS และ lease time"
3DHCP REQUESTไคลเอนต์ → เซิร์ฟเวอร์BroadcastIP Address Selection — "ตกลง ฉันเลือกเลขนี้" (บอกเซิร์ฟเวอร์ตัวอื่นด้วยว่าไม่เอาของเขา)
4DHCP ACKเซิร์ฟเวอร์ → ไคลเอนต์Broadcast / UnicastIP Address Acknowledgement — "ยืนยัน ใช้ได้เลย" พร้อมเริ่มนับ Lease Time
ส่วนขยาย — ตัวเลขในภาพเคลื่อนไหวมาจากไหน

ชื่อและลำดับ 4 ข้อความมาจากรูปที่ 5.4 ในตำรา ส่วนรายละเอียด 0.0.0.0, 255.255.255.255, MAC broadcast ff:ff:ff:ff:ff:ff และพอร์ต UDP 68 (ไคลเอนต์) / 67 (เซิร์ฟเวอร์) เป็นมาตรฐานของ DHCP ที่ไม่ได้ระบุในตำราเล่มนี้ ใส่ไว้เพราะเห็นตรง ๆ ใน Wireshark ตอนทำแลปและตอนสอบข้อ Q3

จุดที่คนพลาดบ่อย
  • ทำไม DISCOVER ต้อง broadcast? เพราะไคลเอนต์ยังไม่มี IP ของตัวเองและไม่รู้ IP ของเซิร์ฟเวอร์ จึงตะโกนถามทั้งวงเดียวเท่านั้นที่ทำได้
  • ทำไมต้องมี REQUEST ในเมื่อ OFFER ก็บอก IP มาแล้ว? เพราะในวงอาจมี DHCP เซิร์ฟเวอร์หลายตัวส่ง OFFER มาพร้อมกัน REQUEST คือการประกาศว่า "เลือกของใคร" เพื่อให้ตัวที่ไม่ถูกเลือกปล่อย IP ที่จองไว้คืน pool
  • Lease Time ไม่ใช่ "เวลาที่ IP หมดอายุทันที" — ปกติโฮสต์จะขอ Renew ตั้งแต่ผ่านไปครึ่งทาง ถ้า Renew สำเร็จก็ใช้เลขเดิมต่อได้เรื่อย ๆ
ขั้นตอนการได้มาซึ่ง IP address จาก DHCP
รูปที่ 5.4 จากหนังสือ — ขั้นตอนการได้มาซึ่ง IP address จาก DHCP (DISCOVER → OFFER → REQUEST → ACK)

5.3.2Domain Name System (DNS)

DNS เซิร์ฟเวอร์ทำหน้าที่แปลงชื่อ hostname เป็น IP address เพื่อให้เน็ตเวิร์กสามารถระบุปลายทางได้

DNS ทำงานแบบลำดับชั้น (Hierarchical) โดยเครื่องจะสอบถาม Local DNS เซิร์ฟเวอร์ก่อน หากไม่ทราบจะส่งต่อไปยังเซิร์ฟเวอร์ระดับสูงขึ้น จนกว่าจะได้ IP address ที่ต้องการ · ISP มักมี DNS Caching เซิร์ฟเวอร์ของตนเอง และเร้าเตอร์ตามบ้านก็มักทำหน้าที่เป็น Caching เซิร์ฟเวอร์ด้วย

ตรวจสอบด้วย nslookup

สามารถใช้คำสั่ง nslookup ตรวจสอบ DNS บน Windows และ Linux ได้ดังนี้:

nslookup บน Windows
C:\Users\CK>nslookup www.facebook.com
Server:  UnKnown
Address: 10.101.102.1

Non-authoritative answer:
Name:      star-mini.c10r.facebook.com
Addresses: 2a03:2880:f10c:83:face:b00c:0:25de
           157.240.7.35
Aliases:   www.facebook.com
บรรทัดอ่านยังไง
Server / Address: 10.101.102.1คือ DNS เซิร์ฟเวอร์ที่เครื่องนี้ใช้อยู่ (ตัวที่ถูกถาม) ไม่ใช่ IP ของ facebook
Non-authoritative answerคำตอบนี้มาจาก cache ไม่ได้มาจากเซิร์ฟเวอร์เจ้าของโดเมนโดยตรง — เป็นหลักฐานว่า DNS มีการแคชจริง
Name: star-mini.c10r.facebook.comชื่อจริง (canonical name) ของเครื่องปลายทาง
Addresses: 2a03:… / 157.240.7.35บรรทัดแรกคือ IPv6 (128 บิต) บรรทัดที่สองคือ IPv4 (32 บิต) — เว็บใหญ่ ๆ มีทั้งคู่
Aliases: www.facebook.comชื่อที่เราพิมพ์เข้าไปเป็นแค่ ชื่อเล่น (alias / CNAME) ของชื่อจริงข้างบน
ส่วนขยาย — Recursive กับ Iterative และลำดับชั้น root → TLD → authoritative

ตำราระบุแค่ว่า DNS "ทำงานแบบลำดับชั้น ถามตัวล่างก่อน ไม่รู้ก็ส่งต่อขึ้นไป" ส่วนคำศัพท์ข้างล่างนี้เป็นรายละเอียดมาตรฐานที่เพิ่มเข้ามาให้ตรงกับที่เห็นในแลป Wireshark:

  • Recursive query — ไคลเอนต์ถาม Local DNS แล้วรอคำตอบสุดท้ายอย่างเดียว ("ไปหามาให้ที ฉันรอ")
  • Iterative query — Local DNS ไปถามทีละระดับเอง แต่ละระดับตอบแค่ว่า "ไปถามต่อที่ไหน" ไม่ได้ตอบ IP สุดท้าย
  • ลำดับชั้น: Root (รู้ว่า .com อยู่ที่ไหน) → TLD .com (รู้ว่า facebook.com อยู่ที่ไหน) → Authoritative ของ facebook.com (รู้ IP จริงของ www)
  • คำตอบที่ได้จะถูกเก็บ cache ตาม TTL ครั้งต่อไปจึงตอบได้ทันทีและขึ้นว่า Non-authoritative answer
จุดที่คนพลาดบ่อย

DNS ไม่ได้ "ส่งข้อมูลเว็บ" ให้เรา — มันแค่ตอบว่า IP คืออะไร แล้วจบหน้าที่ · หลังจากนั้นเบราว์เซอร์ถึงจะเปิดการเชื่อมต่อ TCP ไปที่ IP นั้นพอร์ต 80/443 เอง (ดูรูปที่ 5.5 จะเห็นว่าลูกศร HTTP Request/Response ไปที่ SERVER คนละตัวกับ DNS SERVER)

การค้นหา IP address ผ่าน DNS เซิร์ฟเวอร์
รูปที่ 5.5 จากหนังสือ — การค้นหา IP address ผ่าน DNS เซิร์ฟเวอร์ (ถาม DNS ก่อน แล้วค่อยยิง HTTP Request ไปที่เว็บเซิร์ฟเวอร์)

5.3.3Address Resolution Protocol (ARP)

แม้จะทราบ IP address แล้ว การสื่อสารจริงในระดับ Data Link Layer ยังต้องทราบ Physical Address (MAC address) ของปลายทางด้วย · ARP ทำหน้าที่แปลง IP address ที่ทราบให้เป็น MAC address

สามารถตรวจสอบตาราง ARP ภายในระบบปฏิบัติการได้ด้วยคำสั่ง arp -a:

ตาราง ARP บน Windows
C:\Users\chatchai>arp -a

  Internet Address    Physical Address      Type
  192.168.0.1         18-0f-76-cb-88-bc     dynamic
  192.168.0.50        58-7a-62-e7-73-4f     dynamic
  192.168.0.52        18-30-0c-39-b6-2c     dynamic
  192.168.0.255       ff-ff-ff-ff-ff-ff     static
  224.0.0.22          01-00-5e-00-00-16     static
แถวอ่านยังไง
192.168.0.1 · dynamicเร้าเตอร์/gateway — เรียนรู้มาจากการทำ ARP จริง จึงเป็น dynamic และจะหมดอายุถ้าไม่ได้ใช้
192.168.0.50 / .52 · dynamicเครื่องอื่นในวงเดียวกันที่เราเคยคุยด้วย
192.168.0.255 → ff-ff-ff-ff-ff-ff · staticBroadcast address ของวง — MAC เป็น ff ทั้ง 6 ไบต์ ระบบใส่ให้เองจึงเป็น static ไม่ต้อง ARP
224.0.0.22 → 01-00-5e-00-00-16 · staticMulticast — สังเกตว่าขึ้นต้นด้วย 01 ซึ่งเลขคี่ แปลว่า Group Bit = 1 ตรงกับรูปที่ 5.2 พอดี
เชื่อมกับบทอื่น

บทที่ 5 กล่าวถึง ARP แค่ว่า "แปลง IP เป็น MAC" · รายละเอียดรูปแบบข้อความ ARP, ขั้นตอนการทำงานทีละขั้น และ RARP อยู่ใน บทที่ 17 ซึ่งเป็นบทที่ลงลึกเรื่องนี้โดยเฉพาะ

ความสัมพันธ์ของแอดเดรสในแต่ละเลเยอร์บนโมเดล TCP/IP
รูปที่ 5.6 จากหนังสือ — ความสัมพันธ์ของแอดเดรสในแต่ละเลเยอร์บนโมเดลมาตรฐาน TCP/IP (Message → Segment มี Port → Packet มี IP → Frame มี MAC → บิต)

ซ้อมข้อสอบ Q3 — ตอบ 3 บรรทัด 6 คะแนน

โจทย์ Q3 เปิดหน้าจอ Wireshark มาให้ แล้วถามว่าแอดเดรสแต่ละเลเยอร์คืออะไร · วิธีทำที่เร็วที่สุดคือไล่จากล่างขึ้นบนตามลำดับที่ Wireshark แสดง แล้วเขียน 3 บรรทัด:

เทมเพลตคำตอบ (แทนค่าจากภาพในข้อสอบ)

  1. Layer 2 (Data Link) — Physical address / MAC address: ต้นทาง 18:5e:0f:ba:c7:0f, ปลายทาง 18:0f:76:cb:88:bc · อยู่ใน Ethernet header ขนาด 6 ไบต์ต่อฝั่ง
  2. Layer 3 (Network) — Logical address / IP address: ต้นทาง 192.168.0.55, ปลายทาง 157.240.7.35 · อยู่ใน IP header ขนาด 4 ไบต์ต่อฝั่ง (IPv4 = 32 บิต)
  3. Layer 4 (Transport) — Port address: ต้นทาง 51244, ปลายทาง 80 (HTTP) · อยู่ใน TCP header
เผื่อโจทย์ถามต่อ — คำถามพ่วงที่ออกบ่อยและคำตอบสั้น ๆ
  • "ทำไม MAC ปลายทางไม่ใช่ของ facebook?" → เพราะ MAC ระบุได้แค่อุปกรณ์ในลิงก์เดียวกัน ปลายทางอยู่คนละเน็ตเวิร์ก เฟรมจึงต้องส่งให้ default gateway ก่อน MAC ปลายทางจึงเป็นของเร้าเตอร์
  • "3 ไบต์แรกของ MAC บอกอะไร?" → OUI กำหนดโดย IEEE ใช้ระบุบริษัทผู้ผลิต · 3 ไบต์หลังผู้ผลิตกำหนดเอง
  • "MAC address ขนาดกี่บิต? IP ขนาดกี่บิต?" → MAC = 48 บิต (6 ไบต์) · IPv4 = 32 บิต · IPv6 = 128 บิต
  • "พอร์ตต้นทางทำไมเป็นเลขแปลก ๆ อย่าง 51244?" → เป็นพอร์ตชั่วคราวที่ระบบปฏิบัติการสุ่มให้โปรแกรมฝั่งไคลเอนต์ · ส่วนพอร์ตปลายทางต่างหากที่บอกว่าเป็นบริการอะไร (80 = HTTP)
  • "MAC เป็นแอดเดรสของอะไร?" → ของ อินเทอร์เฟซ ไม่ใช่ของโนด — เร้าเตอร์ 1 ตัวมีหลาย MAC

เช็คความเข้าใจ

MAC address มีขนาดเท่าไร และ 3 ไบต์แรกเรียกว่าอะไร?
MAC มีขนาด 6 ไบต์ = 48 บิต แสดงเป็นเลขฐาน 16 · 3 ไบต์แรกคือ OUI (Organizationally Unique Identifier) กำหนดโดย IEEE เพื่อระบุบริษัทผู้ผลิต ส่วน 3 ไบต์ที่เหลือบริษัทนั้นกำหนดเอง
ข้อความ DHCP DISCOVER ถูกส่งแบบใด และเพราะเหตุใด?
ตอนเริ่ม ไคลเอนต์ยังไม่มี IP ของตัวเอง (ใช้ 0.0.0.0) และไม่รู้ว่า DHCP เซิร์ฟเวอร์อยู่ IP อะไร วิธีเดียวที่ทำได้คือ broadcast ไปทั้งวง (255.255.255.255 / MAC ff:ff:ff:ff:ff:ff)
โฮสต์ทราบ IP ปลายทางแล้ว แต่ยังส่งเฟรมไม่ได้เพราะขาดอะไร และใช้โปรโตคอลใดหามา?
ตำราระบุตรง ๆ ว่า "แม้จะทราบ IP address แล้ว การสื่อสารจริงในระดับ Data Link Layer ยังต้องทราบ Physical Address (MAC address) ของปลายทางด้วย" — ARP คือตัวที่แปลง IP ที่ทราบให้เป็น MAC
ในผลลัพธ์ arp -a แถว 224.0.0.22 → 01-00-5e-00-00-16 เป็น MAC ประเภทใด ดูจากอะไร?
ตามรูปที่ 5.2 ถ้า Group Bit เป็น 1 แสดงว่าเป็น Multicast หรือ Broadcast address · ไบต์แรก 0x01 มีบิตล่างสุดเป็น 1 (เลขคี่) จึงเป็น Group address และเนื่องจากไม่ได้เป็น ff ทั้งหมด จึงเป็น Multicast ไม่ใช่ Broadcast
บรรทัด Non-authoritative answer ใน nslookup หมายความว่าอะไร?
DNS เก็บ cache ไว้เพื่อความเร็ว — เมื่อคำตอบมาจาก cache ของ Local DNS/ISP ไม่ได้มาจาก authoritative server ของโดเมนนั้นโดยตรง จะขึ้นว่า Non-authoritative · ตำราระบุว่า ISP และเร้าเตอร์ตามบ้านมักทำหน้าที่เป็น Caching เซิร์ฟเวอร์
Logical address ต่างจาก Physical address อย่างไร ตามตำรา?
Physical address คือ "หมายเลขประจำอุปกรณ์ที่ไม่สามารถเปลี่ยนแปลงได้" ส่วน Logical address "สามารถเปลี่ยนแปลงได้ตามลักษณะเน็ตเวิร์กที่ใช้งาน" · และใน IPv4 การกำหนด Logical address ไม่สัมพันธ์กับ Physical address (ต่างจาก IPv6 ที่นำ Physical address มาช่วยกำหนด)
เก็บก่อนออกจากบทนี้
  • แอดเดรส 4 ประเภท: Physical (MAC, L2) · Logical (IP, L3) · Port (L4) · Specific (ชื่อเว็บ, L7) — ตอบ Q3 ได้ทั้งข้อ
  • MAC = 6 ไบต์ / 48 บิต · 3 ไบต์แรก = OUI จาก IEEE · 3 ไบต์หลัง = ผู้ผลิตกำหนด · Group Bit = 1 → Multicast/Broadcast
  • MAC เป็นแอดเดรสของอินเทอร์เฟซ ไม่ใช่ของโนด (เร้าเตอร์มีหลาย MAC)
  • IPv4 = 32 บิต · IPv6 = 128 บิต · IPv4 ไม่สัมพันธ์กับ MAC แต่ IPv6 นำ MAC มาช่วยกำหนด
  • DHCP = DORA (Discover → Offer → Request → Ack) · IP ที่ได้มี Lease Time ถ้าไม่ Renew จะถูกเอาคืน
  • DNS แปลงชื่อ → IP · ทำงานแบบลำดับชั้น · 53/UDP · Non-authoritative = มาจาก cache
  • ARP แปลง IP → MAC · ตรวจด้วย arp -a · รายละเอียดเต็มอยู่ บทที่ 17
  • ลำดับตอนเปิดเว็บ: DHCP → DNS → ARP → ส่งข้อมูลจริง