เรียนรู้ เครือข่ายคอมพิวเตอร์ ตั้งแต่ต้น 1 เครือข่ายคอมพิวเตอร์คืออะไรเครือข่าย (network) คือกลุ่มของอุปกรณ์ที่แลกเปลี่ยนข้อมูล: แล็ปท็อป โทรศัพท์ เซิร์ฟเวอร์ เครื่องพิมพ์ อุปกรณ์บนเครือข่ายเรียกว่าโฮสต์ (host)
เครือข่ายภายในอาคารหรือวิทยาเขตเดียวคือ LAN (เครือข่ายท้องถิ่น) เครือข่ายข้ามเมืองหรือข้ามประเทศคือ WAN (เครือข่ายบริเวณกว้าง) อินเทอร์เน็ตเชื่อมเครือข่ายนับล้าน
ข้อมูลไม่เดินทางเป็นสายยาวสายเดียว แต่ถูกตัดเป็นชิ้นเล็ก ๆ เรียกว่าแพ็กเก็ต (packet) และแต่ละแพ็กเก็ตหาทางไปยังปลายทางด้วยตัวเอง
อุปกรณ์จะเข้าใจกันได้ก็ต่อเมื่อปฏิบัติตามกฎเดียวกัน ชุดกฎเกี่ยวกับรูปแบบและลำดับของข้อความเช่นนี้คือโปรโตคอล (protocol) TCP, IP และ HTTP เป็นโปรโตคอล
บริการส่วนใหญ่ใช้แบบจำลองไคลเอนต์–เซิร์ฟเวอร์ (client–server): ไคลเอนต์ เช่น เบราว์เซอร์ของคุณ ส่งคำขอ และเซิร์ฟเวอร์ส่งคำตอบกลับ
สองคำอธิบายว่าการเชื่อมต่อเร็วเพียงใด แบนด์วิดท์ (bandwidth) คืออัตราข้อมูลสูงสุด เช่น 100 Mbit/s เวลาแฝง (latency) คือความล่าช้าก่อนข้อมูลมาถึง วัดเป็นมิลลิวินาที
ตรวจสอบตนเอง ลิงก์ดาวเทียมส่งได้ 50 Mbit/s แต่ทุกคำตอบใช้เวลา 600 ms จึงมาถึง ข้อความใดถูกต้องมีเวลาแฝงต่ำเพราะส่งข้อมูลได้มาก มีแบนด์วิดท์ต่ำเพราะช้า มีแบนด์วิดท์สูงและเวลาแฝงสูง แบนด์วิดท์และเวลาแฝงเป็นสิ่งเดียวกันในที่นี้ คำตอบ: มีแบนด์วิดท์สูงและเวลาแฝงสูง. แบนด์วิดท์คือความจุ (50 Mbit/s มากพอ) และเวลาแฝงคือความล่าช้า (600 ms มาก) ทั้งสองเป็นอิสระต่อกัน ลิงก์จึงมีทั้งแบนด์วิดท์สูงและเวลาแฝงสูงได้
2 เลเยอร์และการห่อหุ้มเครือข่ายแบ่งเป็นเลเยอร์ (layer) แต่ละเลเยอร์แก้ปัญหาหนึ่งอย่างและใช้เลเยอร์ที่อยู่ใต้มัน แบบจำลอง OSI มี 7 เลเยอร์ ส่วนแบบจำลอง TCP/IP ที่ใช้ในอินเทอร์เน็ตรวมเป็น 4 หรือ 5
7 HTTP · DNS · SMTP · SSH 6 5 4 TCP · UDP 3 IP · ICMP 2 Ethernet · Wi-Fi · MAC 1 0101…
1 Physical: ส่งบิตดิบเป็นสัญญาณไฟฟ้า แสง หรือวิทยุผ่านสายและอากาศ2 Data link: ส่งเฟรม (frame) ระหว่างอุปกรณ์ในเครือข่ายท้องถิ่นเดียวกัน โดยใช้ที่อยู่ MAC Ethernet และ Wi-Fi อยู่ที่นี่3 Network: ส่งแพ็กเก็ต ข้ามเครือข่าย โดยใช้ที่อยู่ IP เราเตอร์ทำงานที่นี่4 Transport: ส่งข้อมูลระหว่างโปรแกรม โดยใช้หมายเลขพอร์ต TCP ส่งเซกเมนต์ (segment) ส่วน UDP ส่งดาตาแกรม5–7 Session, presentation, application: บริการที่ผู้คนใช้ เช่น HTTP สำหรับเว็บ DNS สำหรับชื่อ และ SMTP สำหรับอีเมลเมื่อส่งข้อมูล ทุกเลเยอร์เพิ่มเฮดเดอร์ (header) ของตัวเองไว้หน้าข้อมูลจากเลเยอร์บน นี่เรียกว่าการห่อหุ้ม (encapsulation) ผู้รับถอดเฮดเดอร์ในลำดับย้อนกลับ
Eth IP TCP HTTP … CRC L2 L3 L4 L7 L2
TCP ตั้งการเชื่อมต่อก่อน (การจับมือสามทาง SYN, SYN-ACK, ACK) มันกำหนดหมายเลขข้อมูล รอการตอบรับ และส่งใหม่สิ่งที่หาย น่าเชื่อถือและเรียงลำดับ
UDP ส่งโดยไม่มีการเชื่อมต่อและไม่ส่งซ้ำ เร็วกว่าและใช้เมื่อความล่าช้าสำคัญกว่าแพ็กเก็ตที่หาย: วิดีโอสด เกม และคำถาม DNS สั้น ๆ
ตรวจสอบตนเอง สวิตช์ธรรมดาทำงานที่เลเยอร์ OSI ใดเลเยอร์ 1 physical เลเยอร์ 2 data link เลเยอร์ 3 network เลเยอร์ 4 transport คำตอบ: เลเยอร์ 2 data link. สวิตช์ส่งต่อเฟรมโดยใช้ที่อยู่ MAC และที่อยู่ MAC อยู่ในเลเยอร์ data link เราเตอร์ซึ่งใช้ที่อยู่ IP ทำงานที่เลเยอร์ 3
3 ที่อยู่ อุปกรณ์ และโปรโตคอลช่วยที่อยู่สามชนิดทำงานร่วมกัน หนึ่งชนิดต่อเลเยอร์:
ที่อยู่ MAC (เลเยอร์ 2): ที่อยู่ฮาร์ดแวร์ 48 บิตของการ์ดเครือข่าย ใช้ภายในเครือข่ายท้องถิ่นเท่านั้นที่อยู่ IP (เลเยอร์ 3): ที่อยู่ IPv4 มี 32 บิต ที่อยู่ IPv6 มี 128 บิต บอกว่าโฮสต์อยู่ที่ใดบนอินเทอร์เน็ตหมายเลขพอร์ต (เลเยอร์ 4): เลือกโปรแกรมบนโฮสต์ พอร์ตที่รู้จักกันดีมีตั้งแต่ 0 ถึง 1023: HTTP 80, HTTPS 443, SSH 22, DNS 53, SMTP 25อุปกรณ์เป็นไปตามเลเยอร์เดียวกัน ฮับ (เลเยอร์ 1) คัดลอกทุกสัญญาณไปยังทุกพอร์ต สวิตช์ (เลเยอร์ 2) ส่งเฟรมไปยังพอร์ตของที่อยู่ MAC ปลายทางเท่านั้น เราเตอร์ (เลเยอร์ 3) ส่งต่อแพ็กเก็ตระหว่างเครือข่าย
โปรโตคอลช่วยไม่กี่ตัวทำให้ทั้งหมดนี้ทำงานได้:
DHCP ให้โฮสต์มีที่อยู่ IP, มาสก์, เกตเวย์เริ่มต้น และเซิร์ฟเวอร์ DNS เมื่อเข้าร่วมเครือข่ายDNS แปลชื่อ เช่น example.com เป็นที่อยู่ IP เหมือนสมุดโทรศัพท์ARP หาที่อยู่ MAC ที่เป็นของที่อยู่ IP ในเครือข่ายท้องถิ่นICMP นำข้อความผิดพลาดและข้อความทดสอบ คำสั่ง ping ใช้คำขอ echo ของ ICMPNAT ให้อุปกรณ์จำนวนมากที่มีที่อยู่ส่วนตัว (10.x, 172.16–31.x, 192.168.x) ใช้ที่อยู่สาธารณะเดียวร่วมกันเกตเวย์เริ่มต้น (default gateway) คือเราเตอร์ที่โฮสต์ส่งทุกแพ็กเก็ตไปให้เมื่อปลายทางอยู่นอกซับเน็ตของตัวเอง
ตรวจสอบตนเอง โปรโตคอลใดหาที่อยู่ MAC ที่เป็นของที่อยู่ IP ที่ทราบในเครือข่ายท้องถิ่นARP DHCP DNS ICMP คำตอบ: ARP. ARP ถามว่า “ใครมีที่อยู่ IP นี้” และเจ้าของตอบด้วยที่อยู่ MAC ของตน DNS เปลี่ยนชื่อเป็นที่อยู่ IP ซึ่งเป็นการแปลอีกแบบ
4 วิธีทำทีละขั้นคำถามส่วนใหญ่ ตั้งแต่นิยามถึงกรณีแก้ปัญหา ตอบได้ด้วยขั้นตอนเดียวกัน
หาเลเยอร์ คำถามเกี่ยวกับสัญญาณ เฟรมและที่อยู่ MAC แพ็กเก็ตและที่อยู่ IP พอร์ตและการเชื่อมต่อ หรือแอปพลิเคชัน ระบุอุปกรณ์หรือโปรโตคอลที่ทำงานที่เลเยอร์นั้น: ฮับ สวิตช์ หรือเราเตอร์ Ethernet, IP, TCP หรือ UDP DNS, DHCP หรือ HTTP สำหรับข้อผิดพลาด ให้เขียนสิ่งที่ยังทำงานและสิ่งที่ล้มเหลว สิ่งที่ทำงานพิสูจน์ว่าทุกเลเยอร์ที่อยู่ใต้มันปกติ หาเลเยอร์ต่ำสุดที่อธิบายทุกอย่างที่ล้มเหลวได้ นั่นคือสาเหตุที่น่าจะเป็นที่สุด ตรวจคำตอบกับข้อเท็จจริงอื่นในคำถาม: ต้องอธิบายได้ทุกข้อ สำหรับการคำนวณสั้น ๆ: ความล่าช้าในการส่ง (transmission delay) คือขนาดแพ็กเก็ตหารด้วยอัตราลิงก์ และความล่าช้าในการแพร่ (propagation delay) คือระยะทางหารด้วยความเร็วสัญญาณ
ttrans = L / R tprop = d / v
5 ตัวอย่างที่แก้ให้ดูทำตามทุกขั้นตอน ลองทำนายขั้นถัดไปก่อนเปิดดู
ตัวอย่างที่แก้ให้ดู ผู้ใช้ ping 8.8.8.8 ซึ่งเป็นเซิร์ฟเวอร์บนอินเทอร์เน็ตได้ แต่เปิดเว็บไซต์ใด ๆ ด้วยชื่อไม่ได้ ปัญหาน่าจะอยู่ที่ใด
1 ping ไปยังที่อยู่อินเทอร์เน็ตได้รับตอบกลับ ดังนั้นสายหรือ Wi-Fi ทำงาน (เลเยอร์ 1 และ 2) โฮสต์มีที่อยู่ IP ที่ถูกต้อง และเกตเวย์เริ่มต้นและการกำหนดเส้นทางทำงาน (เลเยอร์ 3)
2 เว็บไซต์ที่เปิดด้วยชื่อ ล้มเหลว ก่อนที่เบราว์เซอร์จะติดต่อ www.example.com ได้ ต้องแปลชื่อนั้นเป็นที่อยู่ IP
3 การแปลชื่อเป็นที่อยู่ IP เป็นหน้าที่ของ DNS ซึ่งเป็นโปรโตคอลชั้นแอปพลิเคชัน
4 เกตเวย์เริ่มต้นที่ผิดจะหยุด ping ไป 8.8.8.8 ด้วย สายที่เสียจะหยุดทุกอย่าง ทั้งสองไม่ตรงกับข้อเท็จจริง
5 ข้อผิดพลาดของ DNS อธิบายทุกข้อเท็จจริง: การรับส่งด้วยที่อยู่ IP ทำงาน ด้วยชื่อไม่ทำงาน วิธีแก้คือตั้งค่าเซิร์ฟเวอร์ DNS ให้ถูกต้อง ซึ่งมักมาจาก DHCP
คำตอบ ปัญหาคือการแปลชื่อ: การตั้งค่าDNS ของโฮสต์หรือเซิร์ฟเวอร์ DNS
6 ข้อผิดพลาดที่พบบ่อยสับสน DNS กับ DHCP DNS แปลชื่อเป็นที่อยู่ DHCP แจกที่อยู่ สับสนสวิตช์กับเราเตอร์ สวิตช์ใช้ที่อยู่ MAC ภายในเครือข่ายเดียว เราเตอร์ใช้ที่อยู่ IP ระหว่างเครือข่าย คิดว่า UDP เป็น “TCP ที่แย่” มันถูกเลือกโดยตั้งใจเมื่อความล่าช้าต่ำสำคัญกว่าการส่งข้อมูลที่หายซ้ำ สับสนแบนด์วิดท์ (ความจุ) กับเวลาแฝง (ความล่าช้า) วางหมายเลขพอร์ตที่เลเยอร์เครือข่าย พอร์ตอยู่ในเลเยอร์ transport ส่วนที่อยู่ IP อยู่ในเลเยอร์ network ลืมเกตเวย์เริ่มต้น หากไม่มี โฮสต์เข้าถึงซับเน็ตของตัวเองได้แต่ไม่เกินนั้น ตรวจสอบตนเอง พีซีเข้าถึงเครื่องพิมพ์ในซับเน็ตของตัวเองได้แต่ไม่ไกลกว่านั้น ที่อยู่ IP และมาสก์ของมันถูกต้อง ข้อผิดพลาดใดน่าจะเป็นที่สุดที่อยู่ MAC ที่ผิด สายเครือข่ายเสีย เกตเวย์เริ่มต้นที่หายไปหรือผิด เซิร์ฟเวอร์ DNS ที่ผิด คำตอบ: เกตเวย์เริ่มต้นที่หายไปหรือผิด. การรับส่งในเครือข่ายท้องถิ่นทำงาน ดังนั้นสาย ที่อยู่ MAC และการตั้งค่า IP ปกติ ทุกแพ็กเก็ตไปยังเครือข่ายอื่นไปที่เกตเวย์เริ่มต้น นั่นคือสิ่งที่ขาดไป ข้อผิดพลาดของ DNS จะไม่หยุดการรับส่งไปยังที่อยู่ IP
7 ข้อสอบมีหน้าตาอย่างไรง่าย: ศัพท์และข้อเท็จจริงสำคัญ จำนวนเลเยอร์ OSI DNS หรือ DHCP ทำอะไร หมายเลขพอร์ตมาตรฐาน ขนาดของที่อยู่ IPv4ปานกลาง: การประยุกต์แนวคิด เลเยอร์ของอุปกรณ์ เหตุใดจึงเลือกโปรโตคอล ARP, NAT หรือการจับมือ TCP ทำอะไร การคำนวณซับเน็ตและความล่าช้าเล็ก ๆยาก: กรณีศึกษาและการวิเคราะห์ สถานการณ์แก้ปัญหา พฤติกรรมของ TCP เมื่อมีการสูญหายและความคับคั่ง โปรโตคอลกำหนดเส้นทาง การโจมตี เช่น ARP spoofing หรือ SYN flood และ TLSทุกคำถามมีสี่ตัวเลือก ตัดตัวเลือกที่เป็นของเลเยอร์ที่ผิดออกก่อน มักเหลือเพียงตัวเดียว
เรียนรู้ทีละขั้นในแอป เรียนรู้ทีละขั้นในแอป