คุณสมบัติของเน็ตเวิร์ก
"เน็ตเวิร์กเร็วเท่าไร" ตอบด้วยตัวเลขเดียวไม่ได้ — บทนี้แยกให้ชัดว่า แบนด์วิดท์ ต่างจาก ทรูพุต ตรงไหน เวลาที่หายไประหว่างทางมาจาก เวลาหน่วง 4 ชนิด อะไรบ้าง และทำไม tx = L/R กับ tprop = d/S ถึงเป็นคนละเรื่องกันโดยสิ้นเชิง
บทนี้เป็น "บทคำนวณ" ที่คุ้มที่สุด เพราะสูตรมีแค่สองตัวและใช้ซ้ำได้ทั้งข้อสอบ
- Q4 — Propagation / Transmission Delay ให้ขนาดข้อมูล (หน่วย byte) อัตราเร็วลิงก์ ระยะทาง และความเร็วสัญญาณ แล้วให้หา tx กับ tprop — ใช้สูตรตรง ๆ จากบทนี้ 100%
- Q5 — Utilization ของ Stop-and-Wait ต้องหา tx และ tprop จากบทนี้ก่อน แล้วค่อยเอาไปแทนสูตรของบทที่ 11
- Q7 — Store-and-Forward หลาย hop คือการเอา tx มาคูณจำนวน hop — ถ้าเข้าใจ tx ในบทนี้ ข้อนั้นแทบได้ฟรี
ทำไมความเร็วเท่ากัน แต่ช้าไม่เท่ากัน
เวลาเราไปสมัครเน็ต สิ่งที่ถามเป็นอย่างแรกคือ "เน็ตเวิร์กมีความเร็วเท่าไร" แต่ในความเป็นจริง สองบ้านที่ซื้อแพ็กเกจความเร็วเท่ากัน กลับได้การตอบสนองไม่เท่ากัน หนังสือจึงเริ่มบทนี้ด้วยคำถามว่า ความล่าช้าทั้งหมดที่เกิดขึ้น เกิดจากสาเหตุใด
รูปแบบเน็ตเวิร์กทั่วไปเป็นแบบนี้ — เครื่องเราต่อกับเร้าเตอร์ของผู้ให้บริการ ปัจจุบันความเร็วในบ้านที่ 1 Gbps ถือเป็นเรื่องปกติ แต่ขาที่ออกจากเร้าเตอร์ไปหาผู้ให้บริการ ขึ้นกับแพ็กเกจที่เราซื้อ เช่น 10 Mbps หรือ 6 Mbps คงที่ ผลของการสื่อสารจึงแตกต่างกัน
- แบนด์วิดท์ (Bandwidth) = ความเร็วที่ช่องสัญญาณ "รองรับได้" — ความกว้างของท่อ
- ทรูพุต (Throughput) = ความเร็วที่ "ทำได้จริง ณ เวลาหนึ่ง" — น้ำที่ไหลผ่านได้จริง
- เวลาแฝง (Latency) = เวลารวมตั้งแต่บิตแรกออกจากผู้ส่ง จนบิตสุดท้ายถึงผู้รับ
- Jitter = ความผันผวนของเวลาหน่วง (ไม่ใช่ตัวเวลาหน่วงเอง)
หัวใจของบท — เวลาหน่วง 4 ชนิด
เมื่อแพ็กเก็ตหนึ่งใบเดินทางจากเครื่องหนึ่งไปอีกเครื่อง มันจะเสียเวลาไปกับ 4 อย่างเสมอ ตามลำดับนี้:
| เวลาหน่วง | สัญลักษณ์ | เกิดที่ไหน | ขึ้นอยู่กับอะไร |
|---|---|---|---|
| Processing delay การประมวลผล | tproc | ในตัวเร้าเตอร์/สวิตช์ | ความเร็วในการตรวจข้อมูลและตรวจความผิดพลาด — หนังสือบอกว่าน้อยมากเมื่อเทียบกับอีกสองตัว |
| Queueing delay การรอคิว | tqueue | ในบัฟเฟอร์ของโนดนั้น ๆ | ความเร็วในการจัดการข้อมูล และจำนวนข้อมูลที่มีอยู่ในบัฟเฟอร์ — เปลี่ยนไปเรื่อย ๆ ตามปริมาณทราฟฟิก |
| Transmission delay การส่งข้อมูล | tx | ที่พอร์ตขาออก ตอนยิงบิตขึ้นสาย | ขนาดข้อมูล L และ แบนด์วิดท์ R |
| Propagation delay การแพร่กระจาย | tprop | บนสายสัญญาณ ระหว่างสองจุด | ระยะทาง d และ ความเร็วสัญญาณ S |
1) เวลาหน่วงของการแพร่กระจาย (Propagation delay, tprop)
เป็นความหน่วงที่เกิดจากการที่สัญญาณต้องวิ่งจากต้นทางไปยังปลายทาง แปรผันตรงกับระยะทาง (d) และแปรผกผันกับความเร็วของการเคลื่อนที่ของข้อมูล (S) ในช่องสัญญาณ — คลื่นเคลื่อนที่ได้ที่ความเร็ว 3×108 เมตรต่อวินาทีในสุญญากาศ ส่วนในสายสัญญาณจริงจะช้ากว่านั้น (โจทย์มักให้ 2×108 m/s)
| ตัวแปร | ความหมาย | หน่วย | ข้อควรระวัง |
|---|---|---|---|
d | ระยะทางของลิงก์ | เมตร (m) | โจทย์ชอบให้เป็น km — ต้อง ×1000 ก่อน |
S | ความเร็วการเคลื่อนที่ของสัญญาณ | เมตร/วินาที (m/s) | สุญญากาศ 3×108 · ในสาย มักให้ 2×108 |
ตัวอย่าง 6.1 (จากหนังสือ) — ความเร็วของการส่งข้อมูลในสายสัญญาณอยู่ที่ 2×108 m/s ส่งข้อมูลจากจุด A ไป B ระยะทาง 24,000 km จงหา tprop
2) เวลาหน่วงของการส่งข้อมูล (Transmission delay, tx)
คือ เวลาของการพยายามส่งข้อมูลลงในสายสัญญาณ — เวลาที่การ์ดเน็ตเวิร์กใช้ "ยิงบิตทั้งหมดของแพ็กเก็ตออกไป" นับตั้งแต่บิตแรกจนบิตสุดท้ายพ้นพอร์ต หนังสือนิยามว่าเป็นอัตราส่วนของขนาดข้อมูลที่จะส่ง (L) ต่อขนาดแบนด์วิดท์ของช่องสัญญาณ (R)
| ตัวแปร | ความหมาย | หน่วย | ข้อควรระวัง |
|---|---|---|---|
L | ขนาดของข้อมูลที่จะส่ง (1 แพ็กเก็ต/เฟรม) | บิต (bit) | โจทย์ชอบให้เป็น byte — ต้อง ×8 ก่อนเสมอ |
R | แบนด์วิดท์ของช่องสัญญาณ | บิต/วินาที (bps) | 10 Mbps = 10×106 = 107 bps |
ตัวอย่าง 6.2 (จากหนังสือ) — ส่งข้อมูลที่แบนด์วิดท์ 10 Mbps ข้อมูลที่ต้องการส่งมีขนาด 10 Kbit จงหา tx
ในหนังสือ ตัวอย่าง 6.2 บอกโจทย์ว่า R = 10 Mbps และ L = 10 Kbit แต่ในบรรทัดสูตรกลับพิมพ์เป็น 103 / 106 แล้วสรุปคำตอบว่า 10 ms ซึ่งทั้งสามอย่างไม่สอดคล้องกัน:
- ถ้าแทนตามโจทย์จริง ๆ: L = 10 Kbit =
104bit, R = 10 Mbps =107bps → tx = 104/107 = 1 ms - ถ้าอ่านตัวเลขในบรรทัดสูตรตรง ๆ: 103/106 = 1 ms เหมือนกัน
- จะได้ 10 ms ตามคำตอบที่พิมพ์ไว้ ก็ต่อเมื่อเป็น 104/106 เท่านั้น (คือ L = 10 Kbit กับ R = 1 Mbps)
สรุปสำหรับห้องสอบ: อย่าท่องคำตอบ ให้ท่องวิธี — เปลี่ยน L เป็นบิต เปลี่ยน R เป็น bps แล้วหารกัน เท่านี้ไม่มีทางผิด และถ้าเจอโจทย์ตรงนี้ในข้อสอบ ให้แสดงวิธีทำเป็นขั้น ๆ ไว้ กรรมการจะเห็นว่าเราแปลงหน่วยถูก
3) เวลาหน่วงของคิว (Queueing delay, tqueue)
เกิดจากการที่ข้อมูลถูกส่งเข้าไปในเน็ตเวิร์ก แล้วต้องรอก่อนที่จะได้รับการส่งออกไปยังโนดถัดไป เวลาที่รอขึ้นอยู่กับ (1) ความเร็วในการจัดการข้อมูล และ (2) จำนวนของข้อมูลที่มีอยู่ในบัฟเฟอร์ที่โนดนั้น ๆ
เปรียบได้กับการที่เราเข้าแถวรอก่อนที่จะได้รับการบริการจากแคชเชียร์ — เวลารอไม่ได้ขึ้นกับว่าเราซื้อของกี่ชิ้น แต่ขึ้นกับว่ามีคนต่อคิวอยู่ข้างหน้ากี่คน นี่คือเหตุผลที่ tqueue เป็นตัวเดียวใน 4 ตัวที่คำนวณล่วงหน้าไม่ได้ มันเปลี่ยนทุกวินาที และมันคือต้นตอหลักของ jitter ในหัวข้อ 6.2
4) เวลาหน่วงของการประมวลผล (Processing delay, tproc)
เกิดจากการที่เร้าเตอร์หรือสวิตช์ใช้เวลาตรวจสอบข้อมูลก่อนที่จะส่งต่อไปได้อย่างถูกต้อง รวมถึงเวลาที่ใช้ในการตรวจสอบความผิดพลาดของข้อมูล หนังสือระบุชัดว่า "ในเน็ตเวิร์กเราจะถือว่าเวลาที่ใช้นี้น้อยมาก เมื่อเปรียบเทียบกับเวลาหน่วงของการแพร่กระจาย และเวลาหน่วงของการส่งข้อมูล"
ถ้าโจทย์ไม่ได้ให้ค่า tproc มา ให้ถือว่าเป็น 0 ได้เลย และเขียนกำกับไว้ว่า "ละ tproc เพราะน้อยมากตามที่บทที่ 6 ระบุ" — แต่ถ้าโจทย์ให้ค่ามา (เช่นข้อสอบบทที่ 11 ให้ 1 µs) ก็ต้องใส่ทุกครั้งที่เกิดการประมวลผล
เทียบกันชัด ๆ — tx ไม่ใช่ tprop
นี่คือจุดที่คนสับสนกันมากที่สุดในทั้งวิชา ลองเลื่อนสไลเดอร์ดูว่าตัวไหนเปลี่ยนเมื่อขยับอะไร:
| Transmission delay (tx = L/R) | Propagation delay (tprop = d/S) | |
|---|---|---|
| เกิดที่ไหน | ที่พอร์ตของอุปกรณ์ — ยังไม่พ้นตัวเครื่องด้วยซ้ำ | บนสายสัญญาณ ระหว่างสองจุด |
| คำอธิบายเป็นภาพ | เวลาที่ใช้ "รีดแพ็กเก็ตทั้งใบให้ลงท่อจนหมด" | เวลาที่ "หัวขบวนวิ่งจากปลายท่อนี้ถึงปลายท่อโน้น" |
| ขึ้นกับขนาดข้อมูล? | ใช่ — แพ็กเก็ตใหญ่ขึ้นเป็น 2 เท่า tx ก็เป็น 2 เท่า | ไม่ — แพ็กเก็ต 1 ไบต์กับ 1 MB ใช้เวลาเดินทางเท่ากันเป๊ะ |
| ขึ้นกับระยะทาง? | ไม่ — สายยาว 1 เมตรหรือ 1000 กิโล ก็ยิงบิตออกเท่ากัน | ใช่ — แปรผันตรงกับ d |
| เปลี่ยนอะไรถึงจะเร็วขึ้น | ซื้อลิงก์ที่ R สูงขึ้น หรือส่งแพ็กเก็ตเล็กลง | ย้ายเซิร์ฟเวอร์ให้ใกล้ขึ้น (แบนด์วิดท์ช่วยไม่ได้เลย) |
ประโยคที่ทำให้จำได้ตลอดชีวิต: "อัปเกรดเน็ตให้เร็วขึ้น 100 เท่า ก็ไม่ทำให้สัญญาณวิ่งจากไทยไปอเมริกาเร็วขึ้นแม้แต่ไมโครวินาทีเดียว"
เวลาแฝง (Latency) และการเอาไปใช้ต่อ
การพูดถึงเวลาหน่วงทีละตัวยุ่งยากสำหรับผู้ใช้ทั่วไป หนังสือจึงรวบทั้งหมดเป็นค่าเดียวเรียกว่า เวลาแฝง (Latency) ซึ่งนิยามว่า เวลาหน่วงทั้งหมดที่เกิดขึ้นตั้งแต่บิตแรกของแพ็กเก็ตถูกส่งออกจากภาคส่ง จนได้รับบิตสุดท้ายไปถึงภาครับเป็นที่เรียบร้อย
เป็นการบวกกันเฉย ๆ ไม่มีการคูณหรือถ่วงน้ำหนักใด ๆ — ดังนั้นเวลาหน่วงตัวที่ใหญ่ที่สุดจะครอบงำค่ารวมเสมอ ในลิงก์สั้น ๆ ความเร็วต่ำ ตัวที่ครองคือ tx ส่วนในลิงก์ไกล ๆ (ข้ามทวีป, ดาวเทียม) ตัวที่ครองคือ tprop และในเน็ตเวิร์กที่ทราฟฟิกแน่น ตัวที่ครองคือ tqueue
สมการ 6.1 ข้างบนมาจากบทนี้ ส่วนหัวข้อย่อยที่เหลือในส่วนนี้ (RTT, utilization, store-and-forward) ไม่ได้อยู่ในบทที่ 6 แต่มาจากบทที่ 11 (ARQ) และบทที่ 3 (Packet switching) นำมารวมไว้ตรงนี้เพราะข้อสอบ Q5 กับ Q7 ให้ตัวเลขแบบบทที่ 6 แต่ถามคำตอบแบบบทที่ 11 — ถ้าฝึกเชื่อมสองอย่างนี้ตั้งแต่ตอนนี้ ตอนสอบจะไม่สะดุด
RTT (Round-Trip Time)
เวลาหน่วงข้างบนทั้งหมดคิด "เที่ยวเดียว" (one-way) แต่โปรโตคอลจริงส่วนใหญ่ต้องรอคำตอบกลับ เวลาไป-กลับเรียกว่า RTT สิ่งที่ต้องคูณ 2 คือสิ่งที่เกิดสองรอบ:
tprop และ tproc คูณ 2 เพราะการเดินทางเกิดสองรอบ (ไป-กลับ) และการประมวลผลเกิดสองครั้ง (ที่ปลายทาง + ที่ต้นทาง) แต่ tx ไม่คูณ 2 เพราะเฟรมข้อมูลถูกยิงขึ้นสายแค่ครั้งเดียว ส่วนขากลับเป็น ACK ซึ่งขนาดต่างกัน จึงแยกเป็น ta ต่างหาก — ถ้าเผลอเขียน 2tx คือผิดทันที
Utilization / Efficiency
ประสิทธิภาพของการใช้ช่องสัญญาณ คือสัดส่วนของเวลาที่ "ใช้ส่งข้อมูลจริง" ต่อเวลาทั้งรอบ:
เฉลยฉบับใหม่ของ Q5 ไม่ได้ละ เวลาส่ง ACK, เวลาประมวลผล และเวลาคิว จึงมีสี่ก้อนในตัวส่วน ไม่ใช่สองก้อน:
| ก้อน | ที่มา | คิดยังไงตามเฉลย |
|---|---|---|
tx,frame | ยิงเฟรมข้อมูลขึ้นสายที่ A | เฟรม M byte บนลิงก์ BW Mbps → 8M / (BW×106) วินาที |
tx,ACK | ยิงเฟรม ACK ขึ้นสายที่ B | ACK N byte → 8N / (BW×106) วินาที — ก้อนนี้แหละที่คนลืมบ่อยที่สุด |
2tprop | เดินทางไป + กลับ | ระยะทาง S ที่ความเร็ว V → 2 × (S / V) วินาที |
2X | ประมวลผล สองครั้ง | ที่ B ตอนรับเฟรม และที่ A ตอนรับ ACK |
Q | เวลาคิว | ใส่ไว้หนึ่งก้อนตามที่โจทย์ให้มา |
แผนภาพ 7 ขั้นที่ต้องวาดคู่กัน (ตามเฉลย): (1) tx,frame ที่ A → (2) tprop A→B → (3) queueing Q → (4) processing X → (5) tx,ACK ที่ B → (6) tprop B→A → (7) processing X ที่ A · เศษของ U คือ tx,frame ก้อนเดียว เพราะนั่นคือช่วงเดียวที่ "ได้ส่งข้อมูลจริง"
ตีความง่าย ๆ: ถ้า tx ใหญ่กว่า tprop มาก ๆ → U เข้าใกล้ 100% (สายถูกใช้เต็มที่) แต่ถ้า tprop ใหญ่กว่า tx มาก ๆ → U ต่ำเตี้ยเรี่ยดิน เพราะสายว่างเปล่าอยู่เกือบตลอดเวลาระหว่างรอ ACK เดินทางกลับ — นี่คือเหตุผลที่บทที่ 11 ต้องคิด Selective Repeat กับ Go-Back-N ขึ้นมา
Store-and-forward: tx ถูกจ่ายซ้ำทุก hop
เร้าเตอร์ทำงานแบบ store-and-forward คือต้องรับแพ็กเก็ตให้ครบทั้งใบก่อน จึงจะเริ่มส่งต่อได้ (เพราะต้องตรวจ error และอ่าน header ให้จบ — ก็คือ tproc ในบทนี้นั่นเอง) ผลคือ tx ถูกจ่ายใหม่ที่ทุก hop:
โจทย์ที่เขียนว่า "ผู้ส่ง → R1 → R2 → ผู้รับ" มี เร้าเตอร์ 2 ตัว แต่มี ลิงก์ 3 เส้น ตัวคูณของ tx คือ จำนวนลิงก์ = 3 ไม่ใช่จำนวนเร้าเตอร์ วิธีนับที่ปลอดภัยที่สุดคือ นับเส้นในรูป ไม่ใช่นับกล่อง
โจทย์คือ A —10 km, 1.5 Mbps— B —10 km, 1.5 Mbps— C และเฉลยใหม่ใช้ความเร็วสัญญาณ 2×106 m/s (ไม่ใช่ 2×108 ที่ใช้ในข้ออื่น — ระวังตรงนี้มากที่สุด) จึงได้
ลำดับที่ต้องวาด: A ส่ง I(n) → B รับครบทั้งเฟรมก่อน (store) แล้วค่อยส่งต่อ (forward) I(n) → C → C ตอบ Ack(n) → B → A แล้วจึงเริ่ม I(n+1) แบบเดียวกัน · หัวใจของข้อนี้คือคำว่า store and forward ที่โนด B — ถ้าวาดให้ B ส่งต่อทันทีที่บิตแรกมาถึง จะผิดทั้งข้อแม้ตัวเลขจะถูก
6.1แบนด์วิดท์และทรูพุต
การระบุถึงแบนด์วิดท์เป็นการอ้างอิงถึงความสามารถของช่องสัญญาณที่สามารถรองรับได้ อย่างไรก็ตามไม่ได้หมายถึงความสามารถที่เน็ตเวิร์กทำได้จริง ซึ่งค่าที่ทำได้จริงเรียกอีกอย่างหนึ่งว่า ทรูพุต (throughput)
6.1.1แบนด์วิดท์ (Bandwidth)
แบนด์วิดท์เป็นการบอกถึงความสามารถในการส่งข้อมูลบนสายสัญญาณ หรือบนช่องสัญญาณสื่อสาร อีกนัยหนึ่งก็คือ ช่วงความถี่ของช่องสัญญาณจากค่าสูงสุดถึงค่าต่ำสุด หรือเทียบได้กับความกว้างของถนนที่ใหญ่ขึ้นเพื่อให้รถแล่นได้มากขึ้น
โดยทั่วไปในการส่งข้อมูล หากต้องการส่งข้อมูลที่ความเร็วสูงขึ้น หมายถึงความจำเป็นต้องมีแบนด์วิดท์ที่กว้างขึ้น
ตัวอย่างจากหนังสือ (แบนด์วิดท์ในความหมายของความถี่) — หากต้องการส่งสัญญาณซายน์ (sine wave) ที่ความถี่ 200, 400, 600, 800 Hz ผ่านเข้าไปในช่องสัญญาณ แบนด์วิดท์ที่ต้องการคือ:
ส่วนในบริบทของเน็ตเวิร์ก แบนด์วิดท์หมายถึงความสามารถในการส่งข้อมูล วัดอยู่ในหน่วยของบิตต่อวินาที (bits per second) เช่น 1 Gbps ในที่นี้หมายถึงการที่เน็ตเวิร์กของเราสามารถส่งข้อมูลที่ความเร็ว 1 Gbps
- ทางสัญญาณ: หน่วยเป็น Hz = ช่วงความถี่ (fสูงสุด − fต่ำสุด) → ใช้ในบทที่ 7 (Nyquist, Shannon)
- ทางเน็ตเวิร์ก: หน่วยเป็น bps = อัตราบิต → คือตัว
Rในสูตร tx = L/R ของบทนี้
6.1.2ทรูพุต (Throughput)
ทรูพุตเป็นอีกคำหนึ่งที่ใช้ในการวัดประสิทธิภาพของเน็ตเวิร์ก มองผิวเผินจะเหมือนแบนด์วิดท์เพราะมีหน่วยเป็นบิตต่อวินาทีเช่นกัน แต่ทรูพุตเป็นการวัดการใช้งานของเน็ตเวิร์กที่เกิดขึ้นจริง ณ เวลาหนึ่ง
"ค่าของทรูพุตจะน้อยกว่าแบนด์วิดท์เสมอ" — นี่คือประโยคที่หนังสือเน้น และเป็นคำตอบของข้อสอบแบบ "จงอธิบายความแตกต่างระหว่างแบนด์วิดท์กับทรูพุต"
อุปมาเครื่องจักร (จากตำรา)
เครื่องจักรอาจทำงานได้เต็มประสิทธิภาพที่ 100 ชิ้นต่อหนึ่งนาที (= แบนด์วิดท์) แต่การทำงานจริงที่ได้คือ 30 ชิ้น ซึ่งเป็นงานจริงที่เกิดขึ้น (= ทรูพุต)
หมายเหตุ: ตำราพิมพ์ประโยคหลังว่า "30 ชิ้นต่อวินาที" ซึ่งหน่วยไม่ตรงกับประโยคแรก (30 ชิ้น/วินาที = 1,800 ชิ้น/นาที ซึ่งจะมากกว่า 100 ชิ้น/นาที — ขัดกับที่ตำราเน้นเองว่าทรูพุตน้อยกว่าแบนด์วิดท์เสมอ) ที่ควรจะเป็นคือ 30 ชิ้นต่อหนึ่งนาที — ตอนตอบข้อสอบให้ใช้หน่วยเดียวกันทั้งสองฝั่งเสมอ ไม่งั้นเปรียบเทียบไม่ได้
เทียบกับเน็ตเวิร์ก (จากหนังสือ)
เน็ตเวิร์กที่มีความเร็ว 1 Gbps (= แบนด์วิดท์) แต่วัดทรูพุตได้ 300 Mbps เท่านั้น
| แบนด์วิดท์ (Bandwidth) | ทรูพุต (Throughput) | |
|---|---|---|
| คืออะไร | ความสามารถที่ช่องสัญญาณรองรับได้ | การใช้งานที่เกิดขึ้นจริง ณ เวลาหนึ่ง |
| หน่วย | bps (หรือ Hz ในความหมายทางสัญญาณ) | bps |
| เปลี่ยนตามเวลาไหม | ไม่ — เป็นคุณสมบัติของลิงก์ | ใช่ — วัดใหม่ทุกครั้งได้ค่าไม่เท่ากัน |
| ค่าใครมากกว่า | ทรูพุต < แบนด์วิดท์ เสมอ | |
| ใช้ในสูตรไหน | คือ R ใน tx = L/R | ไม่ได้ใช้ในสูตรของบทนี้ — เป็นค่าที่ "วัด" ไม่ใช่ค่าที่ "คิด" |
สูตร tx = L/R ใช้ R = แบนด์วิดท์ของลิงก์ ไม่ใช่ทรูพุตที่วัดได้ ถ้าโจทย์บอกว่า "ลิงก์ 10 Mbps แต่วัดทรูพุตได้ 4 Mbps" แล้วถามหา transmission delay → ให้ใช้ 10 Mbps เพราะ tx คือเวลาที่การ์ดยิงบิตขึ้นสาย ซึ่งยิงที่อัตราเต็มของลิงก์เสมอ
6.2Jitter
ปัจจุบันการสื่อสารในรูปแบบมัลติมีเดียถือเป็นเรื่องปกติ ทำให้นอกเหนือจากค่าแบนด์วิดท์และเวลาแฝงแล้ว ยังมีอีกหนึ่งค่าที่สำคัญคือ จิตเตอร์ (Jitter) — โปรแกรมทดสอบความเร็วของบริษัท CAT Telecom ก็มีการระบุค่าของ Jitter ไว้อย่างชัดเจน
| ค่าในหน้าจอ | ตรงกับศัพท์ในบทนี้ | ตีความ |
|---|---|---|
| DOWNLOAD 20.4 Mbps | ทรูพุต (Throughput) | ค่าที่วัดได้จริง ณ เวลานั้น ไม่ใช่ความเร็วที่ซื้อไว้ — ถ้าแพ็กเกจเป็น 100 Mbps ก็แปลว่าตอนนี้ใช้ได้จริงแค่ 20.4 Mbps |
| PING 24 ms | RTT (เวลาแฝงไป-กลับ) | ส่วนใหญ่คือ 2·tprop บวกคิวระหว่างทาง — ซื้อแบนด์วิดท์เพิ่มไม่ได้ทำให้ค่านี้ลดลง |
| JITTER 6 ms | Jitter | ค่าผันผวนของเวลาหน่วง ไม่ใช่ตัวเวลาหน่วง — ping 24 ms ที่ jitter 6 ms หมายความว่าแต่ละใบมาถึงไม่พร้อมกันเป๊ะ แกว่งอยู่ราว ๆ ±6 ms |
ช่อง UPLOAD ยังว่าง เพราะโปรแกรมกำลังวัดขาลงอยู่ (ยังทดสอบไม่จบ) — ตัวเลขที่โชว์ตอนนั้นจึงเป็นของขาดาวน์โหลดอย่างเดียว
Jitter เกิดจากอะไร
หนังสือระบุสาเหตุไว้ 4 อย่าง:
- การส่งแพ็กเก็ตที่มีขนาดแตกต่างกัน — แพ็กเก็ตใหญ่มี tx มากกว่าแพ็กเก็ตเล็ก
- องค์ประกอบของเน็ตเวิร์กที่มีการทำงานที่แตกต่างกัน — อุปกรณ์แต่ละรุ่นประมวลผลไม่เท่ากัน
- จำนวนของข้อมูลที่อยู่ในสวิตช์ ทำให้เกิดการรอของแพ็กเก็ตที่แตกต่างกัน (นี่คือ tqueue ตรง ๆ)
- การแข่งขันกันส่งแพ็กเก็ตออกในอินเทอร์เฟซหนึ่ง ๆ ให้เร็วที่สุด
สังเกตว่าสาเหตุทั้ง 4 ข้อ ล้วนกระทบ tqueue กับ tx ทั้งสิ้น — ส่วน tprop คงที่เสมอ สำหรับเส้นทางเดียวกัน ดังนั้น tprop ไม่ทำให้เกิด jitter มันเป็นแค่ "พื้น" ที่เวลาหน่วงจะต่ำกว่านั้นไม่ได้
เกิดขึ้นยังไง
รูปที่ 6.4(a) แสดงการส่งแพ็กเก็ตในอัตราเร็วคงที่ โดยมีช่องว่างระหว่างแพ็กเก็ตที่เท่ากัน แต่เมื่อถึงภาครับ ผลของเวลาหน่วงต่าง ๆ ที่เกิดขึ้นทำให้แพ็กเก็ตที่ได้รับมีระยะระหว่างแพ็กเก็ตที่แตกต่างกัน ดังรูปที่ 6.4(b) ขึ้นกับปัจจัยของเน็ตเวิร์กในขณะนั้น
ในรูปที่ 6.4(b) ไม่มีแพ็กเก็ตใบไหนหายไปเลย ครบ 1–9 เหมือนเดิม และเรียงลำดับเหมือนเดิม สิ่งที่เสียไปคือความสม่ำเสมอของจังหวะ เท่านั้น — นี่คือความต่างระหว่าง jitter (จังหวะเพี้ยน) กับ packet loss (ของหายจริง) · จะกลายเป็น loss ก็ต่อเมื่อจังหวะเพี้ยนมากจนบางใบมาช้าเกินกำหนดเวลาแสดงผล แล้วปลายทางตัดสินใจข้ามมันไป ซึ่งคือ jitter loss ในรูปที่ 6.6 ข้างล่าง
กราฟนี้บอกว่า ถ้าเราวัดเวลาหน่วงของแพ็กเก็ตเป็นพัน ๆ ใบแล้วเอามาพล็อต จะได้รูประฆังที่หางลากไปทางขวายาว ๆ — แพ็กเก็ตส่วนใหญ่มาถึงเร็ว (ยอดกราฟ) แต่มีบางใบที่ติดคิวจนมาช้ามาก (หางขวา) ความกว้างของหางนี่แหละคือ jitter ยิ่งหางยาว jitter ยิ่งสูง และบัฟเฟอร์ฝั่งรับยิ่งต้องใหญ่
ทำไม Jitter ถึงสำคัญ — และ Jitter loss คืออะไร
เมื่อเราใช้แอปพลิเคชันมัลติมีเดียมากขึ้น รวมถึงการประชุมหรือพูดคุยผ่านเน็ตเวิร์ก หากระบบมีค่า jitter สูง จะทำให้ภาครับจำเป็นต้องมีบัฟเฟอร์ขนาดใหญ่ เพื่อเก็บแพ็กเก็ตที่รับเข้ามาก่อน แล้วจึงแสดงผลตามลำดับการส่ง
หนังสือยกตัวอย่างการฟังเพลง/ดูหนังจาก YouTube หรือ Spotify: เว็บไซต์เหล่านี้ส่งข้อมูลเป็นแพ็กเก็ตอย่างต่อเนื่องมายังผู้รับ และเนื่องจากเป็นการสื่อสารผ่านอินเทอร์เน็ต แพ็กเก็ตที่ได้รับอาจมาถึงอย่างไม่เป็นไปตามลำดับ
กลไกทั้งหมดเป็นแบบนี้: แพ็กเก็ตที่ได้รับถูกจัดเก็บที่ภาครับก่อนนำไปแสดงผล โดยจะจัดเรียงในบัฟเฟอร์ให้ถูกต้องตามลำดับ ก่อนนำไปแสดงผลต่อไป แต่หากมี jitter ที่สูงมาก บางแพ็กเก็ตอาจมาไม่ทันการแสดงผล ทำให้เกิด:
อาการภาพค้าง
บางแอปพลิเคชันเลือกรอ ทำให้ภาพหยุดนิ่ง (เห็นบ่อยตอนวิดีโอคอลแล้วภาพค้าง)
ข้ามแพ็กเก็ตไป = loss
บางแอปเลือกแสดงผลโดยข้ามแพ็กเก็ตนั้นไป โดยถือว่าเป็นการสูญหาย (loss) ของข้อมูล — เสียงจะขาดหายเป็นช่วง ๆ
Jitter loss = การที่แพ็กเก็ตมาถึงจริง แต่มาช้าเกินกำหนดเวลาแสดงผล (playout deadline) ระบบจึงข้ามมันไปและนับเป็นข้อมูลสูญหาย — ต่างจาก packet loss ปกติที่แพ็กเก็ตหายไปจริง ๆ ระหว่างทาง จุดนี้คือคำถามยอดฮิตของหัวข้อนี้
อัตราการสูญหาย (Packet Loss Rate, PLR)
หนังสือระบุว่า โดยทั่วไปการสูญหายเป็นค่าที่นิยมกล่าวถึงในรูปของเปอร์เซ็นต์ และ การบอกค่าของการสูญหายในเน็ตเวิร์กมักจะแสดงอยู่ในรูปของความน่าจะเป็น เช่น การคำนวณหา อัตราการสูญหายของแพ็กเก็ต (Packet Loss Rate, PLR) ในเรียลไทม์แอปพลิเคชัน เช่น วิดีโอ หรือการสื่อสารแบบเสียงผ่าน IP (VoIP)
ตรงจุดนี้หนังสือเขียนว่า "สามารถคำนวณได้ด้วยสมการ ??" — คือเป็นการอ้างอิงสมการที่พิมพ์พลาด (ในไฟล์ PDF ขึ้นเป็นเครื่องหมายคำถามจริง ๆ) จึงไม่มีสูตร PLR ให้ในตำราบทนี้ เพราะฉะนั้นถ้าข้อสอบถามถึง PLR ให้ตอบเป็นนิยาม (สัดส่วนของแพ็กเก็ตที่สูญหายต่อแพ็กเก็ตที่ส่งทั้งหมด แสดงเป็นเปอร์เซ็นต์หรือความน่าจะเป็น) แทนการงัดสูตรที่ไม่มีในเล่ม
ตัวอย่างคำนวณ (แบบข้อสอบจริง)
ตารางแปลงหน่วยที่ต้องท่องให้ขึ้นใจ
| เจอแบบนี้ | แปลงเป็น | ตัวอย่าง |
|---|---|---|
| byte (B) | × 8 → bit | 50,000 B = 400,000 bit = 4×105 bit |
| KB / Kbit | × 103 | 10 Kbit = 104 bit |
| Mbps | × 106 → bps | 10 Mbps = 107 bps |
| Gbps | × 109 → bps | 1 Gbps = 109 bps |
| km | × 103 → m | 24,000 km = 2.4×107 m |
| ผลลัพธ์ที่ได้เป็นวินาที | × 103 → ms × 106 → µs | 0.04 s = 40 ms · 4×10−6 s = 4 µs |
โจทย์เกือบทุกข้อให้ขนาดข้อมูลมาเป็น byte แต่ให้อัตราเร็วลิงก์มาเป็น bit ต่อวินาที ถ้าลืมคูณ 8 คำตอบจะเล็กกว่าความจริง 8 เท่า พอดี วิธีกันพลาด: เขียน "× 8" ลงในกระดาษคำตอบทันทีที่เห็นคำว่า byte ก่อนจะทำอะไรต่อ
ตัวอย่างที่ 1 — โจทย์จริงจากข้อสอบเก่า (Q4)
โจทย์ — ต้องการส่งข้อมูลขนาด 50,000 byte ผ่านลิงก์ที่มีอัตราเร็ว 10 Mbps โดยระยะทางระหว่างสองจุดคือ 800 เมตร และความเร็วของสัญญาณในสายคือ 2×108 m/s
จงหา (ก) transmission delay (ข) propagation delay (ค) ตัวไหนมีผลมากกว่ากัน
ลองทำเองก่อน แล้วค่อยกดดูเฉลย
ขั้นที่ 1 — แปลงหน่วยให้หมดก่อนแตะสูตร
R = 10 Mbps = 107 bps
d = 800 m (ให้เป็นเมตรมาแล้ว ไม่ต้องแปลง)
S = 2×108 m/s
ขั้นที่ 2 — (ก) transmission delay
ขั้นที่ 3 — (ข) propagation delay
ขั้นที่ 4 — (ค) เทียบกัน
เวลาแฝงรวม (ละ tqueue และ tproc) = 0.04 + 0.000004 = 0.040004 s ≈ 40 ms — tprop แทบไม่มีผลเลย เพราะสายสั้นแค่ 800 เมตร นี่คือลักษณะของ LAN / ในตึกเดียวกัน: ตัวที่ครองเวลาคือ tx เสมอ
ตัวอย่างที่ 2 — ลิงก์ระยะไกล (พลิกผลลัพธ์กลับด้าน)
โจทย์ — ใช้ระยะทางจากตัวอย่าง 6.1 ของหนังสือ คือ 24,000 km ที่ S = 2×108 m/s ส่งข้อมูลขนาด 1,000 byte ผ่านลิงก์ 1 Mbps
จงหา tx, tprop และ utilization ของ Stop-and-Wait
ดูเฉลย
d = 24,000 km = 2.4×107 m → tprop = 2.4×107 / 2×108 = 0.12 s = 120 ms
ทีนี้แทนใน utilization ของ Stop-and-Wait:
เทียบกับตัวอย่างที่ 1 (สาย 800 เมตร) ซึ่งจะได้:
พารามิเตอร์แทบเหมือนกัน แต่ระยะทางเปลี่ยนอย่างเดียว ทำให้ประสิทธิภาพร่วงจาก 99.98% เหลือ 3.23% — และการซื้อเน็ตเร็วขึ้นจะยิ่งทำให้แย่ลง เพราะ R สูงขึ้น → tx เล็กลง → เศษของ U เล็กลงอีก นี่คือเหตุผลทั้งหมดที่ทำให้บทที่ 11 ต้องมี Go-Back-N และ Selective Repeat
ตัวอย่างที่ 3 — Store-and-forward หลาย hop (แนว Q7)
โจทย์ — ส่งแพ็กเก็ตขนาด 12,500 byte จาก A ไป B ผ่านเส้นทาง A → R1 → R2 → B ทุกลิงก์มีอัตราเร็ว 10 Mbps ยาวลิงก์ละ 400 m ที่ S = 2×108 m/s (ละ tqueue และ tproc)
จงหาเวลาทั้งหมดที่บิตสุดท้ายไปถึง B
ดูเฉลย
ขั้นที่ 1 — นับลิงก์ก่อน (ไม่ใช่นับเร้าเตอร์!)
A→R1, R1→R2, R2→B = N = 3 ลิงก์ (เร้าเตอร์มี 2 ตัว แต่ลิงก์มี 3 เส้น)
ขั้นที่ 2 — หา tx ของหนึ่ง hop
tx = 105 / 107 = 0.01 s = 10 ms ต่อ hop
ขั้นที่ 3 — หา tprop ของหนึ่ง hop
ขั้นที่ 4 — รวมทั้งเส้นทาง
ถ้าไม่มี store-and-forward (คือเร้าเตอร์ส่งต่อทันทีที่บิตแรกเข้ามา) เวลาจะเป็นแค่ 10 ms + 6 µs — ส่วนต่าง 20 ms คือ "ราคาที่ต้องจ่าย" ให้กับการที่เร้าเตอร์ต้องรับแพ็กเก็ตให้ครบก่อนส่งต่อ ข้อสอบชอบให้เปรียบเทียบตรงนี้
ตัวอย่างที่ 4 — ตัวอย่าง 6.2 ของหนังสือ (ทำใหม่ให้ถูกหน่วย)
โจทย์ — แบนด์วิดท์ 10 Mbps ข้อมูลขนาด 10 Kbit จงหา tx
ดูเฉลย (พร้อมคำเตือนเรื่องเลขในหนังสือ)
R = 10 Mbps = 10 × 106 = 107 bps
หนังสือพิมพ์คำตอบว่า 10 มิลลิวินาที โดยแสดงเศษส่วนเป็น 103/106 ซึ่งไม่ตรงกับทั้งโจทย์และคำตอบของตัวเอง (ดูรายละเอียดในกล่องเตือนของหัวข้อ tx ด้านบน) — ในห้องสอบให้แสดงการแปลงหน่วยทีละบรรทัดแบบนี้ แล้วต่อให้อาจารย์ตรวจด้วยเฉลยเดิม เราก็ยังชี้ได้ว่าทำถูกทุกขั้น
เช็คความเข้าใจ
tx = L/R — L เพิ่มเป็น 2 เท่า R เท่าเดิม ดังนั้น tx เป็น 2 เท่า ส่วน tprop = d/S ไม่มี L อยู่ในสูตรเลย จึงไม่ขึ้นกับขนาดแพ็กเก็ตโดยสิ้นเชิง — สัญญาณวิ่งด้วยความเร็วเท่าเดิมบนสายเส้นเดิมเสมอ- tx = L/R (ขนาดข้อมูล ÷ bit rate) และ tprop = d/S (ระยะทาง ÷ ความเร็วสัญญาณ) — ท่องสองบรรทัดนี้ให้ขึ้นใจ แล้วครึ่งบทได้แล้ว
- เห็นคำว่า byte เมื่อไร → คูณ 8 ทันที ก่อนทำอะไรทั้งสิ้น
- Latency = tqueue + tx + tprop + tproc (สมการ 6.1) · tproc น้อยมาก จนละได้ถ้าโจทย์ไม่ให้
- tx ขึ้นกับ L, R เท่านั้น · tprop ขึ้นกับ d, S เท่านั้น — ไม่มีทางไขว้กัน
- สายสั้น → tx ครอง · สายไกล/ดาวเทียม → tprop ครอง · ทราฟฟิกแน่น → tqueue ครอง
- Store-and-forward: คูณ tx ด้วยจำนวน "ลิงก์" ไม่ใช่จำนวนเร้าเตอร์
- U = tx / (tx + 2tprop) — ตัวเชื่อมไปข้อสอบ Q5 และบทที่ 11
- ทรูพุต < แบนด์วิดท์ เสมอ (แบนด์วิดท์ = รองรับได้ · ทรูพุต = ทำได้จริง ณ เวลาหนึ่ง)
- Jitter = ค่าผันผวนของเวลาหน่วง ไม่ใช่ตัวเวลาหน่วง · Jitter loss = มาถึงแต่มาช้าเกิน playout · แก้ด้วยบัฟเฟอร์ใหญ่ขึ้น แลกกับ latency ที่สูงขึ้น