TCP/IP Layer 2 of 4

Internet Layer

หัวใจของ Internet — routing (Distance Vector, Link State) และ IP protocol (addressing, fragmentation, CIDR, ARP/DHCP/ICMP)

📚
เทียบเท่าใน OSI: Network Layerอ่านฉบับเต็ม →
🧭 Internet Layer อยู่ใกล้กับ OSI Network Layer ที่สุด แต่ไม่ตรงกันแบบ 1:1 หน้านี้จึงเน้นสิ่งที่ TCP/IP เลือกจริง ได้แก่ datagram, best-effort IP และเครือข่ายหลายชนิดที่เชื่อมกันได้ ส่วน Virtual Circuit และอัลกอริทึมเต็มอ่านต่อจากหน้า OSI

1Switching & Forwarding

DatagramVirtual Circuit
Addressที่อยู่ปลายทางสมบูรณ์ในทุก packetVCI สั้น ๆ (locally significant เท่านั้น)
Setupไม่ต้องต้อง (1 RTT ก่อนส่งข้อมูล)
เส้นทางแต่ละ packet อาจต่างกันคงที่ตลอด connection

IP ที่ใช้จริงบน Internet เป็นแบบ datagram ส่วน ATM เป็นตัวอย่างของเครือข่ายแบบ Virtual Circuit ที่ใช้ cell ขนาด 53 byte ตัวอย่างการเปลี่ยน VCI ในแต่ละช่วงอ่านต่อได้ที่ หน้า OSI Network Layer

2Routing: Distance Vector vs Link State

Distance VectorLink State
ส่งอะไรvector ระยะทางทั้งหมดที่รู้เฉพาะ link ที่เชื่อมตรงกับตัวเอง (LSP)
ส่งให้ใครเพื่อนบ้านเท่านั้นทุกโหนด (reliable flooding)
ปัญหาหลักcount-to-infinityต้องคำนวณ Dijkstra ที่แต่ละโหนด (ใช้ CPU มากกว่า)
วิธีแก้ปัญหาหลักsplit horizon (+poison reverse)
Dijkstra's Algorithm (สรุปย่อ)
M={s}; while(N≠M): เพิ่มโหนด w ที่ C(w) น้อยสุดเข้า M; update C(n)=MIN(C(n),C(w)+l(w,n))

ตัวอย่าง count-to-infinity แบบเต็ม, forward search algorithm, OSPF, ad hoc routing → ดูเต็มที่หน้า OSI Network Layer

3IP Protocol: หัวใจของนาฬิกาทราย

IP Service Model
Connectionless + Best-effort (unreliable) — reliability เป็นหน้าที่ของ Transport Layer ชั้นบน ไม่ใช่ IP
Field สำคัญความหมาย
TTLกัน loop, ลดทุก hop
Protocoldemux key (TCP=6, UDP=17)
Ident/Flags/Offsetใช้ตอน fragmentation
Fragmentation
เกิดที่ router เมื่อ MTU เล็กกว่า datagram — reassembly เกิดที่ host ปลายทางเท่านั้น

4CIDR — แก้ปัญหา Address และ Routing Table

ตัวอย่าง Efficiency
2 โฮสต์ขอ class C → 2/255 ≈ 0.78%; 256 โฮสต์ขอ class B → 256/65535 ≈ 0.39%

CIDR แจก address เป็นบล็อกต่อเนื่อง แล้ว aggregate เป็น prefix เดียว เช่น 192.4.16/20 — เมื่อ prefix ทับซ้อน ใช้ longest prefix match

5โปรโตคอลเสริม: ARP, DHCP, ICMP

โปรโตคอลหน้าที่
ARPแปล IP↔MAC ผ่าน broadcast request/response
DHCPแจก IP config อัตโนมัติผ่าน DHCPDISCOVER + relay agent
ICMPรายงาน error กลับ source (unreachable, TTL=0, redirect)

จุดต่างสำคัญ: OSI เสนอทางเลือก แต่ TCP/IP เลือกแกนกลางที่เล็ก

OSI Network Layer อธิบายได้ทั้งบริการแบบ connectionless และ connection-oriented ส่วน Internet Layer ของ TCP/IP วาง IP datagram แบบ connectionless และ best-effort เป็นแกนร่วม Router ไม่ต้องสร้าง connection ของแต่ละ application ก่อนส่ง packet และไม่รับประกันว่าทุก packet จะถึง ปลายทางจะได้รับตามลำดับ หรือจะเดินเส้นทางเดียวกัน

อุปมา: ภาษากลางที่ตั้งใจมีคำไม่มาก
หากทุกจังหวัดมีระบบขนส่งของตนเอง การสร้างภาษากลางที่บังคับรายละเอียดทุกอย่างจะทำให้เชื่อมกันยาก IP เลือกภาษากลางที่เรียบง่ายว่า “นี่คือที่อยู่ปลายทางและข้อมูลหนึ่งก้อน ช่วยพยายามส่งต่อให้ที” ความสามารถเพิ่มเติม เช่น ความน่าเชื่อถือ session หรือรูปแบบข้อมูล จึงไปอยู่ข้างบนหรือข้างขอบระบบ

Narrow Waist: ความเรียบง่ายตรงกลางเปิดพื้นที่ให้ความหลากหลาย

ด้านล่าง IP มี Ethernet, Wi-Fi, fiber, cellular และ tunnel ได้หลายแบบ ด้านบน IP มี TCP, UDP, QUIC, HTTP, DNS และ application อีกจำนวนมาก สิ่งที่ทุกฝ่ายต้องตกลงร่วมกันมีเพียง Internet Protocol ตรงกลาง รูปร่างนี้จึงถูกเรียกว่า hourglass architecture หรือสถาปัตยกรรมนาฬิกาทราย

คำถามOSI Network LayerTCP/IP Internet Layer
บริการที่ model รองรับอธิบายได้ทั้ง datagram และ virtual circuitแกนหลักคือ IP datagram
ความน่าเชื่อถือขึ้นกับบริการ Network ที่ออกแบบIP ให้ best-effort แล้วให้ปลายทางเสริมเอง
การเชื่อมเครือข่ายเป็นแบบจำลองทั่วไปออกแบบจากโจทย์ internetworking ของเครือข่ายต่างชนิด
การใช้งานจริงแบ่งหน้าที่เป็นชั้นอย่างเป็นระเบียบมี protocol สนับสนุนที่คร่อมขอบเขต เช่น ARP และ ICMP

Forwarding, Routing และ Control Plane ต้องแยกให้ออก

Forwarding คือการตัดสินใจต่อ packet ว่าเข้ามาแล้วควรออก interface ใด ทำงานเร็วจาก forwarding table ส่วน routing คือกระบวนการสร้างหรือปรับข้อมูลในตารางนั้น โดยเรียนรู้ topology, policy และเส้นทาง การเปรียบเทียบเหมือนเจ้าหน้าที่คัดพัสดุใช้ป้ายหน้ากล่องทุกวินาที ขณะที่ฝ่ายวางแผนเส้นทางตัดสินว่ารถสายใดควรวิ่งไปจังหวัดใด

OSI ช่วยจัดหมวดว่าเป็นหน้าที่ Network Layer แต่ TCP/IP ที่ใช้งานจริงแยก data plane ออกจาก control plane ชัดขึ้น Router อาจส่ง packet ด้วย hardware ขณะที่ routing protocol ทำงานใน software และนโยบายระหว่างองค์กรอาจสำคัญกว่าระยะทางสั้นที่สุด

Routing ภายในองค์กรกับระหว่างองค์กรไม่เหมือนกัน

Distance Vector และ Link State ช่วยเข้าใจการหาเส้นทางภายในระบบบริหารเดียว เช่น RIP หรือ OSPF แต่ Internet ทั้งโลกประกอบด้วย Autonomous System (AS) หลายแห่ง การเลือกเส้นทางระหว่าง AS ใช้ BGP และมี policy เข้ามาเกี่ยวข้อง เส้นทางที่เลือกจึงไม่จำเป็นต้องสั้นที่สุดเชิงจำนวน hop แต่อาจขึ้นกับธุรกิจ ความสัมพันธ์ระหว่างผู้ให้บริการ และข้อกำหนดการประกาศเส้นทาง

ความต่างที่สำคัญ
Dijkstra ตอบว่าเส้นทางใดมี cost ต่ำสุดบนแผนที่ที่รู้ ส่วน BGP ต้องตอบเพิ่มว่าเส้นทางใดอนุญาตให้ประกาศ รับ หรือส่งผ่านได้ โลกจริงไม่ได้มี metric เดียว และ router ไม่ได้ทำข้อสอบ shortest path อยู่ตลอดเวลา

IPv4 กับ IPv6 ไม่ได้ต่างกันเพียงจำนวน bit ของ Address

IPv6 ขยาย address เป็น 128 bit ลดภาระบางส่วนของ header และเปลี่ยนแนวทาง fragmentation Router IPv4 อาจแบ่ง datagram เมื่อ link ถัดไปมี MTU เล็กกว่า หากไม่ตั้ง DF แต่ router IPv6 ไม่ทำ fragmentation ให้ระหว่างทาง ต้นทางต้องปรับขนาด packet และอาศัย Path MTU Discovery แนวทางนี้ย้ายความซับซ้อนออกจาก router กลางไปยังปลายทาง

IPv6 ยังใช้ Neighbor Discovery ผ่าน ICMPv6 แทน ARP และให้ความสำคัญกับ multicast มากกว่า broadcast การกล่าวว่า IPv6 คือ “IPv4 ที่ address ยาวขึ้น” จึงเหมือนบอกว่าบ้านใหม่ต่างจากบ้านเก่าเพียงเลขที่บ้าน ทั้งที่ระบบประตู ทางเดิน และการติดต่อเพื่อนบ้านก็เปลี่ยนด้วย

NAT: ใช้งานได้จริง แต่ทำให้ภาพ End-to-End เปลี่ยนไป

NAT แปลง private address และ port ภายในให้ใช้ public address ร่วมกัน ช่วยประหยัด IPv4 address และซ่อนโครงสร้างภายในบางส่วน แต่ทำให้ host ภายนอกเริ่ม connection เข้าหาเครื่องภายในได้ยากขึ้น Protocol ที่ฝัง address ไว้ใน payload อาจต้องมีตัวช่วย และ P2P ต้องใช้ NAT traversal หรือ relay

NAT จึงเป็นตัวอย่างว่าระบบจริงอาจเพิ่มกลไกที่ไม่เข้ากับภาพแบ่งชั้นอย่างสะอาด เพื่อแก้ข้อจำกัดที่เกิดขึ้นจริง มันไม่ได้เป็น firewall โดยอัตโนมัติ แม้ stateful NAT มักมีพฤติกรรมบล็อก traffic ที่ไม่มี mapping การควบคุมความปลอดภัยยังควรเป็นหน้าที่ของ policy และ firewall ที่ระบุชัด

ICMP เป็นส่วนของการทำงาน IP ไม่ใช่ Transport ของข้อมูลผู้ใช้

ICMP รายงานเงื่อนไข เช่น destination unreachable, time exceeded และข้อมูลสำหรับวินิจฉัย ping ใช้ ICMP Echo ส่วน traceroute อาศัยการหมดอายุของ TTL หรือ Hop Limit เพื่อเห็น router ตามทาง การได้รับ ICMP error ไม่ได้แปลว่า ICMP “แก้” packet เดิม มันเพียงส่งข่าวกลับให้ต้นทางหรือเครื่องมือปรับพฤติกรรม

แก่นของ Internet Layer
ความสำเร็จของ TCP/IP ไม่ได้มาจาก IP ทำทุกอย่าง แต่มาจาก IP ทำสิ่งจำเป็นตรงกลางให้น้อยพอที่เครือข่ายข้างล่างและ application ข้างบนจะเปลี่ยนได้อย่างอิสระ Best-effort จึงดูเหมือนข้อจำกัด แต่ในเชิงสถาปัตยกรรมกลับเป็นพื้นที่ให้ระบบอื่นสร้างบริการที่ต่างกันได้

หนึ่ง Packet ถูกตัดสินใจใหม่ทุก Hop

ใน datagram network router แต่ละตัวใช้ destination prefix เลือก next hop จากข้อมูลของตนเอง Packet สองก้อนใน flow เดียวกันจึงอาจพบ queue ต่างกันหรือเดินคนละทางเมื่อ routing เปลี่ยน IP ไม่ได้ให้สัญญาว่าจะรักษาเส้นทางเดิม นี่ต่างจาก virtual circuit ที่สร้าง state ของเส้นทางไว้ก่อนส่งข้อมูล

ความเป็นอิสระของแต่ละ packet ช่วยให้ network ปรับเส้นทางเมื่อบางส่วนล้ม แต่ทำให้ปลายทางต้องรับมือ packet สลับลำดับ และทำให้การจองทรัพยากรต่อ connection ไม่ได้เกิดขึ้นโดยธรรมชาติ ความยืดหยุ่นกับความแน่นอนจึงเป็นของแลกกัน ไม่ใช่ว่า datagram ดีกว่าในทุกมิติ

Address, Route และ Name เป็นคนละสิ่ง

สิ่งที่ใช้ตอบคำถามตัวอย่าง
DNS nameบริการหรือ host เรียกชื่อว่าอะไรwww.example.com
IP addressInterface อยู่ตรงไหนในโครงสร้าง Internet192.0.2.10
PrefixAddress กลุ่มใดใช้เส้นทางร่วมกัน192.0.2.0/24
Routeหากต้องไป prefix นี้ ควรส่งให้ next hop หรือ interface ใดdefault route หรือ route ที่เฉพาะกว่า

OSI ช่วยวาง Network address ไว้เป็นหมวด แต่ TCP/IP ทำให้เห็นการใช้งานจริงว่า address มีโครงสร้างสำหรับ aggregation ไม่ใช่เลขประจำตัวแบบสุ่ม และชื่อสามารถชี้ไปหลาย address หรือเปลี่ยน address ได้โดยไม่ต้องเปลี่ยนสิ่งที่ผู้ใช้พิมพ์

Longest Prefix Match ไม่ใช่การเลือกเส้นทางที่เขียนยาวที่สุด

Router เลือก route ที่ prefix ตรงกับ destination มากที่สุด เช่น route /24 ชนะ /16 สำหรับ address ที่อยู่ในทั้งสองกลุ่ม เพราะ /24 ระบุพื้นที่แคบและเฉพาะกว่า Default route /0 จึงเป็นทางเลือกสุดท้ายเมื่อไม่มีข้อมูลที่เจาะจงกว่า

อุปมา: ป้ายส่งจดหมาย
ป้าย “ส่งภาคกลาง” ใช้ได้กับหลายจังหวัด แต่ถ้ามีป้าย “ส่งอาคารวิทยาศาสตร์ มจธ.” สำหรับจดหมายฉบับเดียวกัน เราควรใช้ป้ายที่เฉพาะกว่า Longest prefix match ใช้หลักนี้ในระดับ bit ไม่ได้เทียบความยาวของข้อความที่มนุษย์อ่าน

Best-Effort ไม่ได้แปลว่า Router ทำงานแบบไม่รับผิดชอบ

Router ยังตรวจ header เลือกเส้นทาง จัด queue ลด TTL และอาจรายงานปัญหาผ่าน ICMP คำว่า best-effort หมายถึงข้อตกลงของบริการ IP ไม่รับประกันผลสุดท้าย ไม่ได้หมายถึงระบบจะส่งข้อมูลแบบตามมีตามเกิด เราจึงสร้าง router ประสิทธิภาพสูงได้ แม้บริการกลางจะไม่รับประกันผลจากต้นทางถึงปลายทาง

6สรุปและขั้นตอนถัดไป

  • OSI Network Layer อธิบายบริการได้หลายแบบ ส่วน TCP/IP เลือก IP datagram แบบ connectionless และ best-effort เป็นแกนกลาง
  • Narrow waist ทำให้เครือข่ายข้างล่างและ application ข้างบนเปลี่ยนได้โดยยังใช้ IP ร่วมกัน
  • Distance Vector converge ช้ากับข่าวร้าย (count-to-infinity); Link State ใช้ flooding+Dijkstra
  • Forwarding ส่ง packet ตามตาราง ส่วน routing สร้างตารางจาก topology และ policy
  • CIDR ใช้ aggregation และ longest prefix match เพื่อจัด address กับ routing table
  • IPv6, NAT, ARP และ ICMP แสดงรายละเอียดจริงที่ไม่ได้วางตัวเรียบร้อยตามกล่องของ model เสมอไป
คำถามซ้อมสอบ
ดูชุดคำถามซ้อมสอบแบบละเอียดที่หน้า OSI Network Layer — ครอบคลุมเนื้อหาเดียวกับหน้านี้ทั้งหมด