Internet Layer
หัวใจของ Internet — routing (Distance Vector, Link State) และ IP protocol (addressing, fragmentation, CIDR, ARP/DHCP/ICMP)
1Switching & Forwarding
| Datagram | Virtual Circuit | |
|---|---|---|
| Address | ที่อยู่ปลายทางสมบูรณ์ในทุก packet | VCI สั้น ๆ (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 Vector | Link State | |
|---|---|---|
| ส่งอะไร | vector ระยะทางทั้งหมดที่รู้ | เฉพาะ link ที่เชื่อมตรงกับตัวเอง (LSP) |
| ส่งให้ใคร | เพื่อนบ้านเท่านั้น | ทุกโหนด (reliable flooding) |
| ปัญหาหลัก | count-to-infinity | ต้องคำนวณ Dijkstra ที่แต่ละโหนด (ใช้ CPU มากกว่า) |
| วิธีแก้ปัญหาหลัก | split horizon (+poison reverse) | — |
ตัวอย่าง count-to-infinity แบบเต็ม, forward search algorithm, OSPF, ad hoc routing → ดูเต็มที่หน้า OSI Network Layer
3IP Protocol: หัวใจของนาฬิกาทราย
| Field สำคัญ | ความหมาย |
|---|---|
| TTL | กัน loop, ลดทุก hop |
| Protocol | demux key (TCP=6, UDP=17) |
| Ident/Flags/Offset | ใช้ตอน fragmentation |
4CIDR — แก้ปัญหา Address และ Routing Table
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 จะถึง ปลายทางจะได้รับตามลำดับ หรือจะเดินเส้นทางเดียวกัน
Narrow Waist: ความเรียบง่ายตรงกลางเปิดพื้นที่ให้ความหลากหลาย
ด้านล่าง IP มี Ethernet, Wi-Fi, fiber, cellular และ tunnel ได้หลายแบบ ด้านบน IP มี TCP, UDP, QUIC, HTTP, DNS และ application อีกจำนวนมาก สิ่งที่ทุกฝ่ายต้องตกลงร่วมกันมีเพียง Internet Protocol ตรงกลาง รูปร่างนี้จึงถูกเรียกว่า hourglass architecture หรือสถาปัตยกรรมนาฬิกาทราย
| คำถาม | OSI Network Layer | TCP/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 แต่อาจขึ้นกับธุรกิจ ความสัมพันธ์ระหว่างผู้ให้บริการ และข้อกำหนดการประกาศเส้นทาง
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 เดิม มันเพียงส่งข่าวกลับให้ต้นทางหรือเครื่องมือปรับพฤติกรรม
หนึ่ง 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 address | Interface อยู่ตรงไหนในโครงสร้าง Internet | 192.0.2.10 |
| Prefix | Address กลุ่มใดใช้เส้นทางร่วมกัน | 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 จึงเป็นทางเลือกสุดท้ายเมื่อไม่มีข้อมูลที่เจาะจงกว่า
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 เสมอไป