Utilization ของ Stop-and-Wait
ข้อนี้ไม่มีตัวเลขให้แม้แต่ตัวเดียว — ต้อง derive คำตอบออกมาเป็นสัญลักษณ์ ทั้ง 4 ข้อย่อย และจุดตายอยู่ที่ M กับ N เป็น byte ต้องคูณ 8 ก่อนเสมอ
10 คะแนน แต่ 2 ข้อย่อยแรก (a และ b) รวมกัน 2 คะแนน ใช้เวลาไม่ถึงนาที — เขียน tprop = S/V กับ tx = 8M/BW ก็ได้ 2 คะแนนแล้ว ส่วนข้อ c อีก 3 คะแนนคือวาดรูป ซึ่งไม่ต้องคำนวณเลย รวม 5 คะแนนแบบแทบไม่ต้องคิด เหลือข้อ d อีก 5 คะแนนที่เป็นการ derive จริง ๆ
โจทย์จริงจากข้อสอบปีที่แล้ว
Q5 (10 คะแนน · 20 นาที)
สมมติให้ส่ง frame จาก A ไป B ที่ขนาด M bytes บนสายสัญญาณที่แบนด์วิดท์ BW Mbps และ link speed V เมตร/วินาที ที่ระยะทาง S เมตร มี Processing delay ที่ X second ของทุกเฟรมรวมถึง ACK และมี queueing delay Q โดยที่ B ตอบกลับด้วย ACK ที่ขนาด N bytes ด้วยระยะทางที่เท่ากัน จงหา utilization ของการส่ง frame
- a. จงหาค่า Propagation delay (1 คะแนน)
- b. จงหาค่า Transmission delay (1 คะแนน)
- c. วาดรูปการสื่อสารที่เกิดขึ้นพร้อมระบุเวลาของ Delay ทั้งหมด (3 คะแนน)
- d. จงหาค่า Utilization ที่เกิดขึ้น (5 คะแนน)
คำว่า "link speed V เมตร/วินาที" ในโจทย์นี้ไม่ใช่ความเร็วของลิงก์แบบ bps — หน่วยมันคือ เมตร/วินาที แปลว่ามันคือ ความเร็วการเคลื่อนที่ของสัญญาณ (propagation speed) ตัวเดียวกับ S ในสมการ tprop = d/S ของบทที่ 6 ส่วน "ความเร็วลิงก์" จริง ๆ คือ BW ถ้าอ่านผิดตรงนี้ ข้อ a กับ b จะสลับกันทันที
คิดยังไง (แนวคิดใน 30 วินาที)
ข้อนี้คือ สมการ 11.1 ของบทที่ 11 เขียนใหม่ด้วยตัวแปรของโจทย์ เท่านั้นเอง ไม่มีอะไรใหม่เลย ท่ามาตรฐานคือ:
แยกให้ออกว่าตัวไหนคือ delay ชนิดไหน — โจทย์โยนตัวแปร 6 ตัวมาปนกัน (M, BW, V, S, X, Q, N) ให้จับคู่กับ delay 4 ชนิดของบทที่ 6 ก่อน
ตัวไหนคูณ 2 ตัวไหนไม่คูณ — สิ่งที่เดินทางและสิ่งที่ถูกประมวลผลเกิดสองรอบ (ไป-กลับ) ส่วนสิ่งที่ถูกยิงขึ้นสายเกิดครั้งเดียวต่อหนึ่งเฟรม และเฟรมข้อมูลกับ ACK ขนาดไม่เท่ากัน จึงแยกเป็นคนละพจน์
Utilization คือ "เวลาที่ได้ประโยชน์ ÷ เวลาทั้งรอบ" — เวลาที่ได้ประโยชน์ของ stop-and-wait คือ
txเท่านั้น (ช่วงที่สายกำลังแบกบิตข้อมูลจริง) ที่เหลือคือเวลาที่สายว่างเปล่ารอ ACKเขียนคำตอบสองรูปแบบ — รูป
U = tx/T(ตรงตามนิยาม) และรูปU = 1/(1+a)(รูปที่หนังสือ/สไลด์ชอบใช้) เขียนทั้งคู่ กันอาจารย์ตรวจคนละแบบ
สูตร/ขั้นตอนที่ต้องใช้
| ตัวแปรในโจทย์ | คืออะไร | หน่วย | เข้าไปอยู่ตรงไหนของสูตร |
|---|---|---|---|
M | ขนาดเฟรมข้อมูล | byte | ตัวเศษของ tx — ต้อง ×8 ก่อน |
N | ขนาดเฟรม ACK | byte | ตัวเศษของ tack — ต้อง ×8 ก่อน |
BW | แบนด์วิดท์ของลิงก์ | Mbps | ตัวส่วนของ tx และ tack (BW Mbps = BW×106 bps) |
S | ระยะทาง A ↔ B | เมตร | ตัวเศษของ tprop |
V | ความเร็วการเคลื่อนที่ของสัญญาณ | m/s | ตัวส่วนของ tprop |
X | Processing delay ต่อ 1 เฟรม | วินาที | คูณ 2 (ประมวลผลเฟรมที่ B + ประมวลผล ACK ที่ A) |
Q | Queueing delay | วินาที | บวกเข้าไปตรง ๆ ตามที่โจทย์ให้มาก้อนเดียว |
ถ้า M เป็น byte และ BW เป็น Mbps พอดี จะได้ว่า tx = 8M/(BW×106) วินาที = (8M/BW) ไมโครวินาที เป๊ะ ๆ เช่น M = 1000 byte, BW = 1 Mbps → 8000 µs = 8 ms — ตรวจได้ในหัวโดยไม่ต้องเขียน 106 เลย (เป็นเพียงเทคนิคช่วยจำ ไม่ได้อยู่ในหนังสือ)
เฉลยละเอียดทีละขั้น
a. Propagation delay 1 คะแนน
เขียนสูตรจากบทที่ 6:
tprop = ระยะทาง ÷ ความเร็วสัญญาณแทนตัวแปรของโจทย์: ระยะทาง =
Sเมตร, ความเร็วสัญญาณ =Vm/s
b. Transmission delay 1 คะแนน
เขียนสูตร:
tx = ขนาดข้อมูล (บิต) ÷ แบนด์วิดท์ (bps)แปลงหน่วยก่อน — ขนาดเฟรม
Mเป็น byte จึงต้องแปลงเป็นบิต:M byte = 8M bitแบนด์วิดท์
BWเป็น Mbps จึงเท่ากับBW × 106bps
และในทำนองเดียวกัน เฟรม ACK ขนาด N byte ใช้เวลายิงขึ้นสาย tack = 8N / (BW × 106) วินาที — ต้องคูณ 8 เหมือนกัน ข้อนี้คนลืมกันเยอะที่สุด
c. วาดรูปการสื่อสารพร้อมระบุเวลา Delay ทั้งหมด 3 คะแนน
3 คะแนนนี้ให้กับองค์ประกอบในรูป ไม่ใช่ความสวย — กดเล่นภาพข้างล่างทีละสเต็ป แล้วลอกลงกระดาษตามลำดับเดียวกันเลย
- เส้นตั้ง 2 เส้น พร้อมชื่อโหนด A และ B ที่หัวเส้น
- ลูกศรเวลาชี้ลง พร้อมคำว่า "เวลา" (ถ้าไม่มี อาจารย์ไม่รู้ว่าอ่านรูปจากบนลงล่างหรือล่างขึ้นบน)
- แถบหนาบนเส้น A ยาวเท่า
txพร้อมเขียนกำกับว่าtx = 8M/BW - ลูกศรเฉียงลง A→B กำกับชื่อเฟรม และช่วงเฉียงนั้นคือ
tprop = S/V - ที่ B:
X(processing) และQ(queueing) เขียนกำกับให้ครบ - แถบ
tack = 8N/BWบนเส้น B แล้วลูกศรเฉียงกลับ B→A กำกับtpropอีกรอบ - ที่ A:
Xอีกครั้ง (ประมวลผล ACK) — นี่คือเหตุผลที่ X คูณ 2 - วงเล็บใหญ่ด้านซ้ายครอบตั้งแต่บิตแรกถึงจบ เขียนว่า T
d. Utilization 5 คะแนน
รวมเวลาทั้งรอบ T — ไล่ตามรูปข้อ c จากบนลงล่าง จะได้พจน์ครบพอดีโดยไม่ต้องท่อง
T = tx + 2tprop + 2X + tack + Qแทนค่าแต่ละพจน์ด้วยตัวแปรของโจทย์
T = 8MBW + 2·SV + 2X + 8NBW + Qเขียนนิยาม Utilization — เวลาที่ "ใช้ส่งข้อมูลจริง" ÷ เวลาทั้งรอบ
U = txT = 8M / BW8M/BW + 2S/V + 2X + 8N/BW + Q(ทางเลือก) คูณทั้งเศษและส่วนด้วย BW เพื่อกำจัดเศษซ้อน — รูปนี้อ่านง่ายกว่าและแทนเลขเร็วกว่า
U = 8M8M + 8N + BW(2S/V + 2X + Q)เขียนในรูป U = 1/(1+a) — นิยาม
a= "เวลาส่วนเกินคิดเป็นกี่เท่าของ tx"a = T − txtx = 2S/V + 2X + 8N/BW + Q8M/BW = BW(2S/V + 2X + Q) + 8N8M
⟹ U = txtx + (T − tx) = 11 + a
เขียนทั้งสองรูปไว้ในกระดาษเลย ใช้เวลาเพิ่มไม่ถึง 20 วินาที แต่กันพลาดได้ทั้งกรณีที่อาจารย์ต้องการรูปนิยามและกรณีที่ต้องการรูป 1/(1+a)
เฉลยเรียงเทอมในตัวส่วนเป็น ttrans,frame + ttrans,ACK + 2tprop + 2X + Q ส่วนหน้านี้เรียงเป็น 8M/BW + 2S/V + 2X + 8N/BW + Q — เป็นสมการเดียวกันเป๊ะ (บวกกันสลับที่ได้) · สิ่งที่ตรวจคือต้องมีครบทั้ง 5 เทอม: เวลายิงเฟรม + เวลายิง ACK + สอง propagation + สอง processing + queueing · ขาดเทอมไหนหักเทอมนั้น
ทำไม U ถึงร่วงเมื่อระยะทางไกลขึ้น — ดูเป็นภาพ
สูตรข้างบนบอกว่า tprop อยู่ที่ตัวส่วน ดังนั้นยิ่งไกล U ยิ่งเล็ก ลองดูสัดส่วนจริงของสามสถานการณ์ (ตัวเลขเป็นตัวอย่างประกอบ ไม่ใช่ส่วนหนึ่งของโจทย์)
a ชนกัน (ไม่ได้อยู่ในโจทย์ แต่เจอบ่อยในสไลด์)
ตำราหลายเล่มนิยาม a = tprop/tx แล้วได้ U = 1/(1+2a) (เลข 2 มาจาก 2tprop และใช้ได้เฉพาะกรณีที่ละ X, Q, tack) ส่วนโจทย์ข้อนี้ที่มี X, Q, tack ครบ ให้ใช้นิยามกว้าง a = (T − tx)/tx แล้วได้ U = 1/(1+a) — ถ้าเขียน a ในกระดาษ ต้องเขียนนิยามของ a กำกับไว้ด้วยเสมอ ไม่งั้นอาจารย์ไม่รู้ว่าคุณหมายถึงตัวไหน และเลข 2 จะกลายเป็นข้อผิดพลาดทันที
กับดักที่ทำให้เสียคะแนน
คำตอบผิดที่เจอจริง: tx = M/BW — โจทย์ให้ M bytes แต่แบนด์วิดท์เป็น bit ต่อวินาที ถ้าไม่คูณ 8 คำตอบเล็กกว่าความจริง 8 เท่า และที่แย่กว่าคือ ผิดซ้ำอีกรอบที่ ACK เพราะคนที่ลืมคูณ 8 ตรง M มักจะลืมตรง N ด้วย → เสียทั้งข้อ b และข้อ d
คำตอบผิดที่เจอจริง: T = 2tx + 2tprop + 2X + Q (คูณ 2 ให้ tx แล้วไม่มี tack) — ผิดเพราะขากลับไม่ใช่เฟรมข้อมูลขนาด M แต่เป็น ACK ขนาด N ซึ่งขนาดต่างกัน จึงต้องเป็นคนละพจน์
| พจน์ | คูณ 2 ไหม | เพราะอะไร |
|---|---|---|
tprop = S/V | คูณ | สัญญาณเดินทางไป 1 รอบ กลับ 1 รอบ ระยะทางเท่ากัน |
X | คูณ | โจทย์บอกเอง: "ของทุกเฟรมรวมถึง ACK" → ประมวลผล 2 ครั้ง |
tx = 8M/BW | ไม่คูณ | เฟรมข้อมูลถูกยิงขึ้นสายครั้งเดียว |
tack = 8N/BW | ไม่คูณ | ACK ถูกยิงขึ้นสายครั้งเดียว (และนี่คือ "ขากลับ" ของ tx) |
Q | ไม่คูณ | โจทย์ให้มาเป็นค่าเดียวรวม ๆ ไม่ได้บอกว่าเกิดสองครั้ง — ถ้าจะคูณ 2 ต้องเขียนเหตุผลกำกับ |
ทางปลอดภัยเรื่อง Q: เขียนกำกับข้าง ๆ ว่า "สมมติ Q เป็น queueing delay รวมของทั้งรอบตามที่โจทย์ให้" — เขียนสมมติฐานไว้ อาจารย์ตัดคะแนนไม่ลง
มีคนสมมติเองว่า BW = 10 Mbps, S = 100 m แล้วคำนวณออกมาเป็นตัวเลข — ผิดโจทย์ทันที ข้อนี้ต้องการคำตอบเป็นสัญลักษณ์ เพราะเขาต้องการดูว่าเรา derive เป็นไหม ไม่ใช่กดเครื่องคิดเลขเป็นไหม ถ้าอยากโชว์ว่าเข้าใจ ให้เขียนเพิ่มท้ายคำตอบว่า "ถ้าแทน … จะได้ …" เป็นตัวอย่างประกอบ แต่คำตอบหลักต้องเป็นสัญลักษณ์
คำว่า "link speed V" ชวนให้คิดว่าเป็น bps แต่หน่วยที่โจทย์ให้คือ เมตร/วินาที ถ้าเอา V ไปหารขนาดข้อมูล จะได้หน่วยประหลาด (bit·s/m) — เช็กหน่วยทุกครั้งก่อนหาร ถ้าหน่วยไม่ออกมาเป็นวินาที แปลว่าใส่ตัวแปรผิดที่
Utilization เป็นสัดส่วน ต้องอยู่ระหว่าง 0 ถึง 1 เสมอ (0–100%) ถ้าคำนวณแล้วได้เกิน 1 แปลว่ากลับเศษกับส่วน (เขียน T/tx แทน tx/T) — ตรวจง่าย ๆ ด้วยสายตา: ตัวส่วนต้องยาวกว่าตัวเศษเสมอ เพราะ T ประกอบด้วย tx บวกของอย่างอื่นอีก
เขียนยังไงให้ได้คะแนนเต็ม
อาจารย์ให้คะแนนขั้นตอน แม้คำตอบสุดท้ายพลาด ก็ยังเก็บได้ ในกระดาษคำตอบต้องมีครบตามนี้:
ข้อ a + b (2 คะแนน)
- เขียนชื่อสูตรก่อน เช่น "Propagation delay = ระยะทาง / ความเร็วสัญญาณ"
- เขียนสูตรสัญลักษณ์
tprop = S/V - ข้อ b เขียนบรรทัดแปลงหน่วยแยกออกมา: "M byte = 8M bit" — บรรทัดนี้แหละที่กันตกข้อ b
- ใส่หน่วยท้ายคำตอบ: "วินาที"
ข้อ c (3 คะแนน)
- เส้นตั้ง 2 เส้น + ชื่อ A, B
- ลูกศรเวลาชี้ลง + คำว่า "เวลา"
- แถบ tx, ลูกศรเฉียง tprop, X, Q, tack, tprop, X — เขียนชื่อกำกับทุกช่วง
- วงเล็บ T คลุมทั้งรอบ
ข้อ d (5 คะแนน)
- บรรทัด "T = tx + 2tprop + 2X + tack + Q" (สมการทั่วไปก่อน)
- บรรทัดแทนตัวแปรของโจทย์ทีละพจน์
- บรรทัด "U = tx/T" พร้อมเศษส่วนเต็ม
- บรรทัด "= 1/(1+a) เมื่อ a = …" พร้อมนิยามของ a
- ตีกรอบคำตอบสุดท้าย
สิ่งที่ทำให้เสียคะแนนฟรี
- เขียนแค่คำตอบบรรทัดเดียวไม่มีที่มา → ได้ไม่เกินครึ่ง
- ไม่ใส่หน่วย
- ใช้
aโดยไม่นิยาม - รูปข้อ c ไม่มีชื่อกำกับช่วงเวลา → เหลือ 1 จาก 3
โจทย์ฝึก 5 ข้อ
ไล่จากง่ายไปยากกว่าของจริงเล็กน้อย · ลองทำในกระดาษก่อนกดดูเฉลย
ข้อ 1 ง่าย — ส่งเฟรมขนาด 1000 byte บนลิงก์ 1 Mbps ระยะ 200 เมตร ความเร็วสัญญาณ 2×108 m/s ACK ขนาด 40 byte ไม่มี processing และ queueing delay จงหา tprop, tx, tack, T และ Utilization
เฉลยข้อ 1
ขั้นที่ 1 — แปลงหน่วยก่อน เฟรม 1000 byte = 8000 bit · ACK 40 byte = 320 bit · 1 Mbps = 106 bps
tx = 8000 / 106 = 8×10−3 s = 8 ms
tack = 320 / 106 = 3.2×10−4 s = 0.32 ms
ขั้นที่ 2 — รวมเป็น T (X = 0, Q = 0)
ขั้นที่ 3 — Utilization
ตรวจด้วยรูป 1/(1+a): a = (8.322 − 8)/8 = 0.04025 → U = 1/1.04025 = 0.9613 ✓ ตรงกัน — สังเกตว่าลิงก์สั้น ๆ ช้า ๆ ได้ U สูงมาก เพราะ tx ครองเวลาเกือบทั้งหมด
ข้อ 2 ง่าย–กลาง — โจทย์สัญลักษณ์ (เปลี่ยนชื่อตัวแปรจากของจริง) ส่งเฟรมขนาด L bytes บนลิงก์ R Mbps ระยะทาง d กิโลเมตร ความเร็วสัญญาณ v m/s ปลายทางตอบ ACK ขนาด A bytes มี processing delay P วินาทีต่อการประมวลผลหนึ่งครั้ง ไม่มี queueing delay จงหา Utilization เป็นสัญลักษณ์
เฉลยข้อ 2
ขั้นที่ 1 — จุดต่างจากของจริงมี 2 จุด คือ (1) ระยะทางให้เป็น กิโลเมตร ต้อง ×1000 ก่อน และ (2) ไม่มี Q
tx = 8LR × 106 วินาที tack = 8AR × 106 วินาที
ขั้นที่ 2 — เวลาทั้งรอบ
ขั้นที่ 3 — Utilization (คูณเศษ-ส่วนด้วย R×106 เพื่อเก็บกวาด)
หรือรูป U = 1/(1+a) เมื่อ a = [8A + R×106(2000d/v + 2P)] / 8L — บทเรียนของข้อนี้: เปลี่ยนชื่อตัวแปรยังไงก็ตาม โครงสมการเหมือนเดิมเป๊ะ สิ่งที่ต้องระวังมีแค่ หน่วยของแต่ละตัว เท่านั้น
ข้อ 3 กลาง — ลิงก์ดาวเทียม: เฟรม 1500 byte, ลิงก์ 10 Mbps, ระยะทาง 36,000 km, ความเร็วสัญญาณ 3×108 m/s, ACK 64 byte, ไม่มี X และ Q · จงหา U แล้วอธิบายว่าทำไมถึงได้ค่านั้น
เฉลยข้อ 3
tprop = 3.6×107 / (3×108) = 0.12 s = 120 ms
tack = (64 × 8) / 107 = 512 / 107 = 0.0512 ms
อธิบาย: a = (241.2512 − 1.2)/1.2 = 200.04 แปลว่าเวลาส่วนเกินยาวกว่าเวลาส่งข้อมูลจริงถึง 200 เท่า สายจึงว่างเปล่าไป 99.5% ของเวลา — นี่คือเหตุผลที่ลิงก์ดาวเทียมห้ามใช้ Stop-and-Wait เด็ดขาด ต้องใช้ Selective Repeat หรือ Go-Back-N ที่มี window (บทที่ 11)
ข้อ 4 กลาง — เฟรม 2000 byte, ลิงก์ 2 Mbps, ระยะ 1000 เมตร, ความเร็วสัญญาณ 2×108 m/s, ACK 50 byte, processing delay X = 0.5 ms ต่อครั้ง และ queueing delay Q = 1 ms · จงหา U ทั้งรูป tx/T และรูป 1/(1+a)
เฉลยข้อ 4
tprop = 1000 / (2×108) = 5×10−6 s = 5 µs = 0.005 ms
tack = (50 × 8) / (2×106) = 400 / (2×106) = 0.2 ms
รวม T — ระวัง: X คูณ 2 แต่ Q ไม่คูณ
= 8 + (2 × 0.005) + (2 × 0.5) + 0.2 + 1
= 8 + 0.01 + 1 + 0.2 + 1 = 10.21 ms
ตรวจด้วยรูป 1/(1+a): a = (10.21 − 8)/8 = 2.21/8 = 0.27625 → U = 1/1.27625 = 0.78355 ✓ ตรงกัน · สังเกตว่าที่ระยะแค่ 1 กม. ตัวที่กิน utilization ไม่ใช่ propagation (แค่ 0.01 ms) แต่เป็น processing + queueing (รวม 2 ms) ต่างหาก
ข้อ 5 ยากกว่าของจริง — ใช้ตัวเลขลิงก์ดาวเทียมจากข้อ 3 (T = 241.2512 ms, tx = 1.2 ms)
(ก) พิสูจน์ว่า ถ้าละ X, Q และ tack จะได้ U = 1/(1+2a′) เมื่อ a′ = tprop/tx
(ข) ถ้าเปลี่ยนไปใช้ Selective Repeat ที่มี window size W ต้องใช้ W อย่างน้อยเท่าไรจึงจะได้ utilization = 100% (ใช้สมการ 11.4: η = min{W·tx/T, 1})
เฉลยข้อ 5
(ก) พิสูจน์ — เริ่มจากนิยาม แล้วตัดพจน์ที่ให้ละทิ้งออก
= txtx + 2tprop หารทั้งเศษและส่วนด้วย tx
= 11 + 2(tprop/tx) = 11 + 2a′ ∎
ตรวจกับตัวเลขดาวเทียม: a′ = 120/1.2 = 100 → U = 1/(1+200) = 1/201 = 0.004975 = 0.4975% ต่างจากคำตอบเต็ม (0.4974%) นิดเดียว เพราะเราตัด tack = 0.0512 ms ทิ้งไป
(ข) หา W ที่ทำให้ utilization เต็ม 100%
อ่านผลลัพธ์: ต้องส่งค้างไว้ในสายพร้อมกันถึง 202 เฟรมกว่าจะใช้ลิงก์ดาวเทียมได้เต็ม — สังเกตว่า T/tx = 1 + a พอดี (201.04 = 1 + 200.04) จึงจำง่าย ๆ ได้ว่า W ที่ต้องใช้ ≈ 1 + a ปัดขึ้นเป็นจำนวนเต็ม
เช็คความเข้าใจ
T = tx + 2tprop + 2X + tack + Q ทำไม X ถึงคูณ 2 แต่ tx ไม่คูณ?U = 1.6 แปลว่าอะไร?tprop = S/V·tx = 8M/BW·tack = 8N/BW— เลข 8 คือคะแนนT = tx + 2tprop + 2X + tack + Q— คูณ 2 เฉพาะสิ่งที่เดินทางกับสิ่งที่ถูกประมวลผลU = tx/T = 1/(1+a)— เขียนทั้งสองรูป และนิยาม a กำกับเสมอ- ข้อ c เป็นการวาดรูป 3 คะแนน — เส้นตั้ง 2 เส้น, ลูกศรเวลา, แถบ tx/tack, ป้าย X, Q, tprop และวงเล็บ T
- ห้ามแทนตัวเลขที่โจทย์ไม่ได้ให้ — คำตอบต้องเป็นสัญลักษณ์ล้วน