เครือข่ายคอมพิวเตอร์
จาก packet หนึ่งใบบนสายไปจนถึงเซิร์ฟเวอร์ที่รับการเชื่อมต่อหลายพัน
สำหรับคนที่ใช้ Linux shell ได้คล่องและอ่านภาษา C ออก ซึ่งอยากเข้าใจเส้นทางจาก connect() ถึงเครื่องปลายทาง Lab บังคับใช้ Linux/WSL พร้อม C compiler, make, iproute2, procfs และ epoll ผู้เรียนบน macOS ต้องใช้ Linux VM/container สำหรับขั้นตอนเหล่านี้ เครื่องมือวินิจฉัยเสริมอย่าง tcpdump, dig และ gdb ต้องติดตั้งแยกเมื่อยังไม่มี ส่วนคอร์สตั้งต้นให้พร้อมครอบคลุม toolchain ฐาน
ตัวอย่างโครงสร้างคอร์ส
เมื่อจบคอร์ส คุณจะทำอะไรได้บ้าง
- อธิบายได้ว่าแต่ละชั้นเพิ่มอะไรลงใน packet และอ่านการดักจับจริงได้
- คำนวณ subnet เส้นทาง และช่วงที่อยู่ได้โดยไม่ต้องใช้เครื่องคิดเลข
- เขียนไคลเอนต์และเซิร์ฟเวอร์ TCP ที่ใช้งานได้จริงในภาษา C พร้อมการจัดการข้อผิดพลาดที่ไม่ใช่ของเสริม
- เลือกระหว่างการออกแบบแบบบล็อก ไม่บล็อก และขับด้วยเหตุการณ์ ให้เหมาะกับภาระที่มี
- วินิจฉัยการเชื่อมต่อที่เสียด้วย ping, traceroute, ss, dig และ tcpdump
- อธิบายได้ว่าทำไมเซิร์ฟเวอร์ที่รับสิบคนได้ถึงพังตอนมีหมื่นคน และต้องทำอย่างไร
ก่อนเริ่มเรียน
แผนการเรียน
ภาษาไทยพร้อมสำหรับทุกขั้นการเรียน.
นี่คือเส้นทางการเรียนทั้งหมด แต่ละบทต่อยอดจากบทก่อนหน้า และด่านบังคับคือจุดที่คุณได้แสดงสิ่งที่ทำได้จริง.
- 01
เกิดอะไรขึ้นจริง ๆ เมื่อเครื่องสองเครื่องคุยกัน
บทเรียน · 15 นาที
- 02
ชั้นต่าง ๆ และซองที่ห่อหุ้มทุกข้อความ
บทเรียน · 18 นาที
ต่อยอดจาก: เกิดอะไรขึ้นจริง ๆ เมื่อเครื่องสองเครื่องคุยกัน
- 03
ที่อยู่: เครื่องหนึ่งถูกค้นเจอได้อย่างไร
บทเรียน · 18 นาที
ต่อยอดจาก: ชั้นต่าง ๆ และซองที่ห่อหุ้มทุกข้อความ
- 04
การแบ่งเครือข่าย และเลขคณิตที่อยู่เบื้องหลัง
บทเรียน · 20 นาที
ต่อยอดจาก: ที่อยู่: เครื่องหนึ่งถูกค้นเจอได้อย่างไร
- 05
packet เลือกปลายทางถัดไปอย่างไร
บทเรียน · 19 นาที
ต่อยอดจาก: การแบ่งเครือข่าย และเลขคณิตที่อยู่เบื้องหลัง
- 06
ตามรอย packet จากเครื่องคุณออกไปถึงอินเทอร์เน็ต
ด่านบังคับ · 20 นาที
ต่อยอดจาก: packet เลือกปลายทางถัดไปอย่างไร
- 07
ที่อยู่สาธารณะหนึ่งอัน เครื่องภายในหลายเครื่อง
บทเรียน · 17 นาที
ต่อยอดจาก: packet เลือกปลายทางถัดไปอย่างไร
- 08
พื้นที่ที่อยู่ที่ไม่มีวันหมด
บทเรียน · 18 นาที
ต่อยอดจาก: ที่อยู่: เครื่องหนึ่งถูกค้นเจอได้อย่างไร
- 09
อินเทอร์เน็ตตกลงกันได้อย่างไรว่าอะไรอยู่ที่ไหน
บทเรียน · 16 นาที
ต่อยอดจาก: packet เลือกปลายทางถัดไปอย่างไร
- 10
อุโมงค์: การขนเครือข่ายหนึ่งไว้ในอีกเครือข่ายหนึ่ง
บทเรียน · 16 นาที
ต่อยอดจาก: ที่อยู่สาธารณะหนึ่งอัน เครื่องภายในหลายเครื่อง
- 11
socket คือ file descriptor
บทเรียน · 16 นาที
ต่อยอดจาก: ชั้นต่าง ๆ และซองที่ห่อหุ้มทุกข้อความ
- 12
รอ หรือไม่รอ
บทเรียน · 18 นาที
ต่อยอดจาก: socket คือ file descriptor
- 13
เฝ้าการเชื่อมต่อจำนวนมากพร้อมกัน
บทเรียน · 20 นาที
ต่อยอดจาก: รอ หรือไม่รอ
- 14
เจ็ด call ที่ทำให้เกิดการเชื่อมต่อ
บทเรียน · 19 นาที
ต่อยอดจาก: socket คือ file descriptor
- 15
การสร้าง และการรื้อ การเชื่อมต่อ
บทเรียน · 19 นาที
ต่อยอดจาก: เจ็ด call ที่ทำให้เกิดการเชื่อมต่อ
- 16
สร้างเซิร์ฟเวอร์กับไคลเอนต์ที่คุยกันได้
ด่านบังคับ · 22 นาที
ต่อยอดจาก: การสร้าง และการรื้อ การเชื่อมต่อ
- 17
ทุก call ของเครือข่ายล้มเหลวได้ และล้มเหลวอย่างไร
บทเรียน · 18 นาที
ต่อยอดจาก: สร้างเซิร์ฟเวอร์กับไคลเอนต์ที่คุยกันได้
- 18
จากชื่อไปสู่ที่อยู่
บทเรียน · 18 นาที
ต่อยอดจาก: ที่อยู่: เครื่องหนึ่งถูกค้นเจอได้อย่างไร
- 19
โปรโตคอลที่คุณใช้ทั้งวัน
บทเรียน · 19 นาที
ต่อยอดจาก: การสร้าง และการรื้อ การเชื่อมต่อ · จากชื่อไปสู่ที่อยู่
- 20
หนึ่ง thread ต่อหนึ่งไคลเอนต์ และจุดที่มันพัง
บทเรียน · 17 นาที
ต่อยอดจาก: สร้างเซิร์ฟเวอร์กับไคลเอนต์ที่คุยกันได้
- 21
ชุด worker คงที่ที่ทำงานจากคิวของการเชื่อมต่อ
บทเรียน · 18 นาที
ต่อยอดจาก: หนึ่ง thread ต่อหนึ่งไคลเอนต์ และจุดที่มันพัง
- 22
ให้บริการการเชื่อมต่อหลายพันจาก thread เดียว
ด่านบังคับ · 22 นาที
ต่อยอดจาก: เฝ้าการเชื่อมต่อจำนวนมากพร้อมกัน
- 23
การเรียกฟังก์ชันบนเครื่องอื่น
บทเรียน · 16 นาที
ต่อยอดจาก: โปรโตคอลที่คุณใช้ทั้งวัน
- 24
schema, การสร้างโค้ด และทำไมมันถึงสำคัญ
บทเรียน · 17 นาที
ต่อยอดจาก: การเรียกฟังก์ชันบนเครื่องอื่น
เริ่มเรียนด้วยบัญชี CYBERSKILLS เมื่อเปิดให้ใช้งาน
บัญชี CYBERSKILLS จะเก็บความก้าวหน้าและผลจากด่านบังคับไว้ด้วยกัน ระหว่างนี้ คุณใช้แผนการเรียนนี้เลือกเส้นทางที่ตรงกับเป้าหมายได้.
ดูตัวอย่างคอร์สทั้งหมด