บทที่ 6

คุณสมบัติของเน็ตเวิร์ก

"เน็ตเวิร์กเร็วเท่าไร" ตอบด้วยตัวเลขเดียวไม่ได้ — บทนี้แยกให้ชัดว่า แบนด์วิดท์ ต่างจาก ทรูพุต ตรงไหน เวลาที่หายไประหว่างทางมาจาก เวลาหน่วง 4 ชนิด อะไรบ้าง และทำไม tx = L/R กับ tprop = d/S ถึงเป็นคนละเรื่องกันโดยสิ้นเชิง

อ่าน ~18 นาที ออกสอบหนักที่สุดบทหนึ่ง เชื่อมกับ ข้อสอบ Q4, Q5, Q7
ข้อสอบออกแบบไหน

บทนี้เป็น "บทคำนวณ" ที่คุ้มที่สุด เพราะสูตรมีแค่สองตัวและใช้ซ้ำได้ทั้งข้อสอบ

  • 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 คงที่ ผลของการสื่อสารจึงแตกต่างกัน

รูปแบบเน็ตเวิร์กทั่วไป — ท่อ 10 Mbps ฝั่งผู้ส่ง เข้าเร้าเตอร์ แล้วออกท่อ 1 Mbps ไปยังผู้รับ โดยมีแพ็กเก็ตกองอยู่ที่เร้าเตอร์
รูปที่ 6.1 จากตำรา — รูปแบบเน็ตเวิร์กทั่วไป สังเกตว่าท่อฝั่งซ้าย (10 Mbps) ใหญ่กว่าท่อฝั่งขวา (1 Mbps) แพ็กเก็ตจึงกองอยู่ที่เร้าเตอร์
คำที่ต้องแยกให้ออกตั้งแต่ต้นบท
  • แบนด์วิดท์ (Bandwidth) = ความเร็วที่ช่องสัญญาณ "รองรับได้" — ความกว้างของท่อ
  • ทรูพุต (Throughput) = ความเร็วที่ "ทำได้จริง ณ เวลาหนึ่ง" — น้ำที่ไหลผ่านได้จริง
  • เวลาแฝง (Latency) = เวลารวมตั้งแต่บิตแรกออกจากผู้ส่ง จนบิตสุดท้ายถึงผู้รับ
  • Jitter = ความผันผวนของเวลาหน่วง (ไม่ใช่ตัวเวลาหน่วงเอง)

หัวใจของบท — เวลาหน่วง 4 ชนิด

เมื่อแพ็กเก็ตหนึ่งใบเดินทางจากเครื่องหนึ่งไปอีกเครื่อง มันจะเสียเวลาไปกับ 4 อย่างเสมอ ตามลำดับนี้:

แผนภาพเวลาหน่วงในการส่งแพ็กเก็ต แสดง processing delay, queueing delay, transmission delay และ propagation delay ที่เร้าเตอร์ A ไป B
รูปที่ 6.2 จากตำรา — เวลาหน่วงในการส่งแพ็กเก็ต ทั้งสี่ชนิดเกิดที่ "จุดคนละจุด" ของเส้นทาง
เวลาหน่วงสัญลักษณ์เกิดที่ไหนขึ้นอยู่กับอะไร
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)

tprop = dS ระยะทาง ÷ ความเร็วสัญญาณ
ตัวแปรความหมายหน่วยข้อควรระวัง
dระยะทางของลิงก์เมตร (m)โจทย์ชอบให้เป็น km — ต้อง ×1000 ก่อน
Sความเร็วการเคลื่อนที่ของสัญญาณเมตร/วินาที (m/s)สุญญากาศ 3×108 · ในสาย มักให้ 2×108

ตัวอย่าง 6.1 (จากหนังสือ) — ความเร็วของการส่งข้อมูลในสายสัญญาณอยู่ที่ 2×108 m/s ส่งข้อมูลจากจุด A ไป B ระยะทาง 24,000 km จงหา tprop

tprop = dS = 24,000 km = 2.4×107 m2×108 m/s = 0.12 s = 120 มิลลิวินาที ตัวอย่าง 6.1 — สังเกตว่า "ขนาดข้อมูล" ไม่ได้เข้ามาเกี่ยวเลยแม้แต่นิดเดียว

2) เวลาหน่วงของการส่งข้อมูล (Transmission delay, tx)

คือ เวลาของการพยายามส่งข้อมูลลงในสายสัญญาณ — เวลาที่การ์ดเน็ตเวิร์กใช้ "ยิงบิตทั้งหมดของแพ็กเก็ตออกไป" นับตั้งแต่บิตแรกจนบิตสุดท้ายพ้นพอร์ต หนังสือนิยามว่าเป็นอัตราส่วนของขนาดข้อมูลที่จะส่ง (L) ต่อขนาดแบนด์วิดท์ของช่องสัญญาณ (R)

tx = LR ขนาดข้อมูล ÷ อัตราบิตของลิงก์
ตัวแปรความหมายหน่วยข้อควรระวัง
Lขนาดของข้อมูลที่จะส่ง (1 แพ็กเก็ต/เฟรม)บิต (bit)โจทย์ชอบให้เป็น byte — ต้อง ×8 ก่อนเสมอ
Rแบนด์วิดท์ของช่องสัญญาณบิต/วินาที (bps)10 Mbps = 10×106 = 107 bps

ตัวอย่าง 6.2 (จากหนังสือ) — ส่งข้อมูลที่แบนด์วิดท์ 10 Mbps ข้อมูลที่ต้องการส่งมีขนาด 10 Kbit จงหา tx

tx = LR = 103106 = 10 มิลลิวินาที ตัวอย่าง 6.2 — คัดลอกตามที่หนังสือพิมพ์ไว้เป๊ะ ๆ (อ่านกล่องเตือนข้างล่างก่อนใช้)
จุดที่คนพลาดบ่อย — ตัวอย่าง 6.2 ในหนังสือมีเลขไม่ตรงกัน

ในหนังสือ ตัวอย่าง 6.2 บอกโจทย์ว่า R = 10 Mbps และ L = 10 Kbit แต่ในบรรทัดสูตรกลับพิมพ์เป็น 103 / 106 แล้วสรุปคำตอบว่า 10 ms ซึ่งทั้งสามอย่างไม่สอดคล้องกัน:

  • ถ้าแทนตามโจทย์จริง ๆ: L = 10 Kbit = 104 bit, R = 10 Mbps = 107 bps → 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

นี่คือจุดที่คนสับสนกันมากที่สุดในทั้งวิชา ลองเลื่อนสไลเดอร์ดูว่าตัวไหนเปลี่ยนเมื่อขยับอะไร:

จุดที่คนพลาดบ่อย — สับสน 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) ซึ่งนิยามว่า เวลาหน่วงทั้งหมดที่เกิดขึ้นตั้งแต่บิตแรกของแพ็กเก็ตถูกส่งออกจากภาคส่ง จนได้รับบิตสุดท้ายไปถึงภาครับเป็นที่เรียบร้อย

Latency = tqueue + tx + tprop + tproc สมการที่ 6.1
อ่านสมการ 6.1 ให้เป็น

เป็นการบวกกันเฉย ๆ ไม่มีการคูณหรือถ่วงน้ำหนักใด ๆ — ดังนั้นเวลาหน่วงตัวที่ใหญ่ที่สุดจะครอบงำค่ารวมเสมอ ในลิงก์สั้น ๆ ความเร็วต่ำ ตัวที่ครองคือ tx ส่วนในลิงก์ไกล ๆ (ข้ามทวีป, ดาวเทียม) ตัวที่ครองคือ tprop และในเน็ตเวิร์กที่ทราฟฟิกแน่น ตัวที่ครองคือ tqueue

ส่วนขยาย (นอกเหนือจากบทที่ 6) — RTT, Utilization และ Store-and-forward

สมการ 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 คือสิ่งที่เกิดสองรอบ:

RTT ≈ 2 × tprop รูปแบบย่อที่ใช้บ่อยที่สุด — คิดเฉพาะการเดินทางไปและกลับ
T = tx + 2tprop + 2tproc + ta รูปแบบเต็มจากบทที่ 11 (สมการ 11.1) — ta คือ transmission delay ของเฟรม ACK
จุดที่คนพลาดบ่อย — คูณ 2 ผิดตัว

tprop และ tproc คูณ 2 เพราะการเดินทางเกิดสองรอบ (ไป-กลับ) และการประมวลผลเกิดสองครั้ง (ที่ปลายทาง + ที่ต้นทาง) แต่ tx ไม่คูณ 2 เพราะเฟรมข้อมูลถูกยิงขึ้นสายแค่ครั้งเดียว ส่วนขากลับเป็น ACK ซึ่งขนาดต่างกัน จึงแยกเป็น ta ต่างหาก — ถ้าเผลอเขียน 2tx คือผิดทันที

Utilization / Efficiency

ประสิทธิภาพของการใช้ช่องสัญญาณ คือสัดส่วนของเวลาที่ "ใช้ส่งข้อมูลจริง" ต่อเวลาทั้งรอบ:

U = txT = txtx + 2tprop รูปแบบย่อของ Stop-and-Wait — ใช้ได้เมื่อโจทย์บอกให้ละ ACK, processing และคิว
แต่ Q5 ในเฉลยฉบับใหม่ใช้รูปแบบ เต็ม — ต้องเขียนตามนี้

เฉลยฉบับใหม่ของ Q5 ไม่ได้ละ เวลาส่ง ACK, เวลาประมวลผล และเวลาคิว จึงมีสี่ก้อนในตัวส่วน ไม่ใช่สองก้อน:

U = tx,frametx,frame + tx,ACK + 2tprop + 2X + Q รูปแบบเต็มตามเฉลยใหม่ของ Q5
ก้อนที่มาคิดยังไงตามเฉลย
tx,frameยิงเฟรมข้อมูลขึ้นสายที่ Aเฟรม M byte บนลิงก์ BW Mbps → 8M / (BW×106) วินาที
tx,ACKยิงเฟรม ACK ขึ้นสายที่ BACK 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:

Latencyรวม = N × LR + Σ diS เมื่อ N = จำนวนลิงก์ (hop) ที่แพ็กเก็ตต้องผ่าน · ใช้ในข้อสอบ Q7
จุดที่คนพลาดบ่อย — นับ hop ผิด

โจทย์ที่เขียนว่า "ผู้ส่ง → R1 → R2 → ผู้รับ" มี เร้าเตอร์ 2 ตัว แต่มี ลิงก์ 3 เส้น ตัวคูณของ tx คือ จำนวนลิงก์ = 3 ไม่ใช่จำนวนเร้าเตอร์ วิธีนับที่ปลอดภัยที่สุดคือ นับเส้นในรูป ไม่ใช่นับกล่อง

ตัวเลขของ Q7 ตามเฉลยฉบับใหม่ — จำไว้ให้ตรง

โจทย์คือ A —10 km, 1.5 Mbps— B —10 km, 1.5 Mbps— C และเฉลยใหม่ใช้ความเร็วสัญญาณ 2×106 m/s (ไม่ใช่ 2×108 ที่ใช้ในข้ออื่น — ระวังตรงนี้มากที่สุด) จึงได้

dp = 10,000 m2×106 m/s = 0.005 s = 5 ms ต่อ hop

ลำดับที่ต้องวาด: 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 ผ่านเข้าไปในช่องสัญญาณ แบนด์วิดท์ที่ต้องการคือ:

800 − 200 = 600 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

สูตร tx = L/R ใช้ R = แบนด์วิดท์ของลิงก์ ไม่ใช่ทรูพุตที่วัดได้ ถ้าโจทย์บอกว่า "ลิงก์ 10 Mbps แต่วัดทรูพุตได้ 4 Mbps" แล้วถามหา transmission delay → ให้ใช้ 10 Mbps เพราะ tx คือเวลาที่การ์ดยิงบิตขึ้นสาย ซึ่งยิงที่อัตราเต็มของลิงก์เสมอ

6.2Jitter

ปัจจุบันการสื่อสารในรูปแบบมัลติมีเดียถือเป็นเรื่องปกติ ทำให้นอกเหนือจากค่าแบนด์วิดท์และเวลาแฝงแล้ว ยังมีอีกหนึ่งค่าที่สำคัญคือ จิตเตอร์ (Jitter) — โปรแกรมทดสอบความเร็วของบริษัท CAT Telecom ก็มีการระบุค่าของ Jitter ไว้อย่างชัดเจน

ภาพหน้าจอโปรแกรม Speedtest ของ CAT Telecom แสดงมาตรวัดเข็มชี้ 20.4 Mbps ด้านขวามีค่า PING 24 ms, JITTER 6 ms, DOWNLOAD 20.4 Mbps และ UPLOAD ที่ยังไม่มีค่า ด้านล่างระบุ ISP TrueOnline หมายเลขไอพี 223.24.168.166 และเซิร์ฟเวอร์ปลายทาง CAT Telecom Public Company กรุงเทพฯ
รูปที่ 6.3 จากตำรา — โปรแกรมทดสอบความเร็วของ CAT Telecom (ค่าที่วัดได้ในรูป: PING 24 ms · JITTER 6 ms · DOWNLOAD 20.4 Mbps)
รูปที่ 6.3 คือ "บทที่ 6 ทั้งบท" ย่อลงมาในหน้าจอเดียว
ค่าในหน้าจอตรงกับศัพท์ในบทนี้ตีความ
DOWNLOAD 20.4 Mbpsทรูพุต (Throughput)ค่าที่วัดได้จริง ณ เวลานั้น ไม่ใช่ความเร็วที่ซื้อไว้ — ถ้าแพ็กเกจเป็น 100 Mbps ก็แปลว่าตอนนี้ใช้ได้จริงแค่ 20.4 Mbps
PING 24 msRTT (เวลาแฝงไป-กลับ)ส่วนใหญ่คือ 2·tprop บวกคิวระหว่างทาง — ซื้อแบนด์วิดท์เพิ่มไม่ได้ทำให้ค่านี้ลดลง
JITTER 6 msJitterค่าผันผวนของเวลาหน่วง ไม่ใช่ตัวเวลาหน่วง — ping 24 ms ที่ jitter 6 ms หมายความว่าแต่ละใบมาถึงไม่พร้อมกันเป๊ะ แกว่งอยู่ราว ๆ ±6 ms

ช่อง UPLOAD ยังว่าง เพราะโปรแกรมกำลังวัดขาลงอยู่ (ยังทดสอบไม่จบ) — ตัวเลขที่โชว์ตอนนั้นจึงเป็นของขาดาวน์โหลดอย่างเดียว

Jitter = ค่าผันผวนของเวลาหน่วง ณ เวลาหนึ่ง นิยามตามหนังสือ — สังเกตคำว่า "ผันผวน" ไม่ใช่ "เวลาหน่วง"

Jitter เกิดจากอะไร

หนังสือระบุสาเหตุไว้ 4 อย่าง:

  1. การส่งแพ็กเก็ตที่มีขนาดแตกต่างกัน — แพ็กเก็ตใหญ่มี tx มากกว่าแพ็กเก็ตเล็ก
  2. องค์ประกอบของเน็ตเวิร์กที่มีการทำงานที่แตกต่างกัน — อุปกรณ์แต่ละรุ่นประมวลผลไม่เท่ากัน
  3. จำนวนของข้อมูลที่อยู่ในสวิตช์ ทำให้เกิดการรอของแพ็กเก็ตที่แตกต่างกัน (นี่คือ tqueue ตรง ๆ)
  4. การแข่งขันกันส่งแพ็กเก็ตออกในอินเทอร์เฟซหนึ่ง ๆ ให้เร็วที่สุด
เชื่อมกับต้นบท

สังเกตว่าสาเหตุทั้ง 4 ข้อ ล้วนกระทบ tqueue กับ tx ทั้งสิ้น — ส่วน tprop คงที่เสมอ สำหรับเส้นทางเดียวกัน ดังนั้น tprop ไม่ทำให้เกิด jitter มันเป็นแค่ "พื้น" ที่เวลาหน่วงจะต่ำกว่านั้นไม่ได้

เกิดขึ้นยังไง

รูปที่ 6.4(a) แสดงการส่งแพ็กเก็ตในอัตราเร็วคงที่ โดยมีช่องว่างระหว่างแพ็กเก็ตที่เท่ากัน แต่เมื่อถึงภาครับ ผลของเวลาหน่วงต่าง ๆ ที่เกิดขึ้นทำให้แพ็กเก็ตที่ได้รับมีระยะระหว่างแพ็กเก็ตที่แตกต่างกัน ดังรูปที่ 6.4(b) ขึ้นกับปัจจัยของเน็ตเวิร์กในขณะนั้น

แผนภาพสองแถว แถวบน (a) แพ็กเก็ตหมายเลข 1 ถึง 9 เป็นกล่องสี่เหลี่ยมเรียงบนเส้นเวลา โดยมีช่องว่างระหว่างกล่องเท่ากันทุกช่อง มีลูกศรสองหัวกำกับว่าช่วงเวลาระหว่างข้อมูลที่ส่ง แถวล่าง (b) แพ็กเก็ตหมายเลข 1 ถึง 9 ชุดเดียวกันแต่ช่องว่างระหว่างกล่องไม่เท่ากัน บางคู่ชิดกัน บางคู่ห่างมาก พร้อมลูกศรกำกับว่าช่วงเวลาระหว่างข้อมูลที่ส่งที่เกิดขึ้นเนื่องจากเวลาหน่วง
รูปที่ 6.4 จากตำรา — (a) ข้อมูลที่ส่ง (b) ข้อมูลที่ได้รับเนื่องจากเวลาหน่วงในเน็ตเวิร์ก (แพ็กเก็ตยังครบทั้ง 9 ใบและเรียงถูกลำดับ สิ่งที่เปลี่ยนไปคือระยะห่างระหว่างใบ — นั่นแหละคือ jitter)
จุดที่คนพลาดบ่อย — อ่านรูปที่ 6.4 ผิดว่า "ข้อมูลหาย"

ในรูปที่ 6.4(b) ไม่มีแพ็กเก็ตใบไหนหายไปเลย ครบ 1–9 เหมือนเดิม และเรียงลำดับเหมือนเดิม สิ่งที่เสียไปคือความสม่ำเสมอของจังหวะ เท่านั้น — นี่คือความต่างระหว่าง jitter (จังหวะเพี้ยน) กับ packet loss (ของหายจริง) · จะกลายเป็น loss ก็ต่อเมื่อจังหวะเพี้ยนมากจนบางใบมาช้าเกินกำหนดเวลาแสดงผล แล้วปลายทางตัดสินใจข้ามมันไป ซึ่งคือ jitter loss ในรูปที่ 6.6 ข้างล่าง

กราฟความสัมพันธ์ของเวลาหน่วงและ jitter แสดงการแจกแจงความน่าจะเป็นของเวลาหน่วง โดยมี propagation delay เป็นค่าต่ำสุด และช่วง jitter อยู่ระหว่างเวลาหน่วงต่ำสุดกับสูงสุด
รูปที่ 6.5 จากตำรา — ความสัมพันธ์ของเวลาหน่วงและ Jitter · แกนนอนคือเวลาหน่วง แกนตั้งคือความน่าจะเป็นที่จะเกิด สังเกตว่า propagation delay คือขอบซ้ายสุด (ต่ำกว่านี้ไม่ได้) และ "ช่วง jitter" คือความกว้างของหางกราฟ จากเวลาหน่วงต่ำสุดถึงสูงสุด
วิธีอ่านรูปที่ 6.5 ให้เข้าใจ

กราฟนี้บอกว่า ถ้าเราวัดเวลาหน่วงของแพ็กเก็ตเป็นพัน ๆ ใบแล้วเอามาพล็อต จะได้รูประฆังที่หางลากไปทางขวายาว ๆ — แพ็กเก็ตส่วนใหญ่มาถึงเร็ว (ยอดกราฟ) แต่มีบางใบที่ติดคิวจนมาช้ามาก (หางขวา) ความกว้างของหางนี่แหละคือ jitter ยิ่งหางยาว jitter ยิ่งสูง และบัฟเฟอร์ฝั่งรับยิ่งต้องใหญ่

ทำไม Jitter ถึงสำคัญ — และ Jitter loss คืออะไร

เมื่อเราใช้แอปพลิเคชันมัลติมีเดียมากขึ้น รวมถึงการประชุมหรือพูดคุยผ่านเน็ตเวิร์ก หากระบบมีค่า jitter สูง จะทำให้ภาครับจำเป็นต้องมีบัฟเฟอร์ขนาดใหญ่ เพื่อเก็บแพ็กเก็ตที่รับเข้ามาก่อน แล้วจึงแสดงผลตามลำดับการส่ง

หนังสือยกตัวอย่างการฟังเพลง/ดูหนังจาก YouTube หรือ Spotify: เว็บไซต์เหล่านี้ส่งข้อมูลเป็นแพ็กเก็ตอย่างต่อเนื่องมายังผู้รับ และเนื่องจากเป็นการสื่อสารผ่านอินเทอร์เน็ต แพ็กเก็ตที่ได้รับอาจมาถึงอย่างไม่เป็นไปตามลำดับ

แผนภาพ jitter loss แสดงแพ็กเก็ตที่มาถึงผู้รับไม่เรียงลำดับ (1 2 4 3 5 7 6 8) ถูกเก็บในบัฟเฟอร์และปล่อยออกเล่นเรียงลำดับ โดยแพ็กเก็ตที่ 6 มาไม่ทัน เกิด missed playout
รูปที่ 6.6 จากตำรา — Jitter loss · แถวบนคือลำดับที่มาถึงจริง (1 2 4 3 5 7 6 8 — สลับกัน) แถวล่างคือลำดับที่ถูกดึงออกจากบัฟเฟอร์ไปเล่น ส่วน "Time spent in buffer" คือ playout delay ที่เราตั้งไว้ และแพ็กเก็ตที่ 6 คือ missed playout

กลไกทั้งหมดเป็นแบบนี้: แพ็กเก็ตที่ได้รับถูกจัดเก็บที่ภาครับก่อนนำไปแสดงผล โดยจะจัดเรียงในบัฟเฟอร์ให้ถูกต้องตามลำดับ ก่อนนำไปแสดงผลต่อไป แต่หากมี jitter ที่สูงมาก บางแพ็กเก็ตอาจมาไม่ทันการแสดงผล ทำให้เกิด:

อาการภาพค้าง

บางแอปพลิเคชันเลือกรอ ทำให้ภาพหยุดนิ่ง (เห็นบ่อยตอนวิดีโอคอลแล้วภาพค้าง)

ข้ามแพ็กเก็ตไป = loss

บางแอปเลือกแสดงผลโดยข้ามแพ็กเก็ตนั้นไป โดยถือว่าเป็นการสูญหาย (loss) ของข้อมูล — เสียงจะขาดหายเป็นช่วง ๆ

คำตอบสั้นที่ใช้ตอบข้อเขียนได้เลย

Jitter loss = การที่แพ็กเก็ตมาถึงจริง แต่มาช้าเกินกำหนดเวลาแสดงผล (playout deadline) ระบบจึงข้ามมันไปและนับเป็นข้อมูลสูญหาย — ต่างจาก packet loss ปกติที่แพ็กเก็ตหายไปจริง ๆ ระหว่างทาง จุดนี้คือคำถามยอดฮิตของหัวข้อนี้

อัตราการสูญหาย (Packet Loss Rate, PLR)

หนังสือระบุว่า โดยทั่วไปการสูญหายเป็นค่าที่นิยมกล่าวถึงในรูปของเปอร์เซ็นต์ และ การบอกค่าของการสูญหายในเน็ตเวิร์กมักจะแสดงอยู่ในรูปของความน่าจะเป็น เช่น การคำนวณหา อัตราการสูญหายของแพ็กเก็ต (Packet Loss Rate, PLR) ในเรียลไทม์แอปพลิเคชัน เช่น วิดีโอ หรือการสื่อสารแบบเสียงผ่าน IP (VoIP)

ข้อจำกัดของต้นฉบับ

ตรงจุดนี้หนังสือเขียนว่า "สามารถคำนวณได้ด้วยสมการ ??" — คือเป็นการอ้างอิงสมการที่พิมพ์พลาด (ในไฟล์ PDF ขึ้นเป็นเครื่องหมายคำถามจริง ๆ) จึงไม่มีสูตร PLR ให้ในตำราบทนี้ เพราะฉะนั้นถ้าข้อสอบถามถึง PLR ให้ตอบเป็นนิยาม (สัดส่วนของแพ็กเก็ตที่สูญหายต่อแพ็กเก็ตที่ส่งทั้งหมด แสดงเป็นเปอร์เซ็นต์หรือความน่าจะเป็น) แทนการงัดสูตรที่ไม่มีในเล่ม

ส่วนขยาย (ไม่ได้อยู่ในหนังสือ) — นิยามทั่วไปของ PLR
PLR = จำนวนแพ็กเก็ตที่สูญหายจำนวนแพ็กเก็ตที่ส่งทั้งหมด × 100% เป็นความรู้ทั่วไปที่ใส่ไว้ให้ครบ — ต้นฉบับบทที่ 6 ไม่ได้ให้สมการนี้ไว้
แผนภาพเปรียบเทียบ transmission delay กับ propagation delay ด้วยการเทียบเป็นท่อน้ำ โดยมี timeline diagram ของผู้ส่งและผู้รับ
รูปที่ 6.7 จากตำรา — Delay · รูปนี้คือรูปที่ควรจำไปเข้าห้องสอบ: transmission delay คือช่วงที่ "เทน้ำลงท่อ" (แถบสั้น ๆ ที่ฝั่งผู้ส่ง) ส่วน propagation delay คือช่วงที่ "น้ำวิ่งไปตามท่อ" (แถบเฉียงยาว ๆ ตรงกลาง) — คนละช่วงเวลา คนละสาเหตุ

ตัวอย่างคำนวณ (แบบข้อสอบจริง)

ตารางแปลงหน่วยที่ต้องท่องให้ขึ้นใจ

เจอแบบนี้แปลงเป็นตัวอย่าง
byte (B)× 8 → bit50,000 B = 400,000 bit = 4×105 bit
KB / Kbit× 10310 Kbit = 104 bit
Mbps× 106 → bps10 Mbps = 107 bps
Gbps× 109 → bps1 Gbps = 109 bps
km× 103 → m24,000 km = 2.4×107 m
ผลลัพธ์ที่ได้เป็นวินาที× 103 → ms
× 106 → µs
0.04 s = 40 ms · 4×10−6 s = 4 µs
จุดที่คนพลาดบ่อย — ลืมคูณ 8

โจทย์เกือบทุกข้อให้ขนาดข้อมูลมาเป็น byte แต่ให้อัตราเร็วลิงก์มาเป็น bit ต่อวินาที ถ้าลืมคูณ 8 คำตอบจะเล็กกว่าความจริง 8 เท่า พอดี วิธีกันพลาด: เขียน "× 8" ลงในกระดาษคำตอบทันทีที่เห็นคำว่า byte ก่อนจะทำอะไรต่อ

ตัวอย่างที่ 1 — โจทย์จริงจากข้อสอบเก่า (Q4)

โจทย์ — ต้องการส่งข้อมูลขนาด 50,000 byte ผ่านลิงก์ที่มีอัตราเร็ว 10 Mbps โดยระยะทางระหว่างสองจุดคือ 800 เมตร และความเร็วของสัญญาณในสายคือ 2×108 m/s
จงหา (ก) transmission delay (ข) propagation delay (ค) ตัวไหนมีผลมากกว่ากัน

ลองทำเองก่อน แล้วค่อยกดดูเฉลย

ขั้นที่ 1 — แปลงหน่วยให้หมดก่อนแตะสูตร

L = 50,000 byte × 8 = 400,000 bit = 4×105 bit
R = 10 Mbps = 107 bps
d = 800 m  (ให้เป็นเมตรมาแล้ว ไม่ต้องแปลง)
S = 2×108 m/s

ขั้นที่ 2 — (ก) transmission delay

tx = LR = 4×105107 = 0.04 s = 40 ms

ขั้นที่ 3 — (ข) propagation delay

tprop = dS = 8002×108 = 4×10−6 s = 4 µs

ขั้นที่ 4 — (ค) เทียบกัน

txtprop = 0.044×10−6 = 10,000 เท่า transmission delay ใหญ่กว่า propagation delay หนึ่งหมื่นเท่า
อ่านผลลัพธ์

เวลาแฝงรวม (ละ 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

ดูเฉลย
L = 1,000 byte × 8 = 8,000 bit  →   tx = 8,000 / 106 = 0.008 s = 8 ms
d = 24,000 km = 2.4×107 m  →  tprop = 2.4×107 / 2×108 = 0.12 s = 120 ms

ทีนี้แทนใน utilization ของ Stop-and-Wait:

U = txtx + 2tprop = 88 + 240 = 8248 = 0.0323 = 3.23%

เทียบกับตัวอย่างที่ 1 (สาย 800 เมตร) ซึ่งจะได้:

U = 4040 + 0.008 = 0.9998 = 99.98%
บทเรียนของสองตัวอย่างนี้

พารามิเตอร์แทบเหมือนกัน แต่ระยะทางเปลี่ยนอย่างเดียว ทำให้ประสิทธิภาพร่วงจาก 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

L = 12,500 byte × 8 = 100,000 bit = 105 bit
tx = 105 / 107 = 0.01 s = 10 ms ต่อ hop

ขั้นที่ 3 — หา tprop ของหนึ่ง hop

tprop = 400 / (2×108) = 2×10−6 s = 2 µs ต่อ hop

ขั้นที่ 4 — รวมทั้งเส้นทาง

Latency = 3 × 10 ms + 3 × 2 µs = 30 ms + 6 µs = 30.006 ms
จุดสำคัญ

ถ้าไม่มี store-and-forward (คือเร้าเตอร์ส่งต่อทันทีที่บิตแรกเข้ามา) เวลาจะเป็นแค่ 10 ms + 6 µs — ส่วนต่าง 20 ms คือ "ราคาที่ต้องจ่าย" ให้กับการที่เร้าเตอร์ต้องรับแพ็กเก็ตให้ครบก่อนส่งต่อ ข้อสอบชอบให้เปรียบเทียบตรงนี้

ตัวอย่างที่ 4 — ตัวอย่าง 6.2 ของหนังสือ (ทำใหม่ให้ถูกหน่วย)

โจทย์ — แบนด์วิดท์ 10 Mbps ข้อมูลขนาด 10 Kbit จงหา tx

ดูเฉลย (พร้อมคำเตือนเรื่องเลขในหนังสือ)
L = 10 Kbit = 10 × 103 = 104 bit  (โจทย์ให้เป็น bit อยู่แล้ว ไม่ต้องคูณ 8)
R = 10 Mbps = 10 × 106 = 107 bps
tx = 104107 = 10−3 s = 1 ms
ต่างจากที่หนังสือพิมพ์ไว้

หนังสือพิมพ์คำตอบว่า 10 มิลลิวินาที โดยแสดงเศษส่วนเป็น 103/106 ซึ่งไม่ตรงกับทั้งโจทย์และคำตอบของตัวเอง (ดูรายละเอียดในกล่องเตือนของหัวข้อ tx ด้านบน) — ในห้องสอบให้แสดงการแปลงหน่วยทีละบรรทัดแบบนี้ แล้วต่อให้อาจารย์ตรวจด้วยเฉลยเดิม เราก็ยังชี้ได้ว่าทำถูกทุกขั้น

เช็คความเข้าใจ

ถ้าเปลี่ยนจากส่งแพ็กเก็ตขนาด 500 byte เป็น 1,000 byte บนลิงก์เดิม (ระยะทางเดิม อัตราเร็วเดิม) อะไรจะเปลี่ยน?
tx = L/R — L เพิ่มเป็น 2 เท่า R เท่าเดิม ดังนั้น tx เป็น 2 เท่า ส่วน tprop = d/S ไม่มี L อยู่ในสูตรเลย จึงไม่ขึ้นกับขนาดแพ็กเก็ตโดยสิ้นเชิง — สัญญาณวิ่งด้วยความเร็วเท่าเดิมบนสายเส้นเดิมเสมอ
ส่งข้อมูล 50,000 byte บนลิงก์ 10 Mbps — transmission delay เท่ากับเท่าไร?
ต้องคูณ 8 ก่อน: 50,000 byte × 8 = 400,000 bit = 4×105 bit จากนั้น 4×105 / 107 = 0.04 s = 40 ms — ตัวเลือก "5 ms" กับ "0.005 s" คือกับดักของคนที่ลืมคูณ 8 (50,000 / 107 = 0.005 s) ซึ่งเล็กกว่าคำตอบจริงพอดี 8 เท่า
ข้อใดคือคำอธิบายที่ถูกต้องของ "ทรูพุต (Throughput)"?
ตัวเลือกที่ 2 คือนิยามของแบนด์วิดท์ในความหมายทางสัญญาณ (หน่วย Hz) ตัวเลือกที่ 3 คือแบนด์วิดท์ในความหมายทางเน็ตเวิร์ก และตัวเลือกที่ 4 คือนิยามของ Jitter — ทั้งสามอันเป็นศัพท์ในบทเดียวกันหมด ข้อสอบชอบเอามาสลับกัน
แพ็กเก็ตหมายเลข 6 เดินทางมาถึงผู้รับเรียบร้อย แต่มาถึงหลังจากที่ระบบเล่นเสียงผ่านจุดของแพ็กเก็ตที่ 6 ไปแล้ว ระบบจึงข้ามมันไป — เรียกเหตุการณ์นี้ว่าอะไร และแก้ด้วยอะไร?
แพ็กเก็ตมาถึงจริง ไม่ได้หายระหว่างทาง แต่มาช้าเกินกำหนดเวลาแสดงผล จึงถูกนับเป็น loss = jitter loss (รูปที่ 6.6 "missed playout") วิธีแก้ตามหนังสือคือ ภาครับต้องมีบัฟเฟอร์ขนาดใหญ่ขึ้น เพื่อเก็บแพ็กเก็ตที่รับเข้ามาก่อนแล้วแสดงผลตามลำดับ — แต่แลกมาด้วยเวลาแฝงรวมที่สูงขึ้น ส่วนการเพิ่มแบนด์วิดท์ไม่ช่วยอะไรกับ propagation delay เลย
เวลาหน่วงชนิดใดที่ "คำนวณล่วงหน้าไม่ได้" เพราะเปลี่ยนไปตามปริมาณข้อมูลในบัฟเฟอร์ของโนดนั้น ๆ และเป็นต้นตอหลักของ jitter?
Queueing delay ขึ้นกับจำนวนของข้อมูลที่มีอยู่ในบัฟเฟอร์ที่โนดนั้น ๆ ซึ่งเปลี่ยนทุกวินาที (เหมือนคิวแคชเชียร์) ส่วน tx และ tprop คำนวณได้จากสูตรตรง ๆ และ tproc ถือว่าน้อยมากคงที่ — นี่คือเหตุผลที่หนังสือระบุว่าสาเหตุของ jitter ข้อหนึ่งคือ "จำนวนของข้อมูลที่อยู่ในสวิตช์ทำให้เกิดการรอของแพ็กเก็ตที่แตกต่างกัน"
เก็บก่อนออกจากบทนี้
  • 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 ที่สูงขึ้น