The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by zigbeenetworks, 2021-07-22 22:30:12

Computer Network

92 บทที่ 13. ลักษณะของความผิดพลาดของการสื่อสาร



























book)







(partial









only





KKU






รูปที่ 13.4: กรณีที่สามารถตรวจจับความผิดพลาดพบและไม่พบโดยใช้พาริตีบิตแบบสองมิติ


13.1.4 โพลิโนเมียลโค้ด (Polynomial Codes)


โพลิโนเมียลโค้ดหรือเป็นที่รู้จักกันในชื่อของการตรวจสอบด้วยส่วนซํ้าซ้อนแบบวน (Cyclic Redundancy Check,
CRC) มีข้อดีคือ โพลิโนเมียลโค้ดสามารถที่จะพัฒนาได้ด้วยวงจร Shift register อย่างง่าย ทำให้ได้รับการนำไปใช้
กันอย่างแพร่หลายในการตรวจจับข้อผิดพลาด หลักการทำงานโดยนำข้อมูลของเฟรมจำนวน k บิต เปรียบเสมือน
ค่าของข้อมูล k เทอมจาก x k−1 ถึง x ข้อมูลที่มีค่าโพลิโนเมียลสูงสุดจะมีกำลังเป็น x k−1 และบิตถัดไปจะมีค่าเป็น
0
x k−2 จนกระทั่งถึงบิตสุดท้าย เช่น 110001 จะได้เท่ากับ (x + x + x )
0
4
5
การใช้โพลิโนเมียลโค้ดก่อนส่งข้อมูลภาคส่งและภาครับจะต้องตกลงในการใช้ generator polynomial (G(X))
ร่วมกันล่วงหน้า โดยที่บิตแรกและบิตสุดท้ายต้องมีค่าสัมประสิทธิ์เป็น 1 สมมุติว่า เราต้องการจัดการกับโค้ดมีขนาด
ของคำรหัสอยู่ที่ n บิต มีขนาดของข้อมูลเป็น k บิต จะทำให้มีขนาดของ Check bits เป็น n- k ในที่นี้เราจะให้เป็น
(n, k) โดยที่ generator polynomial ของโค้ดที่ยกกำลัง n- k จะได้


g(x) = x n−k + g n−k−1 x n−k−1 + ... + g 1 x + 1

13.1. การตรวจจับและแก้ไขความผิดพลาด (ERROR DETECTION AND CORRECTION) 93



โดยขั้นตอนในการคำนวณค่าสามารถทำได้ดังนี้

ขั้นที่ 1 : ข้อมูลที่จะส่ง (M(X)) จะถูกคูณด้วย X ทำให้ได้จำนวนของบิต 0 จำนวนเท่ากับ r ที่ตำแหน่งท้ายของ
r
ข้อมูล


ขั้นที่ 2 : ผลของการหารด้วย G(X) จะทำให้ได้ผลเป็น Q(X) และมีเศษเป็น R(X) สอดคล้องกับสมการ


r
X · M(X) = Q(X) · G(X) ⊕ R(X) (13.1)
หรือ
r
X · M(X) ⊕ R(X) = Q(X) · G(X) (13.2)
ขั้นที่ 3 : เศษของการหารจะถูกบวกกับ X · M(X) จะทำให้ได้
r

r
T(X) = X · M(X) ⊕ R(X) (13.3)

เพื่อเป็น code word ที่จะส่ง book)

เนื่องจากค่ายกกำลังของเศษมีค่าตํ่ากว่าค่าสูงสุดของ r ดังนั้นการนำค่าของเศษที่เกิดขึ้นในตำแหน่งเศษของ
(partial
X ·M(X) มีค่าเป็นศูนย์ เสมือนการบวกด้วย บิตพาริตีเพื่อใช้ในการตรวจสอบที่จำนวนเท่ากับ r การตรวจสอบของ
r
ด้านรับทำโดยการนำค่าของ T(X) หารด้วย G(X) หากพบว่าค่าของเศษ R(X) มีค่าเป็นศูนย์แสดงว่าข้อมูลที่ได้รับถูก
ต้อง มิฉะนั้นแสดงว่ามีความผิดพลาดเกิดขึ้นระหว่างการสื่อสาร


ตัวอย่าง 13.1 สมมุติให้ข้อมูลที่ต้องการส่งเป็น 10100011 ถ้าค่าของ G(x) เป็น x + 1 รูปที่ 13.5 แสดงการคำนวณ
4
ของภาคส่งในการคำนวณหาค่า frame check sequence (FCS) จากนั้นภาคส่งจะนำค่าที่ได้ต่อท้ายข้อมูล เพื่อส่ง
ไปในช่องสัญญาณ จะเห็นว่าการหารโดยใช้ค่าไบนารีและสัมประสิทธิ์ของ x จากการหารแบบโพลิโนเมียลมีค่าเท่า
กัน (1001) only

KKU




























รูปที่ 13.5: การคำนวณของภาคส่งเพื่อหาค่า CRC


รูปที่ 13.6 แสดงการเปรียบเทียบกรณีของมีและไม่มีความผิดพลาดเกิดขึ้น เมื่อภาครับไดัรับข้อมูล จะเห็นว่า

หากไม่มีความผิดพลาดเกิดขึ้น จะทำให้เศษหลังการคำนวณเป็นศูนย์ดังรูปที่ 13.6 (a) แต่หากเกิดความผิดพลาด

94 บทที่ 13. ลักษณะของความผิดพลาดของการสื่อสาร



























book)


รูปที่ 13.6: การคำนวณของภาครับ (a) แบบไม่เกิดความผิดพลาด (b) แบบเกิดความผิดพลาด



เกิดขึ้น จะเห็นว่าเศษหลังการคำนวณไม่เป็นศูนย์ดังรูปที่ 13.6 (b) ซึ่งในกรณีนี้มีความผิดพลาดขนาดหนึ่งบิตเกิดขึ้น
(partial
ที่บิตห้าของข้อมูลที่ส่ง


ในการใช้งานของโพลิโนเมียลโค้ดการเลือก G(X) มีผลอย่างมากกับการตรวจสอบข้อผิดพลาดที่เกิดขึ้น หาก
กล่าวโดยสรุปจะได้ว่า การใช้งาน G(X) ที่จำนวนบิตเป็น R จะทำให้สามารถตรวจสอบเงื่อนไขต่อไปนี้ ซึ่งถือเป็นข้อดี

ของการใช้ CRC
only

• ค่าของความผิดพลาดแบบ 1 บิต

KKU
• ค่าของความผิดพลาดแบบ 2 บิต


• ค่าของความผิดพลาดที่เป็นจำนวนคี่


• ค่าของความผิดพลาดแบบ burst ที่น้อยกว่า R บิต ในทุกกรณี


• ค่าของความผิดพลาดแบบ burst ที่มากกว่าหรือเท่ากับ R บิต ได้ (ไม่ทุกกรณี)


นอกจากนี้ CRC ยังง่ายต่อการพัฒนาในด้านฮาร์ดแวร์และซอฟต์แวร์ ยิ่งไปกว่านั้นหากใช้ฮาร์ดแวร์ในการตรวจสอบ
จะสามารถเพิ่มความเร็วในการประมวลผลที่เร็วขึ้น ตารางที่ 13.1 แสดงตัวอย่างค่า CRC มาตรฐานที่นิยมใช้


ชื่อ โพลิโนเมียล แอพพลิเคชัน
CRC-8 x + x + x + 1 ATM header
2
8
CRC-10 x + x + x + x + x + 1 ATM AAL
5
2
4
9
10
CRC-16 x + x + x + 1 HDLC
16
5
12
CRC-32 x + x + x + x + x + x + x + x + x + x + x + x + 1 LAN
10
8
2
4
7
22
26
32
16
11
12
ตารางที่ 13.1: CRC มาตรฐานที่นิยมใช้

13.2. สรุป 95



13.2 สรุป



Data Link Layer ถือเป็นส่วนที่มีความสำคัญอย่างมากในการสื่อสาร ระหว่างโนดต่อโนด ซึ่งนอกเหนือจากการ
จัดการข้อมูลที่ได้รับให้อยู่ในรูปของเฟรมแล้ว ยังมีหน้าที่ในการตรวจสอบความผิดพลาดที่อาจเกิดขึ้นอันเนื่องมา
จากการสื่อสารในช่องสัญญาณ
ในบทนี้ เราได้ให้ความสำคัญกับการทำงานของ Data Link Layer และการทำงานในด้านต่างๆ ตั้งแต่การ
จัดการเฟรม, การทำงานของมัลติเพล็กซิง การส่งข้อมูลแบบ ARQ แบบ stop-and-wait, selective-repeat และ
go-back-N ARQ ซึ่งเป็นพื้นฐานสำคัญในการส่งข้อมูลระหว่างโนดที่ติดกัน และเป็นพื้นฐานสำคัญในการทำงาน

ของโพรโตคอลในเลเยอร์ถัดไป นอกจากนี้ เพื่อให้สามารถตรวจหาความผิดพลาดที่อาจเกิดขึ้น การใช้งานการแก้ไข
ความผิดพลาด (Error correction) และการตรวจจับความผิดพลาด (Error detection) ได้นำเสนอในบทนี้เช่นกัน


book)
13.3 คำถามท้ายบท


1. หากข้อมูลเป็น 00011111111001111101000111111111111000011111 จงแสดงข้อมูลที่ส่งหลังจาก

ทำ Bit Stuffing
(partial
2. จงบอกหน้าที่ของการทำงานของ Data Link Layer

3. จุดประสงค์ของการทำมัลติเพล็กซิงคืออะไร


4. จงหาแบนด์วิดท์ที่ต้องใช้ในการส่งข้อมูลเสียง 5 ช่องสัญญาณ แต่ละช่องต้องการแบนด์วิดท์ 4 KHz และ
only
ต้องใช้ Gaurd band ที่ 500 Hz โดยใช้ FDM
5. จากการทำงานของ Stop-and-Wait, Selective Repeat และ Go-Back-N จงยกตัวอย่างแอพพลิเคชันที่
เหมาะสมในการใช้การส่งข้อมูลแต่ละแบบ
KKU
6. ข้อมูล 10100101 ถ้าค่าของ G(x) เป็น x + 1 จงหาค่าที่ส่งออกจากภาคส่ง พร้อมทั้งแสดงการคำนวณของ
3
ข้อมูลที่รับได้ที่ภาครับ

7. ขั้นตอนการทำงานของ Circuit switching มีอะไรบ้าง


8. เปรียบเทียบข้อดีและข้อด้อยของการส่งแบบ Circuit switching กับ Packet switching ความเหมาะสม
ของข้อมูลในการส่งแต่ละประเภท

96 บทที่ 13. ลักษณะของความผิดพลาดของการสื่อสาร



























book)







(partial






รูปที่ 13.7: ตรวจสอบเฟรม

only





KKU

บทที่ 14





การใช้งานช่องสัญญาณ






book)
แบนด์วิดท์ไม่ว่าจะเป็นการสื่อสารแบบมีสายหรือการสื่อสารแบบไร้สาย ถือว่าเป็นสิ่งที่มีขนาดจำกัด การสนับสนุน
การใช้งานแก่ผู้ใช้จำนวนมากถือว่าเป็นสิ่งสำคัญ โดยที่ผู้ใช้แต่ละคนอาจมีความต้องการใช้งานไม่เท่ากัน ในบางช่วง
เวลาผู้ใช้หนึ่งอาจต้องการใช้แบนด์วิดท์เพื่อโอนย้ายข้อมูลจำนวนมาก แต่ในบางช่วงเวลาผู้ใช้ดังกล่าวอาจมิได้ส่งข้อ
มูลใดๆเลย หรือผู้ใช้บางคนอาจใช้งานค่อนข้างน้อย แต่เป็นจำนวนบ่อยครั้ง
(partial
ในระบบสื่อสารการมัลติเพล็กซ์ช่วยให้สามารถใช้ทรัพยากรที่มีจำกัดร่วมกันอย่างมีประสิทธิภาพ อย่างไรก็ตาม
การใช้ทรัพยากรร่วมกันทำให้จำเป็นต้องมีการควบคุมเพื่อป้องกันความเสียหายของข้อมูล เนื่องจากการเข้าใช้ของผู้
ใช้พร้อมๆกันจำนวนมาก
ในบทนี้ เราจะได้กล่าวถึงหลักการต่างๆ ที่ใช้ในการเข้าถึงทรัพยากรที่ใช้ร่วมกัน เช่น การสื่อสารร่วมกันแบบเชิง
เวลาได้แก่ Time Division Multiplexing (TDM) หรือในเชิงความถี่ Frequency Division Multiplexing (FDM)
only
หรือ การเข้าใช้ทรัพยากรแบบ ALOHA และ CSMA/CD รวมถึงโพรโตคอลที่เกี่ยวข้อง



14.1 Deterministic Access Methods
KKU

การจัดสรรทรัพยากรแบบ Deterministic Access เป็นการแบ่งโดยผู้ใช้จองช่องสัญญาณล่วงหน้า เพื่อให้เกิดการ

ใช้ทรัพยากรร่วมกัน เราสามารถทำโดยการแบ่งช่องสัญญาณออกเป็นส่วนย่อยในเชิงความถี่ได้แก่ Frequency
Division Multiplexing (FDM) และ เชิงเวลาได้แก่ Time Division Multiplexing (TDM) เป็นต้น



14.1.1 Frequency Division Multiple Access (FDMA)

การใช้ FDMA ถือเป็นวิธีที่ง่ายที่สุดในการใช้ทรัพยากรร่วมกัน โดยแต่ละผู้ใช้จะได้รับการจัดสรรช่องความถี่ที่ต่างกัน

ดังแสดงในรูปที่ 14.1 พร้อมทั้งกำหนดให้มี Guard band ระหว่างช่องความถี่ของแต่ละผู้ใช้ เพื่อลดผลของครอส
ทอล์กที่อาจเกิดขึ้น ทั้งนี้ผู้ใช้สามารถที่จะรับข้อมูลของตนที่ถูกส่งร่วมกันโดยการใช้ bandpass filter เราสามารถ
สรุปข้อดีและข้อเสียของ FDMA เทียบกับ TDMA ได้ดังนี้


• ข้อดี


– ไม่จำเป็นต้องมีอุปกรณ์เพื่อใช้เป็นส่วนควบคุมกลาง (coordinator)

– สามารถรองรับการทำงานในระบบแอนะล็อกได้

– การพัฒนาค่อนข้างง่าย ผู้ใช้สามารถใช้เพียง bandpass filter เพื่อแยกสัญญาณที่ต้องการ

97

98 บทที่ 14. การใช้งานช่องสัญญาณ






















รูปที่ 14.1: การทำงานของ FDMA



• ข้อเสีย

– มีการใช้ช่องสัญญาณอย่างไม่มีประสิทธิภาพ คือหากช่องสัญญาณไม่มีการใช้งาน ช่องสัญญาณนั้นจะ
ถูกทิ้งไป โดยไม่ได้นำมาใช้ในการเพิ่มความจุของระบบ book)

– จำเป็นต้องมี Guard band ทำให้สูญเสียแบนด์วิดท์บางส่วน
(partial


14.1.2 Time Division Multiple Access (TDMA)


การทำงานของ TDMA ผู้ใช้สามารถใช้ช่องสัญญาณทั้งหมดในช่วงเวลาหนึ่ง โดยที่แต่ละช่วงเวลาถูกแบ่งเท่าๆกัน
เรียกว่า สล็อต (slots) ข้อมูลของผู้ใช้จะถูกส่งเข้าไปในสล็อตเพื่อถูกรวมกันเป็นเฟรมต่อไป รูปที่ 14.2 แสดงการส่ง
only
ข้อมูลของระบบ TDMA นอกจากนี้ผู้ใช้สามารถที่จะใช้หลายสล็อตพร้อมกันได้ เพื่อให้สามารถมีบิตเรทที่สูงขึ้น เรา
สามารถที่จะสรุปข้อดีและข้อเสียของระบบ TDMA ได้ดังนี้


KKU











รูปที่ 14.2: การทำงานของ TDMA




• ข้อดี

– ความสามารถในการปรับค่าบิตเรทในระบบ TDMA โดยสามารถใช้หลายๆช่องสัญญาณพร้อมกัน

เพื่อให้มีอัตราการส่งที่เร็วขึ้น

– สามารถใช้แบนด์วิดท์ได้อย่างมีประสิทธิภาพ เนื่องจากไม่จำเป็นต้องมี Guard band ระหว่างช่อง
สัญญาณ

• ข้อเสีย


– ต้องทำซิงโครไนเซชั่นเพื่อป้องกันการชนของสัญญาณ

14.2. การเข้าใช้ช่องสัญญาณแบบสุ่ม (RANDOM ACCESS METHODS) 99



14.2 การเข้าใช้ช่องสัญญาณแบบสุ่ม (Random Access Methods)



การเข้าใช้ช่องสัญญาณแบบสุ่ม (Random-access method) ทำให้การส่งข้อความขนาดเล็กมีประสิทธิภาพมาก
ขึ้น ผู้ใช้สามารถร้องขอช่องสัญญาณเมื่อมีข้อมูลที่ต้องการส่ง ไม่จำเป็นต้องมีการจองการใช้ล่วงหน้า อย่างไร
ก็ตามการใช้ช่องสัญญาณในวิธีการนี้ทำให้เกิดปัญหาในการชนกันของการใช้ช่องสัญญาณ เนื่องจากการเข้าใช้ช่อง
สัญญาณ ณ เวลาพร้อมกันมากกว่าหนึ่งเครื่อง ทำให้ต้องส่งข้อมูลใหม่อีกครั้ง วิธีการที่นิยมใช้ ได้แก่ pure ALOHA,
Slotted-ALOHA, CSMA และ CSMA/CD ในหัวข้อนี้จะได้อธิบายการทำงานของแต่ละวิธี รวมถึงประสิทธิภาพของ
แต่ละวิธี



14.2.1 การประมาณประสิทธิภาพของเน็ตเวิร์ค


ก่อนที่เราจะได้กล่าวถึงการทำงานในวิธีต่างๆของการเข้าใช้ช่องสัญญาณแบบสุ่ม จะได้กล่าวถึงการคำนวณหา
book)
ประสิทธิภาพของเน็ตเวิร์คเบื้องต้น ค่าที่ได้รับความสนใจในที่นี้ได้แก่ เวลาหน่วงเฉลี่ยของแพกเกต (average
packet delay) ของการเข้าใช้ช่องสัญญาณและทรูพุต
ประสิทธิภาพของเน็ตเวิร์คขึ้นอยู่กับปฏิสัมพันธ์ (interaction) ของตัวแปรสองตัวคือทราฟฟิกที่เข้ามายังระบบ
(traffic load) และทรัพยากรของเน็ตเวิร์ค (network resource) เช่นขนาดของบัฟเฟอร์ หรือความเร็วในการ
(partial
ประมวลผล วิธีการที่นิยมใช้ในการประเมินทรูพุตของระบบคือการใช้ โมเดลแถวคอย (queueing model) แสดงใน
รูปที่ 14.3 ซึ่งแสดงรูปทั่วไปของโมเดลแถวคอยแบบแถวเดียว หมายถึงมีบัฟเฟอร์ที่ใช้ในการเก็บแพกเกตเพียงแถว
เดียว เพื่อเก็บแพกเกตที่รอการประมวลผลที่ขนาด L p จำนวนแพกเกตในบัฟเฟอร์ขึ้นอยู่กับจำนวนของสเตชั่นที่ต่อ
อยู่บนช่องสัญญาณ หากมีจำนวนของสเตชั่นมากขึ้น จะทำให้แพกเกตส่งเข้ายังระบบในอัตราเร็ว (packet arrival
rate) ที่สูงขึ้น แพกเกตที่ส่งเข้ามาจะสามารถส่งได้สำเร็จหรือไม่ ขึ้นอยู่กับวิธีการใช้ช่องสัญญาณที่เลือกใช้
only



ขนาดของแพกเกต (L p) ขนาดของบัฟเฟอร์
แพกเกตที่อยู่ในคิว
KKU
λ
λ T คอนโทรเลอร์

λ


รูปที่ 14.3: โมเดลแถวคอยแบบหน่วยบริการช่องเดียว (Single queue model)


การกำหนดให้แพกเกตขาเข้า (packet arrival) เป็น Poisson Statistics ถือว่าเป็นวิธีการที่ได้รับความนิยมเพื่อ
ใช้ศึกษาทรูพุตของเน็ตเวิร์ค Poisson statistics อยู่บนสมมุติฐานที่ว่าแพกเกตแต่ละแพกเกตที่ได้รับ จะไม่มีความ

สัมพันธ์ต่อกัน แต่มีการกระจายแบบ Poisson distribution โดยที่ ความน่าจะเป็นของแพกเกตที่เข้ามาจำนวน n
ในช่วงเวลา t ใดๆ มีค่าเป็น
n −λt
(λt) e
P n (t) = (14.1)
n!
กำหนดให้ n = 0, 1, 2, ... และ λ เป็นอัตราเร็วเฉลี่ยของแพกเกตที่มา (average packet arrival rate)
การคำนวณค่าทรูพุตในเน็ตเวิร์คเป็นการประเมินกรณีที่แพกเกตส่งสำเร็จเท่านั้น ในรูปของบิตต่อวินาทีหรือแพ
กเกตต่อวินาที ไม่รวมแพกเกตที่เกิดความเสียหายไม่ว่ากรณีใด ดังนั้นเพื่อให้การวิเคราะห์ค่าของทรูพุตไม่ขึ้นอยู่กับ
อัตราเร็วของการส่งข้อมูล เราสามารถเขียนในรูปของ normalized throughput (S)


λL p (14.2)
S =
R

100 บทที่ 14. การใช้งานช่องสัญญาณ



โดย L p เป็นขนาดความยาวของแพกเกต R เป็นอัตราเร็วของการส่ง (transmission rate) ในหน่วยบิตต่อวินาที
และค่าของ S อยู่ระหว่าง 0 - 1
ในกรณีของ Offered load (G) จะเป็น load ที่เกิดขึ้นจริงในเน็ตเวิร์คหรือทราฟฟิกที่ต้องส่งในเน็ตเวิร์ค รวม
ไปถึงแพกเกตที่อาจมีการส่งซํ้า (retransmitted) ดังนั้นผลรวมของ offered traffic (λ T) จะเป็นผลบวกของแพก

เกตที่ส่งสำเร็จตั้งแต่ครั้งแรก (λ) และแพกเกตที่ถูกส่งซํ้าอันเนื่องจากเกิดความเสียหายของแพกเกตระหว่างการส่ง
(λ ) ดังนั้นค่า normalized offered load (G) จะหาได้จาก


λ T L p
S = (14.3)
R

โดยที่ของ λ T ≥ λ หรือ λ T = λ + λ


14.2.2 Pure ALOHA
book)

การทำงานของโพรโตคอล Pure ALOHA ผู้ใช้สามารถส่งข้อมูลทันทีที่มีข้อมูล ข้อมูลจะถูกส่งเป็นแพกเกตหลังจาก
ข้อมูลถูกส่งออกไป ผู้ใช้จะรอเท่ากับเวลาหน่วงของการส่งไปและกลับ (Round-trip delay) เพื่อรอการตอบรับจาก
ผู้รับ (Acknowledgment, ACK) ถ้าไม่ได้รับ ACK ในช่วงเวลาที่กำหนดจะถือว่าแพกเกตดังกล่าวเสียหาย เนื่องจาก
(partial
การชนกันของแพกเกต ดังนั้นผู้ส่งจะสุ่มหาเวลาในการส่งแพกเกตออกไปใหม่ รูปที่ 14.4 แสดงการทำงานของ
โพรโตคอล Pure ALOHA และ รูปที่ 14.5 แสดงถึงช่วงเวลาที่เป็นไปได้ที่แพกเกตที่ส่งจะเกิดการชนกัน






only





KKU

















รูปที่ 14.4: การทำงานของ Pure ALOHA ([14])



normalized throughput (S) ของ pure ALOHA เป็น
1


−2G G เป็นค่าของ normalize offered traffic load (14.4)
S = Ge
จะเห็นว่าจากสมการที่ 14.4 ค่าของทรูพุตสูงสุดจะเกิดขึ้นเมื่อ traffic load อยู่ที่ G เป็น 50% และ S=1/2e
ทำให้ได้ค่าของทรูพุตอยู่ที่ 0.184 ดังนั้น ประสิทธิภาพการใช้งานของโพรโตคอล pure ALOHA อยู่ที่ 18.4%

1 average new packet arrival rate หารด้วย maximum packet throughtput

14.2. การเข้าใช้ช่องสัญญาณแบบสุ่ม (RANDOM ACCESS METHODS) 101






















รูปที่ 14.5: ช่วงเวลาที่จะทำให้เฟรมเกิดการชนกันในการส่งแบบ Pure ALOHA



14.2.3 Slotted ALOHA
book)
การส่งข้อมูลของ Slotted-ALOHA จะถูกแบ่งออกเป็นสล็อต แต่ละสล็อตจะถูกแบ่งเท่าๆกัน ผู้ใช้แต่ละคนกำหนด
เวลาเริ่มส่งเท่ากับการเริ่มต้นของสล็อต เมื่อพบว่ามีแพกเกตที่ต้องการส่ง แพกเกตจะถูกรอไว้ก่อน และจะถูกส่งออก
ในสล็อตถัดไป รูปที่ 14.6 แสดงการทำงานของ Slotted ALOHA โดยพิจารณาช่วงเวลาที่จะทำให้แพกเกตที่ส่งไป
(partial
นั้นเกิดการชนกัน








only





KKU




รูปที่ 14.6: ช่วงเวลาที่จะทำให้เฟรมเกิดการชนกันในการส่งแบบ slotted ALOHA


จากการกำหนดดังกล่าวทำให้ช่วงเวลาเกิดการชนกันของแพกเกตลดลงครึ่งหนึ่ง เมื่อเปรียบเทียบกับการ

ทำงานของ Pure ALOHA ทำให้ normalized throughtput (S) ของ slotted-ALOHA เป็น



S = Ge −G G เป็นค่าของ normalize offered traffic load (14.5)
จากสมการที่ 14.5 ค่าของทรูพุตสูงสุดของ slotted ALOHA มีค่าเป็น 1/e หรือประมาณ 0.368 เกิดขึ้นเมื่อ
ค่าของ G เป็น 1 หมายถึงระบบสามารถที่จะมีประสิทธิภาพการใช้งานอยู่ที่ 36.8% หรือเป็นสองเท่าของ Pure
ALOHA


14.2.4 Carrier Sense Multiple Access (CSMA)


Carrier Sense Multiple Access (CSMA) เป็นการทำงานที่เป็นที่นิยมใช้ทั้งในเน็ตเวิร์คแบบสายและเครือข่ายไร้
สาย การทำงานของ CSMA สเตชั่นจะตรวจสอบ (Sense) ว่าช่องสัญญาณมีการใช้งานอยู่ (busy) หรือไม่ ก่อนที่จะ

ส่งข้อมูลในช่องสัญญาณ ทำให้สามารถลดปัญหาการชนกันของเฟรม

102 บทที่ 14. การใช้งานช่องสัญญาณ



CSMA จะใช้วิธีการตรวจสอบช่องสัญญาณในลักษณะหนึ่งในสามแบบคือ nonpersistent p­persistent และ
1­persistent แต่ละแบบสามารถอธิบายได้ดังนี้

Nonpersistent CSMA: การทำงานของ non-persistent เมื่อสเตชั่นตรวจสอบช่องสัญญาณพบว่าไม่มีการใช้
งาน (idle) สเตชั่นจะส่งเฟรมออกไปทันที แต่หากมีการใช้งานอยู่จะรอเพื่อกลับมาส่งเฟรมใหม่ภายหลัง รูป
ที่ 14.7 แสดงการทำงานของ non­persistent CSMA












รูปที่ 14.7: การทำงานของ non-persistent CSMA
book)


p­persistent CSMA: การทำงานของ p-persistent กำหนดให้ p เป็นค่าความน่าจะเป็นในการส่งข้อมูล หาก
พบว่าช่องสัญญาณนั้นไม่มีการใช้งาน (idle) สเตชั่นจะส่งข้อมูลออกไปด้วยค่าความน่าจะเป็นเท่ากับ p และ

ที่ความน่าจะเป็น 1­p สเตชั่นจะเลื่อนการส่งไปในสล็อตถัดไป โดยการตรวจสอบนี้จะทำทุกครั้งที่จะส่งเฟรม
(partial
รูปที่ 14.8 แสดงการทำงานของ p­persistent CSMA







only


รูปที่ 14.8: การทำงานแบบ p-persistent CSMA

KKU
1­persistent CSMA: การทำงานของ 1-persistent CSMA เป็นการทำงานที่ง่ายที่สุดของ p-persistent CSMA

คือการให้ค่าของ p = 1 เพื่อเน้นความสำคัญของการส่งเฟรม ดังนั้น เฟรมจะถูกส่งทันทีที่ช่องสัญญาณไม่มี
การใช้งาน (idle)











รูปที่ 14.9: การทำงานแบบ 1-persistent



การทำงานของ CSMA จะได้ทรูพุตในกรณีต่างๆ ดังนี้ [23]


Unslotted nonpersistent CSMA
Ge −aG
S = (14.6)
G(1 + 2a) + e −aG
Slotted nonpersistent CSMA
aGe −aG
S = (14.7)
1 − e−aG + a

14.2. การเข้าใช้ช่องสัญญาณแบบสุ่ม (RANDOM ACCESS METHODS) 103



Unslotted 1­persistent CSMA

−G(1+2a)
G[1 + G + aG(1 + G + (aG)/2)]e
S = (14.8)
G(1 + 2a) − (1 − e −aG ) + (1 + aG)e −G(1+a)

Slotted 1­persistent CSMA

−G(1+a) −aG
Ge [1 + a − e ]
S = (14.9)
(1 + a)(1 − e−aG) + ae −G(1+a)

โดยที่




S = normalized throughput

G = normalized offered traffic load

a = τ/T p book)
τ = maximum propagation delay
(partial
T p = packet transmission time




การพัฒนาของ CSMA ทำให้การใช้ช่องสัญญาณร่วมกันมีประสิทธิภาพเพิ่มขึ้น เห็นได้จากรูปที่ 14.10 เป็นการ

เปรียบเทียบทรูพุตของ nonpersistent, p-persistent, 1-persistent CSMA, Pure ALOHA และ Slotted ALOHA
only





KKU


















รูปที่ 14.10: เปรียบเทียบประสิทธิภาพของ ALOHA และ CSMA (รูปจาก [44])





14.2.5 Carrier Sense Multiple Access with Collision Detection (CSMA/CD)

การทำงานของ Carrier Sense Multiple Access with Collision Detection (CSMA/CD) เป็นการพัฒนาต่อย
อดจาก CSMA เพื่อให้มีประสิทธิภาพสูงขึ้น โดยเพิ่มการตรวจจับการชนกันของสัญญาณ (Collision Detection)
เนื่องจากการทำงานของ CSMA เฟรมจะถูกส่งจนสิ้นสุดความยาวทั้งหมด แม้ว่าสเตชั่นต้นทางจะพบว่าเฟรมนั้นเกิด

การชนกัน การตรวจการชน (Collision Detection) จะทำให้สเตชั่นหยุดส่งส่วนที่เหลือของเฟรม หากพบว่ามีการ

104 บทที่ 14. การใช้งานช่องสัญญาณ



























book)






รูปที่ 14.11: การทำงานของ CSMA/CD
(partial


ชนกันของเฟรมขึ้น จากนั้นสเตชั่นจะส่งสัญญาณขนาดเล็กไปในช่องสัญญาณแทนเรียกว่า jamming signal เพื่อ
แจ้งให้ทุกสเตชั่นทราบว่าเกิดการชนกันขึ้น จากนั้นสเตชั่นภาคส่งจะเข้าสู่กระบวนการส่งซํ้า (re-transmission) โดย
ใช้ Exponential Backoff Algorithm การทำงานของ CSMA/CD สามารถสรุปได้ดังรูปที่ 14.11
การใช้อัลกอริทึม exponential backoff เพื่อหลีกเลี่ยงการชนกันอีกครั้งของสเตชั่นที่ต้องการส่งเฟรมใหม่
only
โดยสเตชั่นที่ไม่สามารถส่งเฟรมได้สำเร็จ หากต้องการส่งใหม่จะต้องสุ่มเวลาหน่วงเป็น C เท่าของเวลาหน่วงของการ
แพร่กระจาย(t prop) หรือค่าเฉลี่ยเวลาหน่วงการส่งเฟรม โดยที่ค่า C เป็นค่าสุ่มระหว่าง 0 ≤ c ≤ 2 และ K เป็นของ
K
จำนวนรอบที่สเตชั่นพยายามส่ง ในอีเทอร์เน็ตสเตชั่นจะพยายามส่งเป็นจำนวน 16 ครั้ง หากไม่สามารถส่งได้ เฟรม
KKU
นั้นจะถูกกำจัดทิ้งไป (discard) และแจ้งความผิดพลาด (error) ที่เกิดขึ้น

แม้ว่าการทำงานของ CSMA จะ มีการตรวจสอบการใช้ช่องสัญญาณก่อนส่งเฟรมในช่องสัญญาณ อย่างไรก็ตาม
เฟรมยังมีโอกาสที่จะเกิดการชนกัน พิจารณารูปที่ 14.12 แสดงกรณีการเกิดการชนกันของเฟรมส่งจากสเตชั่น A
และสเตชั่น B เนื่องจากสเตชั่น B เริ่มส่งหลังจากสเตชั่น A ส่งข้อมูลของตนออกไปเพียงเล็กน้อย (Δt) ก่อนที่เฟรม
ของ
สเตชั่น A มาถึงยังสเตชั่น B ดังนั้นแม้ว่าสเตชั่น B จะตรวจสอบ (sense) ว่ามีสเตชั่นอื่นส่งอยู่หรือไม่ จะพบว่าช่อง
สัญญาณยังว่างอยู่ เนื่องจากสัญญาณจากสเตชั่น A ยังมาไม่ถึงจุดที่สเตชั่น B ตรวจสอบ ทำให้สเตชั่น B เข้าใจว่า
สามารถเริ่มส่งเฟรมได้ แต่เมื่อเฟรมของสเตชั่น A มาถึงยังสเตชั่น B ทำให้ สเตชั่น B พบว่าเกิดการชนกันของเฟรม

ขึ้น สเตชั่น B หยุดส่งส่วนของเฟรมที่เหลือพร้อมทั้งส่ง jamming signal
Normalized ทรูพุตของ unslotted persistent และ slotted nonpersistent CSMA/CD สามารถหาได้
จาก[23]


Unslotted nonpersistent CSMA/CD


Ge −aG
S = (14.10)
Ge −aG + bG(1 − e −aG ) + 2aG(1 − e −aG ) + (2 − e −aG )

โดยที่ b = jamming signal length

14.2. การเข้าใช้ช่องสัญญาณแบบสุ่ม (RANDOM ACCESS METHODS) 105



























book)







(partial
รูปที่ 14.12: การส่งข้อมูลของ CSMA/CD



Unslotted nonpersistent CSMA/CD


S = aGe −aG (14.11)
only
aGe −aG + b(1 − e −aG − aGe −aG ) + a(2 − e −aG − aGe −aG )

รูปที่ 14.13 แสดงเปรียบเทียบทรูพุตของการใช้ช่องสัญญาณแบบสุ่มในลักษณะต่างๆ ที่กล่าวไปแล้ว รวมถึง
CSMA/CD จะเห็นว่าการเพิ่มเติมการทำงานส่วนการตรวจจับการชนกัน (collision detection) ทำให้ทรูพุตของ
KKU
ระบบสูงขึ้น


























รูปที่ 14.13: เปรียบเทียบทรูพุตของการเข้าใช้ช่องสัญญาณแบบสุ่มแบบต่าง


แม้ว่าการตรวจสอบการชนกันของเฟรมจะทำให้ระบบมีประสิทธิภาพการทำงานที่สูงขึ้น อย่างไรก็ตาม วิธีนี้ไม่

สามารถใช้กับการสื่อสารแบบไร้สาย เช่น WLAN เนื่องจากสาเหตุหลักสองประการ

106 บทที่ 14. การใช้งานช่องสัญญาณ



• การจะตรวจสอบการชนกันของเฟรมในแบบไร้สาย จำเป็นต้องสามารถตรวจสอบการใช้ช่องสัญญาณได้ ซึ่ง
การที่จะทำเช่นนั้นจะทำให้เพิ่มค่าใช้จ่ายอย่างมาก

• ในเครือข่ายไร้สายไม่สามารถรับประกันได้ว่า ทุกโนดจะรับทราบถึงการใช้ช่องสัญญาณของโนดทุกโนด ใน
ความเป็นจริงแล้ว แม้ว่าจะพบว่าช่องสัญญาณในด้านส่งว่างอยู่พร้อมที่จะส่ง แต่มิได้หมายความว่าช่อง

สัญญาณในทางด้านรับจะว่างเสมอ












book)







(partial









only รูปที่ 14.14: 1-persistence





KKU

บทที่ 15





อีเทอร์เน็ต (Ethernet)







ในช่วงปีคศ. 1980 ถึง 1990 ได้เกิดการใช้งานอีเทอร์เน็ตอย่างแพร่หลายรวมถึงการกำหนดมาตรฐานใหม่ๆขึ้น
book)ถึงคุณลักษณะ การทำงาน
ทำให้มีความจำเป็นในการกำหนดการตั้งชื่อ เพื่อให้เป็นมาตรฐานเดียวกัน รวมไปถึงระบุ
และความเร็ว ทำให้เราสามารถแสดงภาพรวมของชื่อได้ในรูปที่ 15.1 ซึ่งจะประกอบไปด้วย 3 ส่วนคือ


(partial









only





KKU รูปที่ 15.1: มาตรฐานของตระกูล IEEE 802.3







• ส่วนแรกจะเป็นการบอกถึงความเร็วที่ใช้ เช่น 10, 100 หรือ 1000 แสดงถึงความเร็วเป็นเมกะบิตต่อวินาที
(Mbps) ของข้อมูลที่ส่งในสายสัญญาณ

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

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

• ส่วนที่สามอาจจะเป็นตัวเลขหรือตัวอักษร หากใช้ตัวเลขหมายถึงระยะทางสูงสุดในการส่งของข้อมูลที่จะไม่
ทำให้สัญญาณเกิดการลดทอน เช่นการใช้ค่า 10BASE5 หมายถึง การส่งแบบที่เป็นเบสแบนด์ที่ความเร็ว 10

Mbps สามารถส่งได้ในระยะ 500 เมตร ต่อมาภายหลังจะใช้ส่วนนี้ในการระบุถึงชนิดของสายสัญญาณที่ใช้
ในการส่งข้อมูล เช่นการใช้ค่า 10BASE-F หมายถึง 10 Mbps บนสายสัญญาณแบบใยแก้วนำแสง ตารางที่
15.1 สรุปความหมายในสายสัญญาณแบบต่างๆ



107

108 บทที่ 15. อีเทอร์เน็ต (ETHERNET)



Symbol Definition
T Unshielded twisted pair
F Optical fiber
FP Optical fiber passive star
FS Optical fiber backbone
FL Optical fiber link
X Two physical links between nodes
TX Two pairs of STP or Cat-5 UTP
FX Two optical fibers
T4 Four pairs of Cat-3 UTP
SX Short-wavelength duplex optical fiber link
LX Long-wavelength duple optical fiber link
CX One pair of short-UTP wire

book)
ตารางที่ 15.1: ข้อกำหนดตัวย่อบนมาตรฐาน IEEE 802.3


15.1 ความสัมพันธ์ของโมเดล OSI และอีเทอร์เน็ตมาตรฐาน


(partial
จากบทที่ 1 เราได้กล่าวถึงการทำงานของ OSI ในแต่ละเลเยอร์ที่เกิดขึ้น รูปที่ 15.2 แสดงความสัมพันธ์ระหว่าง
10-Mbps กับโมเดล OSI ซึ่งใน Data Link Layer จะประกอบด้วยเลเยอร์ย่อย LLC Sublayer และ MAC Sublayer
ใน Physical Layer ประกอบไปด้วยส่วนของเลเยอร์ย่อย physical signalling sublayer (PLS) และ attachment
unit interface (AUI) เพื่อเป็นช่องสัญญาณระหว่าง MAC และ medium attachment unit (MAU) PLS ทำหน้าที่

จัดการการเข้าใช้ช่องสัญญาณด้วยการ ตรวจสอบสถานะของตัวกลางที่เชื่อมต่อ ในส่วนของ AUI สามารถเป็นได้ทั้ง
only
เคเบิลภายนอกที่เชื่อมต่อการทำงานของ PLS กับ MAU หรืออาจถูกรวมเข้าไปในวงจรรวม (integrated circuit)
ในส่วนของการทำงานกับ MAC และ PLS ในส่วนที่สองนี้วงจรจะถูกใส่เข้าไปยัง network interface card (NIC)
ซึ่งถือว่าเป็นกรณีปกติในปัจจุบัน
ในส่วนของ MAU เพื่อใช้ในการต่อเชื่อมกับสัญญาณระหว่างตัวเครื่องและสายสัญญาณ ซึ่งอาจเป็นเส้นใยแก้ว
นำแสง หรือสายโคแอกเชียล
KKU ประกอบไปด้วยสองส่วนย่อยคือ

1. Physical Medium Attachment (PMA) หรือเรียกว่าตัวรับและส่งในเครื่องเดียวกัน (transceiver) ใช้
เพื่อกำหนดสัญญาณไฟฟ้าหรือสัญญาณแสง สภาวะของสายสัญญาณ สัญญาณนาฬิกา การเข้ารหัสสัญญาณ
และวงจรเพื่อใช้ในการรับส่งข้อมูล

2. Medium­Depent Interface (MDI) เป็นส่วนเชื่อมต่อระหว่างส่วนของ transceiver และสายสัญญาณ




15.1.1 Logical Link Control (LLC)

Logical Link Control (LLC) เป็นส่วนหนึ่งใน Data Link Layer ดังที่ได้กล่าวไปแล้ว เป็นเลเยอร์ย่อยที่ถูกใช้ร่วม

กันในทุกโพรโตคอลของ LAN ดังแสดงในรูปที่ 15.3 LLC มีหน้าที่เบื้องต้นเพื่อกำหนดแอดเดรส และทำให้การแลก
เปลี่ยนข้อมูลระหว่างผู้ใช้กับส่วนควบคุม การทำงานของ LLC ขึ้นกับการทำงานของโพรโตคอลเรียกว่า High­Level
Data Link Control (HDLC) ที่มีการใช้อย่างแพร่หลายบน Data Link Layer เพื่อให้บริการพื้นฐานสามแบบได้แก่

• Unacknowledged connectionless service ใช้ในการส่งเฟรมที่ไม่มีหมายเลข ซึ่งไม่จำเป็นต้องมี
ลำดับของข้อมูล การให้บริการนี้ทำให้ไม่มี overhead เพื่อสร้างการเชื่อมต่อแบบตรรกะ เหมาะสำหรับ

การสื่อสารแบบที่ต้องการ interactive traffic ที่ค่อนข้างมาก

15.1. ความสัมพันธ์ของโมเดล OSI และอีเทอร์เน็ตมาตรฐาน 109


























รูปที่ 15.2: ความสัมพันธ์ของโมเดล OSI และอีเทอร์เน็ตมาตรฐาน
book)

• Reliable connection­oriented service ใช้ในการส่งข้อมูลที่จำเป็นต้องมีการสร้างและยกเลิกการ
เชื่อมต่อ และการควบคุมความผิดพลาด ลำดับ และควบคุมการไหล (flow) ของข้อมูล การใช้ในลักษณะนี้
เหมาะสำหรับการส่งข้อมูลที่ไม่ใช้ Transport Layer เพื่อการส่งข้อมูล
(partial
• Acknowledged connectionless service การให้บริการส่งและตอบรับ (ACK)


โดยทั่วไปแล้ว การบริการทั้งสามแบบเป็นตัวเลือกให้กับผู้ใช้ในการซื้ออุปกรณ์ ซึ่งผู้ใช้สามารถที่จะซื้ออุปกรณ์
ที่สามารถให้บริการสองแบบ หรือ ทั้งหมดขึ้นอยู่กับแอพพลิเคชัน การทำงานของ LLC ใน IEEE 802.3 จะใช้แบบ
Unacknowledged connectionless service โดยจะส่งแบบ Best-effort และ Connectionless ดังนั้นหากไม่มี
only
การเกิดการชนกันของสัญญาณ จะไม่มีการส่งใหม่ของข้อมูล แม้ว่าจะเกิดการสูญหายหรือความผิดพลาดบนสาย
สัญญาณ เพราะฉะนั้นจึงขึ้นอยู่กับเลเยอร์ถัดไปของโพรโตคอลเลเยอร์ที่จะตรวจสอบและส่งข้อมูลใหม่

KKU













รูปที่ 15.3: มาตรฐานของ IEEE-802





15.1.2 โพรโตคอล LLC [23]


ใน LLC ข้อมูลพื้นฐานในการส่ง เรียกว่า protocol data unit (PDU) ดังรูปที่ 15.4 ซึ่งแต่ละ PDU จะประกอบไป
ด้วย destination service access point (DSAP), source service access point (SSAP), Control field ขนาด
8 หรือ 16 บิต สุดท้ายเป็น Information field สามารถปรับขนาดได้ รวมทั้งสิ้นมีขนาด 46-1500 ไบต์ ในส่วนของ
DSAP และ SSAP มี 7 บิตแอดเดรส เพื่อใช้ในการระบุเครื่องของภาคส่งและภาครับ ในส่วนของ DSAP จะใช้บิตแรก
เพื่อระบุถึงชนิดของผู้ใช้เป็นแบบผู้ใช้เดียว (Individual, I) หรือเป็นกลุ่มผู้ใช้ (Group, G) โดยที่ในบิตแรกของ SSAP

แสดงถึงประเภทของเฟรมที่เป็นเฟรมคำสั่ง (Command, C) หรือเฟรมตอบสนอง (Response, R)

110 บทที่ 15. อีเทอร์เน็ต (ETHERNET)




















รูปที่ 15.4: โครงสร้าง LLC PDU





book)







(partial





รูปที่ 15.5: รูปแบบของ LLC PDU


ในส่วนของ Control field จะบ่งถึงชนิดของ PDU ได้แก่ Information frame (I-frame), Supervisory frame
(S-frame) หรือ Unnumbered frame (U-frame) รูปที่ 15.5 แสดงรูปแบบของเฟรมแต่ละประเภท มีรายละเอียด

ดังต่อไปนี้ only
KKU
• I­frame (bit 0 = 0): I­frame ใช้ในการส่งข้อมูลผู้ใช้รวมไปถึงข้อมูลเพื่อการควบคุมที่เกี่ยวข้อง ในส่วน
ของ I-frame นี้จะมี 3 บิตหรือ 7 บิตเพื่อใช้ในการควบคุมการไหลของข้อมูล (flow) และความผิดพลาด เรียก
ว่า N(S) และ N(R) โดยที่ N(S) จะระบุถึงจำนวนของเฟรมที่ส่ง และ N(R) เพื่อใช้ตอบกลับ (acknowledge)
จำนวนของเฟรมที่คาดว่าจะได้รับในการแลกเปลี่ยนข้อมูล

• S­frame (bit 0 = 1, bit 1 = 0): S­frame ใช้ในการควบคุมการส่งข้อมูลเกี่ยวกับการควบคุม (control

information) เช่น ในการควบคุมการไหลของข้อมูล (flow) และความผิดพลาด ใน Data Link Layer โดย
การใช้บิต S ในการบ่งถึงโค้ดที่ใช้

• U­frame (bit 0 = 1, bit 1 = 1): ใช้สำหรับการจัดการระบบ การใช้บิต M ใน U-frame เพื่อบ่งถึงชนิด
ของ U-frame และการทำงานที่เกี่ยวข้อง


สังเกตว่าในเฟรมทั้งสามแบบจะประกอบไปด้วยบิต P/F หรือบิต poll/final ถ้าหากในส่วนแอดเดรสเป็นหมายเลข
ของเครื่องรับ จะหมายถึงการส่ง poll หากแอดเดรสเป็นหมายเลขของเครื่องส่งจะหมายถึง final นอกจากนี้ ใน
LLC PDU นี้จะไม่มี การตรวจสอบความผิดพลาดและแอดเดรสของเครื่อง ซึ่งจะใช้จาก MAC Layer
โดยภาพรวมแล้ว การใช้งานของ LLC เพื่อการควบคุมการไหล (flow) และความผิดพลาดสำหรับเลเยอร์ถัดไป
เช่นในกรณีของการทำงานของ LAN ที่ไม่ได้เชื่อมโยงกับโครงข่ายอื่น LLC จะถูกใช้ในการควบคุมการไหลและความ
ผิดพลาดสำหรับ Application Layer แต่ในกรณีอื่นเช่นการเชื่อมโยงกับอินเทอร์เน็ต ซึ่งมี IP อยู่ในเลเยอร์ถัดไป

การทำงานของ LLC จะไม่ได้ใช้งาน [14]

15.2. MAC FRAME 111



15.2 MAC Frame



MAC Sublayer รับผิดชอบการส่งและรับข้อมูลจากเลเยอร์ LLC เพื่อให้การส่งข้อมูลเป็นไปได้อย่างมีประสิทธิภาพ
ประกอบด้วยการทำซิงโครไนเซชัน การควบคุมการถ่ายเทข้อมูล การควบคุมข้อผิดพลาด จากผู้ใช้คนหนึ่งไปยังอีก
คน นอกเหนือจากนั้นยังมีแอดเดรสเครื่องเพื่อใช้ในการรับและส่งข้อมูลต่อไป โดยเฟรมของ IEEE 802.3 แสดงในรูป
ที่ 15.6











รูปที่ 15.6: รูปแบบของ IEEE 802.3 เฟรม
book)



• Preamble: เป็นส่วนในการส่งเพื่อบอกถึงการเริ่มต้นเฟรม มีขนาด 7 ไบต์ แต่ละไบต์เป็น 10101010 เป็น
การส่งซํ้าๆกันเพื่อให้ภาครับทราบถึงว่าจะมีข้อมูลที่ถูกส่งตามมา และให้ภาครับซิงโครไนซ์สัญญาณนาฬิกา
(partial
กับภาคส่ง

• Start Frame Delimiter: ส่วนของ SFD จะประกอบด้วยบิตของข้อมูลที่เป็น 10101011 โดยที่บิตหนึ่งที่
ติดกันจะเป็นตัวบอกถึงการเริ่มต้นของเฟรม ทำให้ภาครับเริ่มตรวจจับเพื่อหาจุดเริ่มต้นของเฟรมที่จะตาม

มา
only
• Destination Address: ใช้ในการระบุแอดเดรสของภาครับ โดยที่บิตแรกของ DA เป็นการบอกถึงภาครับ
ว่าเป็นแบบยูนิคาสท์ (unitcast) หรือเป็นมัลติคาสท์ (multicast)


• Source Address: เป็นแอดเดรสของภาคส่ง โดยที่อาจเป็นเครื่องต้นทางหรือเร้าเตอร์ล่าสุดที่รับข้อมูลนี้เข้า
KKU
มา และส่งต่อแพกเกตดังกล่าว

• Length/Type: IEEE-802.3 ใช้ในการกำหนดความยาวของข้อมูลใน PDU (ข้อมูลใน LLC ) ที่จะส่ง ขนาด
ที่ยาวที่สุดที่สามารถส่งได้เป็น 1528 ไบต์ หากค่าของฟิลด์นี้มีขนาดน้อยกว่าหรือเท่ากับ 1500 จะเป็นการ

ระบุถึงความยาว หากค่าเท่ากับหรือมากกว่า 1536 จะระบุถึง Type ตัวอย่างของ Type ที่พบเห็นทั่วไปเช่น
0x0800 เป็น IPv4, 0x0806 เป็น ARP และ 0x86dd เป็น IPv6 เป็นต้น

• Data: ส่วนของข้อมูลที่มาจาก LLC โดยที่ขนาดของข้อมูลจะมีขนาดตั้งแต่ 46 ถึง 1500 ไบต์ รูปที่ 15.7
แสดงขนาดของข้อมูล











รูปที่ 15.7: ความยาวตํ่าสุด - สูงสุดของเฟรม


• Pad: เป็นส่วนที่เพิ่มเข้าไปเพื่อทำให้ข้อมูลมีขนาดอย่างตํ่าที่ 64 ไบต์ เพื่อให้การทำงานของการตรวจสอบ

การชนกันของข้อมูลเป็นไปอย่างเหมาะสม

112 บทที่ 15. อีเทอร์เน็ต (ETHERNET)



• Frame check sequence (FCS): เป็นส่วนที่ใช้เพื่อตรวจสอบความผิดพลาดของเฟรม สำหรับอีเทอร์เน็ต
จะใช้ CRC ขนาด 32 บิต โดยที่จะตรวจสอบทั้งหมด ยกเว้นส่วนของ preamble SFD และส่วนของ FCS
เอง เมื่อปลายทางได้รับเฟรม จะตรวจสอบเฟรมที่ได้รับ หากมีการตรวจสอบว่ามีความผิดพลาดขึ้น เฟรมที่
รับได้จะถูกกำจัดออก และจะไม่ส่งผ่านไปยัง Network Layer



15.3 บริดจ์ (Bridge)



บริดจ์ถูกนำมาใช้และเป็นที่แพร่หลายในช่วงปีค.ศ. 1980-1990 เพื่อที่จะเชื่อมต่อระหว่าง LAN เข้าด้วยกัน แต่ใน
ปัจจุบันสวิตช์ได้รับความนิยมมากกว่า เนื่องจากมีประสิทธิภาพที่ดีกว่า มีจำนวนพอร์ตที่มากกว่า ราคาต่อพอร์ตที่

ตํ่ากว่า และ ง่ายต่อการใช้งาน เมื่อเปรียบเทียบกับบริดจ์ อย่างไรก็ตาม เนื่องจากฟังก์ชันส่วนใหญ่ของสวิตซ์พัฒนา
มาจากบริดจ์ ดังนั้นจะได้กล่าวถึงหลักการทำงานของบริดจ์ และข้อจำกัดเมื่อเปรียบเทียบกับสวิตซ์
book)
บริดจ์ทำงานใน Data Link Layer เพื่อควบคุมการถ่ายโอนของข้อมูล การตรวจสอบข้อผิดพลาด กำหนด
แอดเดรสของอุปกรณ์ และการส่งข้อมูลลงไปยังตัวกลางที่ใช้ในการส่งข้อมูล โดยพื้นฐานการทำงานของบริดจ์ คือ
การส่งผ่านข้อมูล (forwarding) การกรองข้อมูล (filtering) และการเรียนรู้ (Learning)


(partial
การเรียนรู้ (Learning) การเรียนรู้ของบริดจ์ทำให้บริดจ์ทราบว่าอุปกรณ์ใดต่อ ณ จุดใด โดยบริดจ์จะใช้ข้อมูลนี้
ในการส่งเฟรมไปยังอุปกรณ์นั้นได้อย่างฉลาด เมื่อบริดจ์ได้รับเฟรม บริดจ์จะอ่านค่าของ MAC แอดเดรส
ของต้นทาง แล้วเปรียบเทียบกับตารางที่มีอยู่ เรียกว่า Port address table หากแอดเดรสที่ได้รับเป็น

แอดเดรสที่ไม่มีในตาราง บริดจ์จะเพิ่มค่าของแอดเดรสและหมายเลขของพอร์ตเข้ายังตาราง หากบริดจ์พบ
ว่ามีแอดเดรสอยู่แล้ว บริดจ์จะตั้งเวลาใหม่ โดยข้อมูลที่เพิ่มเข้าไปจะอยู่ตราบเท่าที่มีการใช้งานของพอร์ต
only
หากมีการเก็บอยู่ในตารางนานเกินไป ค่าที่เก็บไว้อาจถูกแทนที่ด้วยข้อมูลใหม่
การส่งผ่านข้อมูล (Forwarding) หมายถึงการที่บริดจ์ส่งผ่านเฟรมไปยังปลายทาง เป็นการส่งที่ง่าย โดยตรวจ

สอบจาก MAC แอดเดรสของข้อมูลเพื่อตัดสินใจ โดยอาศัยข้อมูลของตารางของบริดจ์ (bridge table) ที่
KKU
สร้างขึ้นจากการเรียนรู้ของบริดจ์ แล้วส่งไปยังปลายทางที่ต้องการ หากพบว่ามีปลายทางของเครื่องรับอยู่ใน
พอร์ตเดียวกัน บริดจ์จะไม่ส่งข้อมูลต่อ แต่หากไม่พบว่ามีข้อมูลของปลายทางที่จะส่งอยู่ภายในบริดจ์ บริดจ์
จะส่งออกไปยังทุกพอร์ต (flooding)


การกรองข้อมูล (Filtering) เป็นการกำจัดเฟรมที่ไม่จำเป็นออกไป บริดจ์สามารถที่จะตั้งเงื่อนไขที่จะกำจัดเฟรม
ที่ไม่ต้องการออกไป โดยที่สามารถดูได้จากส่วนหัวของเฟรมที่ถูกส่งเข้ามา นอกจากนั้นการทำงานในส่วนนี้
ยังช่วยกำจัดข้อมูลบรอดคาสท์และมัลติคาสท์ที่ไม่จำเป็นต้องส่งต่อไปยังบางกลุ่มของผู้ใช้ได้



15.3.1 Transparent Bridges

Transparent bridges เป็นบริดจ์ที่ง่ายที่สุดเพื่อใช้เชื่อม LAN เข้าด้วยกัน การทำงานบริดจ์นี้ จะเริ่มจากอ่านข้อมูล

ของแอดเดรสต้นทางจากเฟรมที่ถูกส่ง โดยแสดงในรูปที่ 15.8 แสดงโครงสร้างการทำงานภายในของ Transparent
Bridge โดยที่บริดจ์จะใช้ส่วนของการเรียนรู้ (learning logic) สร้าง forwarding table จากเน็ตเวิร์คในตารางดัง
กล่าวจะบันทึกค่าของ MAC address และพอร์ตคู่กัน เพื่อใช้ในการพิจารณาในการส่งต่อเฟรมที่ได้รับ forwarding
table ที่สร้างขึ้น สามารถบันทึกการจับคู่จำนวนมากได้ เพื่อรองรับการเชื่อมต่อ LAN จำนวนมาก และยังสามารถที่
จะเก็บค่าของแอดเดรสของฮอปถัดไปได้ โดยที่บริดจ์จะอ่านค่าแอดเดรสปลายทางจากเฟรมที่รับเข้ามา แล้วใช้การ
ทำงานในส่วนของการส่งต่อ (forwarding logic) เพื่อพิจารณาว่าบริดจ์ที่จะส่งไปนั้นเป็นบริดจ์ที่อยู่บนตัวเดียวกัน

(local) หรือเป็นบริดจ์ที่อยู่ระยะไกล (remote)

15.3. บริดจ์ (BRIDGE) 113




















รูปที่ 15.8: โครงสร้างการทำงานภายในของ Transparent Bridge



เนื่องจากจำนวนของข้อมูลที่อยู่ในตารางที่ใช้ในการส่งผ่านข้อมูล (forwarding table) มีขนาดใหญ่ และมี
โอกาสปรับเปลี่ยนตลอดเวลา บริดจ์จะสร้างตารางขึ้นโดยอัตโนมัติ โดยบริดจ์จะตรวจสอบค่าของ MAC address
book)
ต้นทางของเฟรมทุกเฟรมที่ส่งมา เมื่อบริดจ์ได้รับเฟรมบริดจ์จะเปรียบเทียบ MAC address ต้นทางกับตารางที่มีอยู่
หากไม่พบค่าที่ค้นหา บริดจ์จะเพิ่มค่าของ MAC address ต้นทาง พร้อมกับหมายเลขของพอร์ตที่ได้รับข้อมูลเข้า

มา หลังจากนั้นบริดจ์จะตรวจสอบค่า MAC address ปลายทางในตาราง หากพบบริดจ์จะส่งผ่านเฟรมไปยังพอร์ต
ที่ระบุไว้ในตาราง แต่หากพบว่าพอร์ตของต้นทางและปลายทางเป็นพอร์ตเดียวกัน บริดจ์จะกำจัดเฟรมทิ้ง โดยไม่มี
(partial
การส่งต่อข้อมูล และหากไม่พบค่าของปลายทางที่ส่ง บริดจ์จะส่งเฟรมออกไปทุกพอร์ต ยกเว้นพอร์ตที่รับเฟรมเข้า
มา รูปที่ 15.9 แสดงรูปการทำงานของดังกล่าว
นอกจากนี้ เพื่อลดขนาดของตารางที่ต้องค้นหา บริดจ์สามารถจำกัดเวลาของ MAC address ที่อยู่ในตารางได้
โดยมีการเพิ่มส่วนของการจับเวลาของแต่ละแอดเดรส เมื่อบริดจ์เพิ่มแอดเดรสลงไปในตาราง จะกำหนดระยะเวลา
ที่จะจัดเก็บแอดเดรสนั้นเข้าไปด้วย ซึ่งจะมีช่วงเวลาประมาณ 300 วินาที (สามารถปรับเปลี่ยนได้) ดังนั้นเมื่อค่าเวลา
only
นี้มีค่าเป็นศูนย์ ค่าแอดเดรสนั้นจะถูกลบออกจากตารางไป
ข้อจำกัดหนึ่งของบริดจ์คือหากเฟรมที่มีค่าของแอดเดรสที่ไม่สมบูรณ์หรือค่าของปลายทางไม่ปรากฎ จะทำให้
เฟรมถูกส่งต่อไปอย่างไม่หยุด จนกระทั่งถูกส่งไปยังบริดจ์ที่ต่ออยู่ทั้งหมด การเกิดกรณีนี้เรียกว่า broadcast strom
KKU
ทำให้ประสิทธิภาพของระบบลดลง นอกจากนี้ โดยทั่วไปแล้วบริดจ์ไม่สามารถที่จะใช้ใน LAN ที่มีเส้นทางซํ้าๆกัน
(redundant paths) เนื่องจากอาจทำให้เกิด broadcast storm ขึ้น เมื่อมีเส้นที่สามารถใช้งานได้หลายเส้นทาง


ตัวอย่าง 15.1 รูปที่ 15.10 แสดงตัวอย่างทำงานของ Transparent bridge สมมุติว่าที่เวลาเริ่มต้นตารางของบริดจ์
ว่าง มีการเชื่อมต่อในรูป 15.10(a) จากนั้นเมื่อมีสเตชั่น A ส่งข้อมูล บริดจ์จะเก็บค่าของ MAC address กับ
พอร์ต (พอร์ต 1) ที่ได้รับเฟรมนั้นลงในตาราง (15.10(b)) เนื่องจากแอดเดรสของปลายทางไม่อยู่ในตาราง บริดจ์จะ
ส่งเฟรมออกไปยังทุกพอร์ต (15.10(c)) จากนั้นเมื่อสเตชั่น C ได้รับเฟรมและพบว่ามี MAC address เหมือนของตน
สเตชั่น C ตอบกลับไปสเตชั่น A ทำให้บริดจ์บันทึก MAC address พร้อมพอร์ตที่ได้รับเฟรมของสเตชั่น C (พอร์ต 3)

ลงในตาราง สุดท้ายจะได้ตารางของบริดจ์ดังแสดงในรูปที่ 15.10(d)

114 บทที่ 15. อีเทอร์เน็ต (ETHERNET)



























book)







(partial









only





KKU













รูปที่ 15.9: การทำงานของบริดจ์

15.3. บริดจ์ (BRIDGE) 115



























book)







(partial









only





KKU


















รูปที่ 15.10: แสดงขั้นตอนการทำงานของ Transparent Bridge

116 บทที่ 15. อีเทอร์เน็ต (ETHERNET)



























book)







(partial









only





KKU




















รูปที่ 15.11: flooding

บทที่ 16





Spanning Tree Protocol






book)
เพื่อรองรับผู้ใช้จำนวนมาก ในเน็ตเวิร์คอาจมีความจำเป็นต้องใช้สวิตซ์มากกว่าหนึ่งตัว ทำให้มีความจำเป็นในการ
เชื่อมต่อสวิตซ์แต่ละตัวเข้าด้วยกัน ซึ่งอาจทำให้เกิดลูป (loop) ขึ้นเนื่องจากการเชื่อมต่อดังกล่าว ดังรูปที่ 16.1 ทำให้
มีโอกาสเกิดการส่งต่อเฟรมจากสวิตซ์หนึ่งไปยังอีกสวิตซ์หนึ่งอย่างไม่สิ้นสุด ส่งผลให้ประสิทธิภาพของเน็ตเวิร์คลด
ลง
(partial









only





KKU รูปที่ 16.1: ตัวอย่างการเกิดการส่งเป็นแบบลูป (loop) ของเลเยอร์ 2







Spanning Tree Protocol (STP) เป็นโพรโตคอลที่พัฒนาขึ้น เพื่อกำจัดลูป (loop) ที่เกิดขึ้น โดยบริษัท
Digital Equipment Corporation (DEC) ภายหลังได้รับการปรับปรุงโดยสถาบันวิศวกรรมไฟฟ้าและวิศวกรรม
อิเล็กทรอนิกส์นานาชาติ ของประเทศสหรัฐอเมริกาให้เป็นมาตรฐาน IEEE 802.1d อย่างไรก็ตาม เนื่องจากผู้ผลิต

สวิตซ์ทุกรายมิได้ใช้มาตรฐานของ IEEE 802.1d ทั้งหมด ดังนั้นหากมีการใช้สวิตซ์มากกว่าหนึ่งผู้ผลิตในเครือข่าย
LAN เดียวกัน ผู้ดูแลระบบต้องระวังลูปที่อาจเกิดขึ้น เช่นการใช้งานสวิตซ์ของ CISCO ร่วมกับบริษัทอื่น โดยที่
CISCO ใช้มาตรฐานของ IEEE 802.1d โดยปริยาย



16.1 Bridge Protocol Data Units (BPDU)



การทำงานของ STP สวิตซ์จะเริ่มต้นด้วยการแลกเปลี่ยนข้อมูลกับสวิตซ์ที่อยู่ใน LAN เดียวกัน เรียกว่า Bridge
Protocol Data Units (BPDUs) ซึ่งจะถูกส่งออกแบบบรอดคาสท์ เพื่อให้สวิตซ์ที่ทำงานอยู่บนเลเยอร์ 2 หรือ
บริดจ์รับรู้ การทำงานจะเริ่มต้นจากการที่ทุกบริดจ์อ้างตัวเองว่าเป็น root bridge ซึ่ง BPDU นี้จะถูกต่อไปโดยทุก

สวิตซ์ที่เชื่อมต่อ โดยที่ root brigde จะส่ง BPDU ออกไปเป็นช่วงๆ ทำให้สวิตซ์เชื่อว่าตนเป็น designated bridge

117

118 บทที่ 16. SPANNING TREE PROTOCOL



พร้อมทั้งกำหนดพอร์ตเพื่อใช้เป็น root port ก่อนที่จะส่ง BPDU ต่อจนกระทั่ง BPDU ครบทั้ง STP เราเรียก BPDU
ที่ส่งทั้งหมดนี้ว่า configuration message
ในมาตรฐาน IEEE 802.1d ได้กำหนดรูปแบบของ BPDU ไว้สองแบบคือ Configuration BPDU เพื่อใช้ในการ
กำหนดการทำงานและการคำนวณ STP รูปที่ 16.2 และ Topology Change Notification BPDU เพื่อใช้แจ้งกรณี

ที่มีการเปลี่ยนแปลงของ LAN เกิดขึ้น













book)







(partial




รูปที่ 16.2: Configuration BPDU



only
• Protocol identifier (2 ไบต์) : เพื่อระบุถึงอัลกอริทึมของ spanning tree และโพรโตคอลที่กำหนดไว้ใน
802.1 โดยที่จะมีค่าเป็นศูนย์ทั้งหมด

• Protocol version identifier (1 ไบต์) : กำหนดเวอร์ชันของมาตรฐาน มีค่าเป็นศูนย์
KKU

• BPUD type (1 ไบต์) : ประเภทของ BPDU สำหรับการใช้งานของ Configuration BPDU จะกำหนดให้
เป็นศูนย์ทั้งหมด

• Flags (1 ไบต์) : เพื่อใช้กำหนดว่าเป็น BPDU เพื่อการแจ้งถึงการเปลี่ยนแปลงของโทโพโลยี (Topology

Changeflag)หรือเป็นBPDUเพื่อตอบกลับการเปลี่ยนแปลงที่เกิดขึ้น(TopologyChangeAcknowledment
flag)

• Root identifier (8 ไบต์) : แอดเดรสของ root bridge ที่สวิตซ์ที่ส่ง BPDU นี้เชื่อว่า root bridge ประกอบ
ด้วย 2 ไบต์ของค่า priority และ 6 ไบต์ของ Mac address


• Root path cost (4 ไบต์) : ค่าของ path cost จากสวิตซ์ที่ส่งไปยังสวิตซ์ที่เชื่อว่าเป็น root bridge

• Bridge identifier (8 ไบต์) : แอดเดรสของสวิตซ์ที่ส่ง BPDU นี้ ประกอบด้วย 2 ไบต์ของค่า priority และ

6 ไบต์ของ Mac address

• Port identifier (2 ไบต์) : หมายเลขของพอร์ตที่ส่ง BPDU นี้

• Message age (2 ไบต์) : ระยะเวลาการใช้งานหรืออายุของ Configuration message ตั้งแต่ถูกสร้างขึ้น

โดย root ซึ่งหากอายุมากกว่าที่กำหนด BPDU จะถูกกำจัดทิ้งไป

16.1. BRIDGE PROTOCOL DATA UNITS (BPDU) 119



• Maximum age (2 ไบต์) : เวลาสูงสุดที่ควรจะกำจัด configuration message ออกไป

• Hello time (2 ไบต์) : ช่วงเวลาของการส่ง Configuration message ของ root


• Forward delay (2 ไบต์) : เวลา Timeout ของบริดจ์ที่กำหนดโดย Root เพื่อให้แต่ละสวิตซ์ทำงาน
สอดคล้องกันในการเปลี่ยนสถานะของพอร์ตไปเป็น forwarding state นอกจากนี้ยังใช้เพื่อลดเวลาของ
แอดเดรสที่อยู่ใน forwarding database เนื่องจากการเปลี่ยนแปลงของโทโพโลยี



นอกจาก BPDU จะถูกใช้เพื่อสร้าง STP ในช่วงต้นแล้ว สวิตซ์ยังสามารถใช้ BPDU เพื่อแจ้งให้ทราบถึงการ
เปลี่ยนแปลงของโทโพโลยีที่เกิดขึ้น เช่นเกิดความเสียหายของสวิตซ์ โดยการส่ง topology change nofication
BPDU (TC-BPDU) จาก root port ของสวิตซ์ BPDU นี้จะประกอบด้วย protocol identifier, protocol version
และ BPDU type ซึ่งค่าของ BPDU type มีค่าเป็น 10000000
จุดประสงค์ของแจ้งการเปลี่ยนแปลงของโทโพโลยีนี้เพื่อทำให้ root ทราบ ซึ่ง TC-BPDU จะถูกผ่านใน STP

เพื่อไปหา Root ดังนั้นเพื่อให้มั่นใจว่า TC-BPDU จะถูกส่งไปยัง root จริง สวิตซ์จะส่ง
ได้รับการตอบกลับ (acknowledgment) จาก designated bridge จากนั้น designated bridge จะส่ง TC-BPDU
ต่อไปจนกระทั่งถึง root book) BPDU นี้ ไปเรื่อยจนกระทั่ง
เมื่อ root ได้รับการแจ้งเตือนที่เกิดขึ้น root จะส่ง configuration message ออกไป โดยที่มีการกำหนดค่าของ
BPDU flag เป็น 10000000 เมื่อบริดจ์ได้รับ BPDU นี้จาก root
(partial สวิตซ์จะใช้ค่าที่กำหนดในฟิลด์ของ forwarding
delay ใน BPDU เพื่อกำหนดเวลาของแอดเดรสต่างๆที่ถูกบันทึกใน forwarding table ใหม่ (ปกติเดิมอยู่ที่ 300

วินาที) การทำเช่นนี้ก็เพื่อกำจัดเส้นทางเดิมที่บันทึกไว้ออกไป เนื่องการเปลี่ยนแปลงที่เกิดขึ้น สวิตซ์อาจมีเส้นทาง
ใหม่ในการส่งเฟรม จากนั้นเมื่อได้รับ configuation message ใหม่ที่มีค่า BPDU flag เป็นศูนย์ทั้งหมด เวลาของ
การบันทึกค่าแอดเดรสต่างๆ จะกลับไปใช้ค่าเดิมที่ถูกกำหนดไว้



16.1.1 Root Bridge only
KKU
เพื่อสร้าง Spanning tree ในขั้นแรกของการสร้าง STP จะเลือกสวิตซ์ที่จะมาเป็น root การเลือกจะเลือกจากสวิตซ์
ที่มีค่า Bridge ID ตํ่าที่สุด ซึ่ง Bridge ID นี้สามารถตรวจสอบได้จากแพกเกตของ BPDU ที่แลกเปลี่ยนกันระหว่าง
สวิตซ์ โดย Bridge ID ของสวิตซ์ประกอบไปด้วย 2 ส่วนดังแสดงในรูปที่ 16.3
















รูปที่ 16.3: ข้อมูลใน Bridge ID





• Bridge priority (2 ไบต์): แสดงค่าความสำคัญของบริดจ์ (bridge priority) โดยหากเป็นของ CISCO จะ
ถูกกำหนดให้เป็น 32,768


• MAC address (6 ไบต์): ค่า MAC address ของบริดจ์นั้น

120 บทที่ 16. SPANNING TREE PROTOCOL



การเลือกว่าสวิตซ์ตัวใดจะเป็น root จะทำทุกครั้งที่มีการเปลี่ยนแปลงเกิดขึ้น เช่นการที่สวิตซ์เสียหาย หรือมี
การติดตั้งสวิตซ์เพิ่ม สวิตซ์ทุกตัวในเน็ตเวิร์คจะต้องได้รับข้อมูล BPDU จากสวิตซ์ที่เป็น root ตาม maximum age
time ที่กำหนด ทั่วไปเป็น 20 วินาที ถ้าสวิตซ์ไม่ได้รับข้อมูล BPDU จากสวิตซ์ภายในเวลาที่กำหนด สวิตซ์อื่นๆจะ
เข้าใจว่า root อาจล่ม และจะเลือกสวิตซ์ที่จะมาทำหน้าที่เป็น root ใหม่



16.1.2 Root Port


หลังจากเลือก root ได้แล้ว สวิตซ์อื่นต้องเลือกพอร์ตของตนเองหนึ่งพอร์ต ทำหน้าที่เป็น root port เพื่อใช้สื่อสาร
กับสวิตซ์ที่เป็น root โดยจะพิจารณาจากค่าต่างๆดังนี้


ค่า Port Cost and Priorities

book)
ขั้นแรกจะกำหนดค่าของ Cost ของแต่ละพอร์ตหรือเราจะเรียกว่า port cost พอร์ตที่มีค่าของพอร์ตตํ่าสุดจะเป็น
พอร์ตที่จะถูกเลือกก่อน ซึ่งค่าของ cost นี้เป็นส่วนกลับของแบนด์วิดท์ของพอร์ต ปัจจุบันมีการกำหนดค่าของ port
cost 2 ชุด (ตารางที่ 16.1 ) เป็นชุดเก่าและใหม่ ชุดเก่าจะใช้กับสวิตซ์ของ CISCO ที่ได้เลิกการผลิตไปแล้ว เช่น
Catalyst 1900 ในขณะที่ชุดใหม่จะใช้กับสวิตซ์ที่ขายอยู่ในปัจจุบัน เช่น Catalyst 2960 โดยที่สวิตซ์จะเลือกค่า
(partial
พอร์ต cost ที่มีค่าตํ่ามากกว่า นอกจากนั้นแต่ละพอร์ตยังสามารถที่จะตั้งค่าของความสำคัญเรียกว่า port priority
ได้ โดยที่ทั่วไปจะมีค่าเป็น 32


Connection Type New Cost Value Old Cost Value
10 Gbps 2 1
1 Gbps 4 1
only
100 Mbps 19 10
10 Mbps 100 100

ตารางที่ 16.1: พอร์ต Costs ของ STP
KKU



16.1.3 ค่า Path Cost


ค่า Path cost เป็นการคำนวณหาค่า cost ของพอร์ตของสวิตซ์ในโทโปโลยีไปยังสวิตซ์ที่เป็น root เมื่อ root ส่ง
BPDU ออกจากอินเตอร์เฟซ จะมีค่า path cost เป็น 0 (ศูนย์) หลังจากที่สวิตซ์ที่ต่อเชื่อมอยู่รับค่าของ BPDU จะ
เพิ่มค่าของ path cost ขึ้น ตามค่า cost ของพอร์ตที่รับเข้ามา เช่น ถ้าพอร์ตที่ต่ออยู่เป็น Fast Ethernet จะทำให้

ค่าของ path cost เป็น 0 (ค่าของ root) + 19 (ค่าของสวิตซ์) หากสวิตซ์ส่ง BPDU นี้ต่อไป จะเพิ่มค่านี้ไปเรื่อยๆ


16.1.4 Root Port Selection


หากสวิตซ์มีทางเลือกเส้นทางที่จะไปยัง root ได้มากกว่าหนึ่งเส้นทาง สวิตซ์จำเป็นที่จะต้องเลือกหนึ่งพอร์ตที่จะ
เป็น root พอร์ต โดยที่สวิตซ์จะเลือก root port ตามวิธีการดังนี้


1. เลือกเส้นทางที่มีค่าของผลรวมของค่า path cost ไปยัง root ที่มีค่าน้อยที่สุด

2. หากค่าของผลรวม path cost มีค่าเท่ากัน ให้เลือกสวิตซ์ที่อยู่ติดกันที่มีค่า switch ID ตํ่าสุด


3. หากมีหลายเส้นทางที่จะไปยังสวิตซ์ติดกัน ให้เลือกพอร์ตที่มีค่าของความสำคัญตํ่าสุด

16.2. PORT STATES 121



4. หากค่าของความสำคัญเท่ากันให้เลือกพอร์ตตามหมายเลขของพอร์ตของเครื่องที่มีค่าตํ่าสุดเช่นFastEthernet
0/1



16.1.5 Designate Port

แต่ละสวิตซ์จะมีหนึ่งพอร์ตที่เป็น root port ในการส่งเฟรมไปหา root พอร์ตที่เหลือเรียกว่า designated port
รวมถึงการที่มีสวิตซ์มากกว่าหนึ่งตัวในเซกเมนต์เดียวกัน ดังนั้นต้องเลือก designated port ซึ่งสามารถทำได้ดังนี้


1. สวิตซ์ที่ต่อในเซกเมนต์ที่มีค่าของผลรวมของ path cost ไปยัง root ที่ตํ่าที่สุด

2. ถ้าหากมีค่าของผลรวมของ path cost ที่เท่ากันระหว่างสองสวิตซ์ จะเลือกสวิตซ์ที่มีค่าของ switch ID ตํ่า
สุด

book)
3. ถ้าเกิดพบว่าเป็นสวิตซ์เดียวกัน แต่มีการเชื่อมต่อสองเส้นไปยัง LAN เซกเมนต์จะเลือกสวิตซ์ที่มีค่าของความ
สำคัญ (priority) ตํ่าสุด

4. หากยังพบว่ามีค่าของความสำคัญเท่ากันอีก ให้เลือกพอร์ตของสวิตซ์ที่มีหมายเลขตํ่าสุด

(partial
ข้อสำคัญอีกข้อหนึ่งของ root สวิตซ์คือทุกพอร์ตของสวิตซ์จะเป็น designated port เนื่องจากค่าของ cost ที่
ต่อไปยังเซกเมนต์ของเครือข่ายมีค่าเป็น 0 ซึ่งเป็นค่าที่ตํ่าสุดของ cost หรืออีกนัยหนึ่งคือ เนื่องจากเซกเมนต์นั้นต่อ
กับ root สวิตซ์ทำให้ไม่มีค่า cost ใดๆในการที่จะไปยัง root สวิตซ์



16.2 Port States
only


ใน STP พอร์ตที่ต่อกับสวิตซ์สามารถเป็นไปได้อยู่ 5 สถานะ (state)

KKU
• Blocking พอร์ตจะอยู่ในสถานะนี้เมื่อเกิดกรณีต่อไปนี้

– ระหว่างเลือกสวิตซ์ที่จะเป็น root
– เมื่อมีการพบว่ามีเส้นทางอื่นในการที่จะไปหา root สวิตซ์ที่ดีกว่า จากการรับข้อมูลจาก BPDU

– เมื่อไม่ได้เป็นทั้ง root port และ designated port

โดยทั่วไป พอร์ตจะอยู่ในสถานะนี้ 20 วินาที ระหว่างนี้จะรับและประมวลผล BPDU ที่อินเตอร์เฟซเท่านั้น

เฟรมอื่นที่รับได้จะถูกโยนทิ้ง ในระหว่างนี้พอร์ตจะหาว่าพอร์ตใดควรจะเป็น root หรือ designated และ
พอร์ตใดควรจะอยู่ในสถานะ blocking เพื่อป้องกันการเกิดลูป

• Listening ทุก 20 วินาทีตามเวลาที่ตั้งไว้ พอร์ตที่เป็น root และ designated จะเข้าสู่สถานะที่เรียก
ว่า listening พอร์ตอื่นจะยังคงอยู่ในสถานะ blocking ต่อไป ระหว่างที่เข้าสู่สภาวะ listening พอร์ต
จะ listening BPDU และคอยตรวจสอบการเปลี่ยนแปลงของโทโปโลยีในเลเยอร์ 2 ในระหว่างนี้พอร์ตจะ

ประมวลผลเฉพาะ BPDU ส่วนข้อมูลอื่นจะถูกกำจัดไป โดยที่พอร์ตจะอยู่ในสภาวะ listening ตามค่าของ
forward delay timer โดยทั่วไปจะมีค่าเป็น 15 วินาที

• Learning หลังจากอยู่ในสภาวะ listening พอร์ตที่เป็น root และ designated จะเข้าสู่สภาวะ learning
ในระหว่างนี้พอร์ตจะประมวลผล BPDU และจะเริ่มประมวลผลเฟรมที่มาจากผู้ใช้ด้วย เมื่อได้รับเฟรมจากผู้

ใช้ สวิตซ์จะปรับค่าของ MAC หรือ ตารางของพอร์ตแอดเดรส แต่สวิตซ์จะยังไม่ส่งต่อ (forward) เฟรมออก

122 บทที่ 16. SPANNING TREE PROTOCOL



ไปยังพอร์ตที่เป็น designated พอร์ตจะอยู่ในสภาวะนี้ตามเวลาของ forward delay time โดยทั่วไปจะมี
ค่าเป็น 15 วินาที

• Forwarding หลังจากหมดเวลา forward delay time พอร์ตที่อยู่ในสภาวะ learning จะเปลี่ยนเป็น
สภาวะ forwarding พอร์ตเริ่มประมวลผลเฟรม BPDU ปรับค่าของตารางของ MAC แอดเดรสจากเฟรมที่

รับเข้ามา และส่งต่อ (forward) เฟรมออกไปยังพอร์ต

• Disabled สภาวะ disable เป็นสภาวะพิเศษ พอร์ตที่อยู่ในสภาวะนี้จะไม่สนใจกับ STP เนื่องจากพอร์ตนี้
อาจถูกปิดไป เนื่องจากผู้จัดการระบบ หรือถูก disable เนื่องจากปัญหาความมั่นคง หรือไม่ทำงานเนื่องจาก
ความไม่สมบูรณ์





book)







(partial









only





KKU

บทที่ 17





VLAN






book)
17.1 Virtual LAN (VLAN) [17]



การพัฒนาของสวิตซ์ช่วยให้การเชื่อมต่อ LAN ที่ประสิทธิภาพที่สูงขึ้น เมื่อเทียบกับการใช้ฮับ นอกจากนี้การทำงาน
ของ STP ช่วยให้เราสามารถติดตั้งสวิตซ์จำนวนมากได้ โดยไม่ต้องกังวลการเกิด broadcast storm ที่อาจเกิดขึ้น
(partial
Virtual Lan หรือ VLAN เป็นอีกหนึ่งการทำงานของสวิตซ์ที่เอื้อประโยชน์อย่างมากในองค์กรขนาดใหญ่
VLAN ทำให้อุปกรณ์ที่เชื่อมต่อใน LAN สามารถที่จะสื่อสารกันได้ โดยไม่เกี่ยวข้องกับสถานที่ติดตั้งอุปกรณ์

นั้นๆ เมื่ออุปกรณ์เชื่อมต่อเข้ายัง VLAN เดียวกัน ทำให้เสมือนว่าอุปกรณ์นั้นอยู่บนสวิตซ์ของ LAN เดียวกัน ในทาง
ตรงข้าม หากอุปกรณ์นั้นๆ แม้ว่าจะอยู่บนสวิตซ์เดียวกัน หากอยู่ต่าง VLAN ก็ไม่สามารถที่จะสื่อสารกันได้ การทำ
เช่นนี้ทำให้เราสามารถที่จะแยกเครื่องใดเครื่องหนึ่งออกจากระบบได้ โดยไม่จำเป็นต้องยุ่งเกี่ยวกับการติดตั้งสาย
only
เชื่อมต่อ ถือเป็นการทำเชิงตรรกะหรือโดยซอฟต์แวร์ ไม่เกี่ยวข้องกับการติดตั้งฮาร์ดแวร์ ดังนั้นการจะกำหนด VLAN
ได้ สวิตซ์นั้นๆจะต้องรองรับการทำงาน VLAN ด้วย การติดตั้ง VLAN สามารถกำหนดได้สองวิธีการ คือ

1. แบบ static: การกำหนดแบบ static สามารถทำได้โดยง่าย โดยการกำหนดที่พอร์ตของสวิตซ์ เช่น รูปที่
KKU
17.1 เป็นการสร้าง VLAN หมายเลข 2, 3 และ 4 โดยให้ พอร์ต 7 - พอร์ต 9 อยู่บน VLAN 2, พอร์ต 10 -
พอร์ต 12 อยู่บน VLAN 3 และ พอร์ต 2 - พอร์ต 3 กับ พอร์ต 5 - พอร์ต 6 อยู่บน VLAN 4 พอร์ตที่เหลือ
อยู่เป็นพอร์ตโดยปริยาย ในสวิตซ์ของ บริษัท Cisco จะให้ VLAN 1 เป็นแบบปริยาย

ดังนั้น จากรูปจะพบว่า PC 1 สามารถที่จะสื่อสารกับ PC 2 ได้ เนื่องจากอยู่บน VLAN เดียวกัน และ PC 3
สามารถที่จะสื่อสารกับ PC 4 เนื่องจากอยู่บน VLAN เดียวกันเช่นกัน แต่ PC 1 และ PC 2 ไม่สามารถที่จะ
สื่อสารกับ PC 3 หรือ PC 4 ได้ เนื่องจากอยู่ต่าง VLAN กัน หรืออาจกล่าวได้ว่าอยู่คนละ บรอดคาสท์โดเมน













รูปที่ 17.1: การติดตั้ง VLAN บนสวิตซ์


ปัญหาที่ตามมาก็คือ เนื่องจาก PC 1 และ PC 2 อาจจำเป็นต้องสื่อสารกับ PC 3 และ PC 4 จะต้องทำ
อย่างไร เนื่องจาก PC 1 และ PC 2 เสมือนอยู่ต่างเครือข่าย LAN กับ PC 3 และ PC 4 ทำให้ต้องมีเร้าเตอร์

มาช่วยในการเชื่อมต่อ ดังแสดงในรูปที่ 17.2 เพื่อเชื่อมระหว่าง VLAN 2 และ VLAN 4 หากการติดตั้งเป็น

123

124 บทที่ 17. VLAN



ไปอย่างถูกต้อง PC ใน VLAN 2 จะสามารถสื่อสารกับ VLAN 4 ได้ โดยที่ไม่ทราบว่าทั้งสอง VLAN อยู่บน
สวิตซ์เดียวกัน
















รูปที่ 17.2: การติดตั้ง VLAN บนสวิตซ์ ผ่านเร้าเตอร์


book)
2. แบบ dynamic: เป็นการกำหนดโดยอาศัย MAC address ซึ่งติดตั้งได้ยากกว่า แต่มีความคล่องตัวสูง
ในกรณีที่มีพนักงานจำนวนมาก หากต้องมีการย้ายไปมาบ่อย เช่นในปัจจุบันเมื่อพนักงานมี laptop หรือ
notebook ที่สามารถเคลื่อนย้ายไปมาได้สะดวกมากขึ้น แต่ไม่ได้รับความนิยมมากนัก เนื่องจากการติดตั้งที่
ยุ่งยาก
(partial

17.1.1 VLAN Tagging

การสร้าง VLAN อีกทางหนึ่งคือการเพิ่ม tag ลงบนเฟรมที่ส่ง การใช้ tag สามารถที่จะส่งเฟรมไปมากกว่าหนึ่ง VLAN
พร้อมกัน ทำให้สวิตซ์หรือเร้าเตอร์ส่งต่อ (forward) เฟรมไปยังแต่ละ VLAN อาศัยข้อมูลของ tag และสามารถส่ง

ผ่านไปยังพอร์ตเดียวกันได้ เรียกการทำงานนี้ว่า trunking การทำเช่นนี้ทำให้เราสามารถที่จะประหยัดพอร์ตบน
only
สวิตซ์และเร้าเตอร์ได้ ตัวอย่างเช่น หากเราต้องการที่จะขยายให้ VLAN 2, 3 และ 4 ในรูปที่ 17.2 สามารถสื่อสาร
กันได้ ท่านต้องเชื่อมต่อเร้าเตอร์ดังรูปที่ 17.3

KKU













รูปที่ 17.3: การติดตั้ง VLAN จำนวน 3 VLAN บนสวิตซ์ผ่านเร้าเตอร์


ในรูปที่ 17.4 เป็นการติดตั้ง VLAN โดยการใช้ Trunk จะเห็นว่าการเชื่อมต่อดังกล่าวสามารถลดการใช้พอร์ตลง
โดยแต่ละ Trunk สามารถที่จะรองรับหลาย VLAN ได้

นอกจากนี้ หากท่านต้องการที่จะเชื่อมต่อสวิตซ์สองตัวเข้าด้วยกัน โดยที่แต่ละตัวประกอบไปด้วยสี่ VLAN ทำให้
ท่านต้องใช้สายสี่เส้นเพื่อเชื่อมต่อ แต่ละเส้นสำหรับ VLAN แต่ละ VLAN การใช้ Trunks สำหรับการเชื่อมต่อสวิตซ์
นี้ สามารถแสดงได้ในรูปที่ 17.5
ในการส่งใช้เฟรมบน Trunk โดยการใช้ tag ในรูปที่ 17.5 ทั้งสองฝั่งจำเป็นต้องตกลงกันในโพรโตคอลที่จะ
เลือกใช้ ปัจจุบันหากกล่าวถึงสวิตซ์ของ CISCO สามารถทำได้สองวิธีคือ การใช้ Inter-Switch Link (ISL) ซึ่งเป็น
ของ CISCO เอง และการใช้ IEEE 802.1Q ซึ่งสามารถทำงานได้กับสวิตซ์ของหลายผู้ผลิต แต่ไม่ทุกสวิตซ์ที่สามารถ

สนับสนุนการทำงานของทั้งสอง

17.1. VIRTUAL LAN (VLAN) [?] 125















รูปที่ 17.4: การติดตั้ง VLAN บนสวิตซ์ ผ่าน Trunk










book)







(partial






รูปที่ 17.5: การติดตั้ง VLAN บนสวิตซ์ ผ่าน Trunk

only
หากใช้ IEEE 802.1Q สำหรับ VLAN อย่างที่กล่าวไปแล้ว การใช้งานสามารถใช้ได้กับหลากหลายผู้ผลิต นอกจาก
นี้ หากใช้ IEEE 802.1Q กับสวิตซ์ที่ไม่สนับสนุนการใช้งานของโพรโตคอลนี้ เฟรมยังสามารถที่จะถูกส่งต่อไปได้
เนื่องจาก IEEE 802.1Q เพียงเพิ่มข้อมูลของ VLAN tag ในเฟรมเท่านั้น การทำเช่นนี้ทำให้การใช้งานของ VLAN ที่
KKU
ใช้โพรโตคอล IEEE 802.1Q สามารถใช้กับสวิตซ์รุ่นก่อนได้ รูปที่ 17.6 แสดงส่วนของ tag ที่เพิ่มเติมในอีเทอร์เน็ต
เฟรมปกติ















รูปที่ 17.6: รูปแบบของ IEEE 802.1Q



จากรูป 17.6 จะเห็นว่าเพื่อแก้ไขเฟรม อีเทอร์เน็ตเดิมให้สนับสนุน VLAN tag ฟิลด์ Type/Length ของเฟรม
ถูกกำหนดให้มีค่า 0x8100 ทำให้ฟิลด์นี้มีค่ามากกว่า 1500 ดังนั้นในอีเทอร์เน็ตจะเข้าใจว่าเป็นการกำหนด Type
(ประเภทของเฟรม) มิใช่ Lenght (ความยาวเฟรม) กำหนดให้ สองไบต์ถัดมาถูกใช้ในการกำหนดข้อมูลเกี่ยวกับ tag
เรียกว่า tag control information field (TCIF) คือถูกแบ่งออกเป็นสามส่วน



• priority: เพื่อใช้กำหนดประเภทของทราฟฟิกเช่น hard real-time หรือ soft real-time traffic

126 บทที่ 17. VLAN



• Canonical Format Indicator (CFI) : กำหนดรูปแบบของข้อมูล เป็นลอจิก 0 แบบ little Endian ในขณะ
ที่เป็นลอจิก 1 จะเป็น big Endian


• VLAN indentifier: ใช้ในการระบุ ID ของ VLAN สามารถระบุได้สูงสุด 4096 VLAN

ข้อดีนอกเหนือจากที่กล่าวไปแล้วคือการใช้ IEEE 802.1Q เพียง 4 ไบต์เท่านั้น เพื่อแทรกระหว่างแอดเดรส
ต้นทางกับฟิลด์ความยาวหรือประเภทของเฟรม อย่างไรก็ตามเนื่องจากการเพิ่มนี้จำเป็นจะต้องมีการคำนวณ FSC

ใหม่ และขนาดของเฟรมทั้งหมดจะเหลือเพียง 1522 ไบต์
ISL ถือเป็นโพรโตคอลเฉพาะของ Cisco การทำงานของ ISL จะแตกต่างจาก IEEE 802.1Q โดยที่ ISL จะเพิ่ม
เฮดเดอร์และค่า FCS ให้กับเฟรมเดิม หรือกล่าวง่ายๆก็คือ ห่อหุ้มเฟรมเดิมด้วยเฮดเดอร์ใหม่ รูปที่ 17.7 แสดงส่วน
เพิ่มเติมโดยโพรโตคอล ISL โดยที่ส่วนของเฮดเดอร์จะประกอบไปด้วยข้อมูลหมายเลขของ VLAN และข้อมูลอื่นที่
เกี่ยวข้อง ในส่วน FCS จะเป็นการคำนวณค่า checksum ตั้งแต่เฮดเดอร์ของ ISL แต่จะเป็นคนละ FCS กับเฟรม
book)
อีเทอร์เน็ต การเพิ่มของ ISL จะเพิ่มขนาดของเฟรมอีก 30 ไบต์ หากเป็นเฟรมที่มีขนาดสูงสุดแล้วที่ 1518 ไบต์ จะ
ทำให้เฟรมที่ขนาดเป็น 1548 ไบต์ ซึ่งหากมิใช้สวิตซ์ของ Cisco อาจทำให้มีปัญหาในการส่งข้อมูลได้




(partial


รูปที่ 17.7: ส่วนเพิ่มเติมโดยโพรโตคอล ISL





only
17.1.2 VLAN Trunking Protocol (VTP)

โพรโตคอล VTP เป็นโพรโตคอลที่ใช้เพื่อช่วยกำหนด VLAN ให้แก่สวิตซ์จำนวนมากที่อยู่ในเน็ตเวิร์ค การใช้งาน VTP
ทำให้สามารถที่จะติดตั้งบนสวิตซ์ตัวเดียวและกระจายไปทั่วเน็ตเวิร์ค เช่นในองค์กรที่มีสวิตซ์อยู่ 100 สวิตซ์การที่จะ
KKU
ติดตั้งทั้งหมดที่ละสวิตซ์ เพื่อให้สามารถใช้งานได้อย่างถูกต้อง โดยไม่สับสนระหว่าง VLAN อาจทำได้ยาก ยิ่งไปกว่า

นั้นหากมีความจำเป็นต้องแก้ไข อาจทำให้เกิดข้อผิดพลาดมากขึ้น
การทำงานเริ่มจากการที่ VTP แจ้ง (advertise) ข้อมูลของการติดตั้ง VLAN ไปยังทุกพอร์ตของ Trunk ดังนั้น
สวิตซ์ข้างเคียงเรียนรู้ข้อมูลของ VLAN ที่มีอยู่ จากนั้นกระจายข้อมูล VLAN ต่อไปยังสวิตซ์อื่นๆ การทำงานของ VTP
มีโหมดต่างๆ ดังนี้


โหมด Client ในโหมดนี้ สวิตซ์จะรอรับการแจ้ง (advertise) ข้อมูล VLAN และปรับเปลี่ยนตามข้อมูลที่ได้รับ การ
เปลี่ยนแปลงของ VLAN ในโหมด client นี้จะเกิดขึ้นจาก VTP เท่านั้น ไม่สามารถเปลี่ยนแปลงที่สวิตซ์ได้
โดยตรง


โหมด Server การทำงานในโหมดจะรอรับการแจ้ง (advertise) ของ VTP และสร้างการแจ้ง (advertise) ใหม่
การแก้ไขหรือลบที่สวิตซ์สามารถทำได้ในโหมดนี้ การแก้ไขที่เกิดขึ้นนี้จะทำให้เกิดการเปลี่ยนแปลงไปยัง
VLAN เพื่อแก้ไขข้อมูลใหม่ ดังนั้นในระบบทั่วไปควรมีหนึ่งหรือสองสวิตซ์เท่านั้นที่เป็นโหมด Server การ

แก้ไขใดในโหมดนี้ควรทำอย่างระมัดระวัง เนื่องจากจะถูกกระจายไปทั้งระบบ

โหมด Transparent การทำงานในโหมดนี้จะส่งต่อการแจ้ง (advertise) ที่ได้รับเท่านั้น ข้อมูลต่างๆในการแจ้ง
(advertise) ไม่มีผลใดๆต่อสวิตซ์ที่ทำงานในโหมดนี้ การแก้ไขใดๆในสวิตซ์นี้ ทำได้โดยตรง ณ สวิตซ์ และจะ

ไม่มีผลต่อสวิตซ์อื่น

17.1. VIRTUAL LAN (VLAN) [?] 127















รูปที่ 17.8: การทำงานของ VTP



รูปที่ 17.8 แสดงตัวอย่างเน็ตเวิร์คประกอบไปด้วยสวิตซ์จำนวน 5 สวิตซ์ (SW1 - 5) แต่ละสวิตซ์มีโหมดการ
ทำงานตามที่กำกับ ดังนั้น เมื่อสวิตซ์ 4 ส่งการแจ้ง (advertise) ในเน็ตเวิร์คจะถูกกระจายต่อไป โดยที่สวิตซ์ 2 และ
สวิตซ์ 5 จะถูกปรับตามที่ได้รับจาก VTP Server แต่อย่างไรก็ตามสวิตซ์ 3 จะไม่มีการปรับตามที่ได้รับ เนื่องจาก
ทำงานอยู่ในโหมด transparent การเปลี่ยนการติดตั้งของสวิตซ์ 3 สามารถทำได้โดยตรงที่ตัวสวิตซ์เท่านั้น
book)

17.1.3 VTP Management Domain


VTP Management Domain เป็นการกำหนดโดเมนของ VLAN เพื่อระบุกลุ่มของสวิตซ์ที่อยู่ภายใต้การจัดการ
เดียวกัน หรือที่เป็นสมาชิกอยู่ หากสวิตซ์ใดไม่อยู่ภายใต้ VTP Domain เดียวกัน จะไม่ได้รับการแจ้ง (advertise) ที่
(partial เพื่อรับข้อมูลจากเซิร์ฟเวอร์ สวิตซ์ต้องเชื่อม
เกิดขึ้น สวิตซ์หนึ่งเครื่องสามารถอยู่ภายใต้ VTP domain เดียวเท่านั้น
ต่อกันโดยตรง ไม่มีสวิตซ์อื่นขั้น รูปที่ 17.9 แสดงการเชื่อมต่อของ VTP domain จะเห็นว่า หากมีการแก้ไขใดๆที่
SW 1 หรือ SW 2 ในที่นี้ จะไม่มีการส่งต่อไปยัง SW 4 เนื่องจากมี SW 3 ขั้นอยู่


only





KKU รูปที่ 17.9: การเชื่อมต่อของ VTP Domain

book)







(partial









only





KKU

บทที่ 18





Address Resolution Protocol (ARP)






book)
การสื่อสารใน Data Link layer โนดภาคส่งจำเป็นต้องทราบฮาร์ดแวร์แอดเดรสโนดปลายทางเพื่อให้การสื่อสาร
สำเร็จในทำนองเดียวกันหากโนดทราบเพียงฮาร์ดแวร์แอดเดรสของตนแต่ต้องการที่จะสื่อสารโดยอาศัยIPaddress
โนดจะสามารกำหนดแอดเดรสของตนเองได้อย่างไร ในส่วนนี้เราจะได้กล่างถึงสองโพรโตคอลที่สำคัญใน Data
Link Layer ที่ทำให้โนดหรือโฮสต์สามารถทราบถึงฮาร์ดแวร์แอดเดรสของเครื่องที่ต้องการติดต่อ คือ Address
Resolution Protocol (ARP) และโพรโตคอลที่ช่วยในการกำหนด IP address ให้แก่โฮสต์หากมีการทราบถึง
(partial (Reverse ARP)
ฮาร์ดแวร์แอดเดรสตนเองคือ Reverse Address Resolution Protcol



18.1 Address Resolution Protocol (ARP)

only
การสื่อสารโดยทั่วไป เรามักอ้างถึงชื่อของเซิร์ฟเวอร์ที่ต้องการติดต่อด้วย การใช้ DNS ทำให้ทราบ IP Address เพื่อ
การสื่อสาร อย่างไรก็ตามเรายังไม่สามารถสื่อสารโดย IP Address เท่านั้น การทราบถึงฮาร์ดแวร์แอดเดรสเป็นสิ่ง
ที่เลี่ยงไม่ได้ ในการสื่อสารของ Data Link Layer ดังนั้น ARP เป็นโพรโตคอลเพื่อใช้ในการหาฮาร์ดแวร์แอดเดรส
KKU
เมื่อทราบ IP address ของโนดนั้นๆ หรือในภาพรวมก็คือ เราจะทราบแอดเดรสของเลเยอร์ 2 จากแอดเดรสใน

เลเยอร์ 3 ได้โดยการใช้ ARP การทำงานของ ARP ประกอบด้วยสองเมสเสจหลักคือ


1. ARP query: ARP query จะถูกส่งแบบบรอดคาสท์ออกไป เพื่อสอบถามแอดเดรสของโนดที่ต้องการ

2. ARP response: ARP response จะเป็นเมสเสจที่ถูกส่งเพื่อตอบ ARP query โดยโนดที่ถูกสอบถามจะใช้

แพกเกตแบบยูนิคาสท์ส่งไปหาต้นทางโดยตรง


18.1.1 รูปแบบ ARP Message


ARP ได้รับการกำหนดใน RFC 826 เพื่อให้มีการทำงานในลักษณะ autoconfiguration โดยที่ ARP จะถูกส่งในแพ
กเกตของอีเทอร์เน็ตโดยตรง กำหนดให้ Type = 0x0806 รูปที่ 18.1 แสดงรูปแบบของ ARP แพกเกต


• Hardware Type: เลข 16 บิตเพื่อแสดงถึงประเภทของฮาร์ดแวร์ที่ใช้ โดย LAN กำหนดเลขจำนวนเต็มให้

แก่ฮาร์ดแวร์แต่ละประเภท เช่น อีเทอร์เน็ตกำหนด Type = 1

• Protocol Type: เลข 16 บิตเพื่อแสดงถึงโพรโตคอลที่ใช้ เช่นใน IPv4 หมายเลขนี้จะเป็น 0x0800 การ

ทำงาน ARP สามารถใช้กับโพรโตคอลอื่นได้

129

130 บทที่ 18. ADDRESS RESOLUTION PROTOCOL (ARP)


0 7 15 31
Hardware Type Protocol Type


Hardware Length Protocol Length Operation (Request 1, Reply 2)


Sender Hardware Address


Sender Protocol Address


Target Hardware Address


Target Protocol Address

book)
รูปที่ 18.1: ARP Packet


• Hardware Length: เป็นเลข 8 บิตเพื่อแสดงถึงความยาวของแอดเดรสของฮาร์ดแวร์หน่วยเป็นไบต์ เช่น
ในอีเทอร์เน็ตเป็น 6
(partial
• Protocol Length: เป็นเลข 8 บิตเพื่อแสดงถึงความยาวแอดเดรสของโพรโตคอลหน่วยเป็นไบต์ เช่น IPv4
มีค่าเป็น 4


• Operation: เลข 16 บิตเพื่อแสดงถึงประเภทแพกเกตใน ARP ได้กำหนดไว้สองประเภทคือ ARP request
เป็น 1 และ ARP reply เป็น 2
only

• Sender Hardware Address: กำหนดค่าของฮาร์ดแวร์แอดเดรสด้านส่ง สามารถปรับเปลี่ยนความยาวได้
เช่น ในอีเทอร์เน็ตจะมีค่าเป็น 6 ไบต์
KKU
• Sender Protocol Address: กำหนดค่าของโพรโตคอลแอดเดรสด้านส่ง สามารถปรับเปลี่ยนความยาวได้

เช่น ใน IP โพรโตคอลจะมีค่าเป็น 4 ไบต์

• Target Hardware Address: กำหนดค่าของฮาร์ดแวร์แอดเดรสด้านรับ สามารถปรับเปลี่ยนความยาวได้
เช่น ในอีเทอร์เน็ตจะมีค่าเป็น 6 ไบต์ ในกรณีของ ARP request ค่านี้จะเป็น 0 หมด เนื่องจากยังไม่ทราบ

แอดเดรสของด้านรับ

• Target Protocol Address: กำหนดค่าของโพรโตคอลแอดเดรสด้านรับ สามารถปรับเปลี่ยนความยาวได้
เช่น ใน IP โพรโตคอลจะมีค่าเป็น 4 ไบต์



18.1.2 การทำงานของ ARP


รูปที่ 18.2 และ 18.3 แสดงการบรอดคาสท์ของ ARP query เมสเสจและ ARP Response เมสเสจจะสังเกตว่า ใน
การส่ง ARP query เนื่องจากภาคส่งยังไม่ทราบ MAC address ของภาครับ ทำให้ใส่ค่าเป็นศูนย์ทั้งหมด เมื่อปลาย
ทางได้รับเมสเสจดังกล่าว จะตอบกลับด้วย MAC address ของตน ซึ่งการสื่อสารต่อไปจะใช้ MAC address นี้ เพื่อ
ระบุถึงโนดดังกล่าว
จากการทำงานข้างต้น เมื่อโฮสต์ได้รับ ARP Response โฮสต์จะสร้างเอ็นทรี (entry) <IP address, MAC

address> เพื่อจัดเก็บใน ARP cache

18.1. ADDRESS RESOLUTION PROTOCOL (ARP) 131

















รูปที่ 18.2: บรอดคาสท์ของ ARP query








book)





รูปที่ 18.3: ยูนิคาสท์ของ ARP Response
(partial

ตัวอย่าง 18.1 เพื่อให้ผู้อ่านสามารถเห็นภาพการทำงานของ ARP ที่ชัดเจนขึ้น สมมุติให้เครื่องคอมพิวเตอร์ ที่ IP
Address 192.168.1.3 ต้องการ ping ไปยังเครื่องคอมพิวเตอร์ 192.168.1.33 เบื้องต้นตรวจสอบ arp table ของ
เครื่อง 192.168.1.3 จะมีเพียง IP Address 192.168.1.1 เท่านั้น ซึ่งในที่นี้เป็น default gateway

C:\Users\chatchai>arp −a
Interface: 192.168.1.3 −−− 0xc
Internet Address Physical Address Type
192.168.1.1 only c8−d5−fe−00−f3−86 dynamic

C:\Users\chatchai>ping 192.168.1.33
KKU
Pinging 192.168.1.33 with 32 bytes of data:
Reply from 192.168.1.33: bytes=32 time=1ms TTL=128
Reply from 192.168.1.33: bytes=32 time<1ms TTL=128
Reply from 192.168.1.33: bytes=32 time<1ms TTL=128
Reply from 192.168.1.33: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.33:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli−seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms

เมื่อเรา ping ไปยัง 192.168.1.33 และใช้โปรแกรม wireshark ตรวจจับเฉพาะ arp รูปที่ 18.4 เป็น arp
request หรือ arp query จากเครื่อง 192.168.1.3 เป็นการส่งแบบบรอดคาสท์ เพื่อตรวจสอบหา Mac Address

ของเครื่อง IP Address 192.168.1.33 โดยที่ Target Mac address เป็น 00:00:00:00:00:00 ก่อนที่จะได้ arp
reply จาก 192.168.1.33 ในรูปที่ 18.5 จะเห็นว่ามีการกำหนดค่าของ Sender Mac address ภายใน arp reply
ซึ่งในที่นี้ก็คือ Mac address ของเครื่อง IP address 192.168.1.33
เมื่อสิ้นสุด ping เราตรวจสอบค่า arp ของเครื่อง 192.168.1.3 อีกครั้งจะพบว่าปรากฎ Mac address ของ
เครื่อง 192.168.1.33 จะบันทึกไว้ใน arp table เรียบร้อย

C:\Users\chatchai>arp −a
Interface: 192.168.1.3 −−− 0xc
Internet Address Physical Address Type

132 บทที่ 18. ADDRESS RESOLUTION PROTOCOL (ARP)
























รูปที่ 18.4: บรอดคาสท์ของ ARP request

book)







(partial









only รูปที่ 18.5: ยูนิคาสท์ของ ARP reply





KKU
192.168.1.1 c8−d5−fe−00−f3−86 dynamic
192.168.1.33 00−24−1d−1c−3f−f9 dynamic





18.2 Reverse Address Resolution Protocol (RARP)



การทำงานของ Reverse Address Resolution Protocol (RARP) (RARP) จะตรงข้ามกับการทำงานของ ARP
ซึ่งเราสามารถสังเกตได้จากชื่อที่ตั้งขึ้น โดยเป็นการจับคู่จาก ฮาร์ดแวร์แอดเดรสที่ทราบ เพื่อให้ได้ IP Address
การพัฒนาของ RARP เกิดจากความต้องการสื่อสารโดยการใช้ IP Address ของสเตชั่นที่ไม่มีอุปกรณ์สำรองข้อมูล
(diskless workstation) ทำให้หากสเตชั่นต้องการสื่อสารโดยใช้ IP Address สามารถทำได้โดยการบรอดคาสท์
ฮาร์ดแวร์แอดเดรสของตน เพื่อร้องขอ (request) IP Address รูปแบบของเมสเสจของ RARP เหมือนกับ ARP แต่

ฟิลด์ Operation ของ RARP จะมีค่าเป็น 3 หากเป็น RARP request เมสเสจ และหากเป็น 4 RARP reply เมสเสจ
อย่างไรก็ตาม เนื่องจากการทำงานของ RARP ทำงานอยู่บน Data Link Layer ทำให้ไม่สามารถส่งข้ามเน็ตเวิร์ค
ได้ ดังนั้นหากในระบบหนึ่งประกอบไปด้วยหลายเน็ตเวิร์คหรือหลายซับเน็ตจะทำให้ต้องมี RARP server จำนวน
มาก เพื่อรองรับการร้องขอ IP address นอกจากนี้ การทำงานของ RARP ไม่จัดว่าเป็นแบบ autoconfiguration
เนื่องจากจะต้องมีผู้ดูแลระบบจับคู่ระหว่างฮาร์ดแวร์แอดเดรสกับ IP address ทำให้ไม่สะดวกเท่าใดนัก จึงมีการ

พัฒนา DHCP เพื่อรองรับการกำหนด IP adddress

18.3. สรุป 133



18.3 สรุป



แม้ว่าปัจจุบันการพัฒนาของอุปกรณ์เน็ตเวิร์คไม่ว่าจะเป็น สวิตซ์ เร้าเตอร์ รวมถึงช่องสัญญาณ จะทำให้ระบบมี
แบนด์วิดท์ที่สูงขึ้น แต่อุปกรณ์ยังคงมีความจำเป็นต้องใช้อุปกรณ์ร่วมกัน จึงมีความจำเป็นที่จะต้องมีระบบควบคุมที่
ดี เพื่อให้การใช้งานของเน็ตเวิร์คเป็นไปอย่างมีประสิทธิภาพ
ในบทนี้ได้นำเสนอวิธีการต่างๆที่ได้พัฒนาขึ้น สามารถแบ่งออกเป็นสองประเภทได้แก่ Deterministic Access
Method เช่น FDMA, TDMA แลการเข้าใช้ช่องสัญญาณแบบสุ่ม เช่น Pure ALOHA, CSMA รวมถึง CSMA/CD
นอกจากนี้ ยังได้กล่าวถึงกล่าวถึงการทำงานของโพรโตคอลต่างๆที่เกี่ยวข้อง เพื่อใช้ในการแก้ปัญหา และ
ปรับปรุงการทำงานที่อาจเกิดขึ้นในระบบ เช่น Spanning Tree Protocol (STP) เพื่อช่วยแก้ปัญหาการเกิดลูป

เนื่องจากความผิดพลาดของการติดตั้งระบบ และ VLAN เพื่อขยายการเชื่อมผู้ใช้ที่อยู่ต่างสถานที่กันเสมือนทำงาน
ร่วมกัน และยังช่วยในการแบ่งลดทราฟฟิกบน LAN ลง



18.4 คำถามท้ายบท


1. จงบอกข้อดี/ข้อเสียของ FDMA เมื่อเทียบกับ TDMA book)
(partial
2. จงอธิบายการทำงานของ Random Access Method พร้อมทั้งบอกข้อดีและข้อเสีย

3. เหตุใดการทำงานของ Slotted ALOHA จึงสามารถเพิ่มประสิทธิภาพของ Pure ALOHA ได้

4. จงอธิบายพื้นฐานการทำงานของALOHA,SlottedALOHA,CSMA,CSMA/CDและเปรียบเทียบประสิทธิภาพ

ของแต่ละprotocol
only
5. การทำงานของ CSMA สามารถลดการชนกันของข้อมูลได้อย่างไร

6. การพัฒนาของ CSMA/CD เป็นการต่อยอดจากการทำงานของ CSMA สามารถทำให้ระบบทำงานดีขึ้นได้
KKU
อย่างไร

7. CSMA/CD ใช้ Binary Exponential Backoff เพื่ออะไร อธิบายหลักการ

8. ทำไม CSMA/CD จึงไม่เหมาะแก่การใช้ใน Wireless LAN


9. Ethernet 100BASE-T สื่อความหมายใดในการสื่อสาร

10. การใช้ Trunk ใน VLAN มีประโยชน์อย่างไร

11. จากการทำงานของ CSMA ทำไมจึงยังมีการชนกันของข้อมูลเกิดขึ้น


12. ข้อดีของ VLAN คืออะไร ทำไมจึงต้องมีการใช้ VLAN

13. พื้นฐานการทำงานของ Bridge มีอะไรบ้าง อธิบาย

14. จงอธิบายการเกิด Broadcast Strom


15. ข้อดีของ Spanning Tree Protocol (STP) คืออะไร

134 บทที่ 18. ADDRESS RESOLUTION PROTOCOL (ARP)



























book)







(partial









only





KKU
















รูปที่ 18.6: arp

บทที่ 19





Network Layer






book)

Network Layer เสมือนหัวใจของการทำงานของเน็ตเวิร์คทั้งหมด เพื่อเป็นศูนย์กลางในการเชื่อมโยงเลเยอร์ของ
เน็ตเวิร์คเข้าด้วยกัน และให้การสื่อสารระหว่างผู้ใช้กับเน็ตเวิร์คเกิดขึ้นไม่ว่าจะอยู่ที่ใดในโลก การเชื่อมโยงทั้งหมด
เกิดขึ้นได้เกิดจากฟังก์ชันที่สำคัญคือ กำหนด IP address ให้กับอุปกรณ์ต่างๆในเน็ตเวิร์ค ซึ่งเป็นหน้าที่หลักของ
Network Layer รูปที่ 19.1 แสดงถึงความสำคัญของ IP address เพื่อเชื่อมผู้ใช้ใน Application Layer ไปจนถึง
(partial
การส่งผ่านข้อมูลใน Physical Layer [15]


นอกจากการเชื่อมต่อเพื่อรองรับการสื่อสารระหว่างผู้ใช้แบบหนึ่งต่อหนึ่งที่เรียกว่า ยูนิคาสท์ แล้ว Network
Layer ยังรองรับกับการกระจายข้อมูลให้กับผู้ใช้หลายคนพร้อมกัน เรียกว่า บรอดคาสท์ และมัลติคาสท์ ด้วย เพื่อ
แสดงถึงรายละเอียดต่างๆในบทนี้เราจะกล่าวถึงหน้าที่หลักของNetworkLayerตั้งแต่การกำหนดIPaddressให้
only
กับอุปกรณ์ในเน็ตเวิร์ค การจัดการเกี่ยวกับซับเน็ตของเน็ตเวิร์ค การทำงานของเร้าติ้งโพรโตคอลเพื่อใช้ในการค้นหา
เส้นทางในการส่งผ่านข้อมูล และการส่งข้อมูลแบบบรอดคาสท์และมัลติคาสท์ รวมไปถึงโพรโตคอลที่เกี่ยวข้อง

KKU






HTTP Telnet DNS Application Layer



TCP UDP Transport Layer




IP Network Layer




Ethernet Wi-Fi Link Layer



Coax Fiber Radio Physical Layer




รูปที่ 19.1: นาฬิกาทรายของ Internet Protocol (IP)


135

136 บทที่ 19. NETWORK LAYER



19.1 Basic Definitions in Data Networks



ในการสื่อสารข้อมูลจากต้นทางไปยังปลายทาง สามารถแบ่งได้เป็นสองวิธี คือ Circuit-switching networks และ
Packet switched networks

Circuit­switching networks การทำงานของ Circuit switching network เปรียบได้กับการทำงานในระบบ

โทรศัพท์ โดยก่อนที่จะส่งข้อมูลจะต้องร้องขอการสร้างเส้นทางก่อน การใช้ Circuit switching network จะ
ทำให้ทรัพยากร (resource) ถูกจัดสรรไว้ก่อนระหว่างผู้ใช้ ดังนั้นหากผู้ใช้อื่นต้องการที่จะใช้ จะไม่สามารถ
ใช้ได้เพราะว่าเส้นทางถูกจองไว้แล้ว การทำเช่นนี้ในเน็ตเวิร์คจะทำให้การใช้แบนด์วิดท์เป็นไปอย่างไม่มี
ประสิทธิภาพ เมื่อมีผู้ใช้จำนวนมาก


Packet­switched networks ทำให้การใช้งานเน็ตเวิร์คมีประสิทธิภาพมากขึ้น สามารถรองรับความต้องการ
book)
ได้ดีขึ้น และมีการใช้งานของทรัพยากรในเน็ตเวิร์คดีขึ้น การทำงานของ Packet-switched networks
สามารถที่จะส่งข้อมูลที่เป็นทั้ง ข้อความ เสียง และ วิดีโอ นอกจากนั้น การใช้การส่งข้อมูลในลักษณะนี้
ยังส่งผลดีต่อการจัดการและการบำรุงรักษาระบบ สามารถที่จะเชื่อมต่อเป็นเครือข่ายขนาดใหญ่ได้ โดยที่
Packet-Switched Networks สามารถแบ่งออกได้เป็นสองแบบตามการส่งข้อมูลคือ Connectionless
และ Connection Oriented



19.1.1 Connectionless Networks (partial


เป็นวิธีในการส่งของข้อมูลแบบที่ง่ายที่สุด ที่ผู้ใช้สามารถที่จะส่งข้อมูลได้ทันที ตามรูปแบบที่ได้ตกลงไว้เช่นขนาด
only
ของข้อมูลที่ส่งได้ รูปแบบแอดเดรสเรียกว่า ดาต้าแกรม การส่งแบบ connectionless ข้อมูลที่มีขนาดใหญ่จะถูก
แยกเป็นแพกเกตโดยที่แต่ละแพกเกตจากต้นทางจะถูกส่งออกไปโดยไม่เกี่ยวข้องกัน การใช้ connectionless ใน
การส่งข้อมูลดังกล่าวไม่จำเป็นต้องสร้างเส้นทางขึ้นก่อน แต่อย่างไรก็ตามยังสามารถที่จะตรวจสอบความผิดพลาดที่
อาจเกิดขึ้นได้ การส่งข้อมูลจะถูกส่งเข้ายังเน็ตเวิร์คและถูกส่งต่อ (forward) จนกระทั่งถึงปลายทางโดยใช้เร้าเตอร์
KKU
เพื่อหาเส้นทาง การทำเช่นนี้ทำให้เกิดผลดี คือแพกเกตสามารถที่จะถูกส่งไปเส้นทางใหม่ได้ หากเส้นทางเดิมเกิดมี
ความเสียหายเกิดขึ้น การส่งแบบนี้ แพกเกตอาจถูกส่งยังปลายทางไม่เป็นตามลำดับ ทำให้ปลายทางจำเป็นในการ
เรียงลำดับข้อมูลใหม่


















รูปที่ 19.2: การส่งแบบ Connectionless


รูปที่ 19.2 แสดงการส่งแพกเกตจำนวนสี่แพกเกตบนเน็ตเวิร์คแบบ connectionless จากโนด A ไป B แต่
ละแพกเกตถูกส่งแบบ store and forward ซึ่งเมื่อโนดได้รับแพกเกตจะจัดเก็บไว้ จนกระทั่งเมื่อขาออกของโนด
พร้อม แพกเกตจะถูกส่งต่อไปยังโนดถัดไป หรือมองในมุมของโนดที่รับแพกเกต แพกเกตที่รับมานั้นจะต้องรักษาไว้

ในบัฟเฟอร์ก่อน เพื่อส่งต่อออกไปเมื่อพร้อม มิฉะนั้นแพกเกตอาจสูญหาย หากโนดบัฟเฟอร์เต็มและถูกกำจัด โนด

19.1. BASIC DEFINITIONS IN DATA NETWORKS 137



จะส่งต่อแพกเกตโดยอาศัยเฮดเดอร์ของแพกเกตในที่นี้สามแพกเกตแรกถูกส่งผ่านจากโนด A, B และ ไป C ในขณะ
ที่แพกเกตสุดท้ายไปอีกเส้นทางหนึ่งอาจเนื่องมาจากการแออัดของข้อมูล ณ โนด A และ D



19.1.2 Connection-Oriented Networks

ในการส่งแบบconnection-orientedหรือvirtual-circuitจะแตกต่างจากการทำงานของconnectionlessโดยที่

ก่อนจะส่งข้อมูล เส้นทางระหว่างต้นทางไปยังปลายทางจะต้องได้รับการกำหนดก่อน หรือมีการสร้างการติดต่อไว้
ก่อน ซึ่งทรัพยากรบนเน็ตเวิร์คจะถูกจองไว้เมื่อเริ่มทำงาน และจะอยู่ตลอดการใช้งานจนกระทั่งการส่งข้อมูลแล้ว
เสร็จ เปรียบเสมือนการติดต่อในระบบโทรศัพท์บ้าน รูปที่ 19.3 แสดงการส่งข้อมูลแบบ connection-oriented
โดยจะสร้างการเชื่อมต่อก่อนตลอดเส้นทางการเชื่อมต่อ การส่งในลักษณะนี้ ข้อมูลที่ส่งจะถูกส่งไปในเส้นทาง
เดียวกันทั้งหมด

book)







(partial




รูปที่ 19.3: การส่งแบบ Connection-oriented


เนื่องจากการทำงานของ virtual-circuit จะจองทรัพยากรในเน็ตเวิร์คไว้เช่น บัฟเฟอร์และแบนด์วิดท์ในเส้น
only
ทาง เพื่อที่จะสามารถรับประกันคุณภาพของการให้บริการและเวลาหน่วง ทำให้หากเส้นทางที่สร้างขึ้นเกิดความผิด
พลาด การจัดหาเส้นทางจะต้องทำใหม่ และทุกสวิตซ์ต้องเก็บรักษาข้อมูลของเส้นทางทั้งหมดที่ถูกสร้างขึ้น
เพื่อให้ผู้อ่านเข้าใจการทำงานแบบ Virtual circuit ในส่วนนี้จะขอกล่าวถึงการสร้าง Virtual circuit ของ
KKU
Asynchronous Transfer Mode (ATM) การส่งข้อมูลของ ATM จะแบ่งข้อมูลเป็นส่วนๆ เรียกว่า cell ที่ขนาด
คงที่ 53 ไบต์ (เฮดเดอร์ 5 ไบต์และข้อมูล 48 ไบต์) การส่งข้อมูลของ ATM มีข้อดีคือ เป็นในลักษณะที่ต่อเนื่อง มีค่า
ความผิดพลาดที่ตํ่า และสามารถที่จะควบคุมการไหลข้อมูล (flow control) การที่ขนาดของเฮดเดอร์ของ ATM มี
ขนาดเล็ก (5 ไบต์) ทำให้การส่งข้อมูลของ ATM เป็นไปได้อย่างรวดเร็ว นอกจากนี้ด้วยแต่ละ cell มีขนาดคงที่ ทำให้
การประมวลผลที่สวิตซ์มีประสิทธิภาพสูงขึ้น




ทำไมต้อง 53 ไบต์? [48] เนื่องจากระหว่างการกำหนดขนาดของส่วนบรรจุข้อมูล (payload) ในแต่ละ cell
ของหน่วยงาน CCITT ฝั่งยุโรปและญี่ปุ่นเลือกที่จะใช้ขนาดของส่วนบรรจุข้อมูลอยู่ที่ 32 ไบต์ เนื่องจากเป็นขนาด
ที่เหมาะสมสำหรับทั้งสองโดยพิจารณาจากการสื่อสารด้านเสียง พร้อมทั้งฝรั่งเศสพบว่าการใช้ส่วนบรรจุข้อมูล 32
ไบต์นี้ จะทำให้ระบบสามารถทำงานได้โดยไม่จำเป็นต้องมีระบบป้องกันเสียงสะท้อน (Echo Cancellation) ใน
ขณะที่อเมริกาและออสเตรเลียต้องการ 64 ไบต์ โดยคำนึงถึงการใช้แบนด์วิดท์เพื่อการสื่อสารด้านข้อมูล และ

ประสิทธิภาพในการใช้หน่วยความจำระหว่างการสื่อสาร ควรจะเป็นเลขฐานสอง หรือเป็นจำนวนเท่าของ 4 ดังนั้น
เพื่อให้ทั้งสองฝ่ายยอมรับ หน่วยงาน CCITT จึงตกลงที่ 48 ไบต์ ((32+64)/2 = 48) และขนาดของเฮดเดอร์อยู่ที่ 5
ไบต์


การทำงานของ ATM เน็ตเวิร์คเป็นการทำงานโดยการสร้าง virtual circuit ซึ่งขั้นตอนการสร้างเส้นทางจะ

ร้องขอจากต้นทางไปยังปลายทาง โดยจะต้องมีการสร้างเส้นทาง ก่อนที่จะเริ่มต้นการส่งข้อมูล เส้นทางที่เกิดขึ้นนี้

138 บทที่ 19. NETWORK LAYER



จะเรียกว่า Virtual Channel Connection (VCC) การสร้าง VCC จะทำโดยแต่ละสวิตซ์ในเส้นทางเพื่อสร้างการ
เชื่อมต่อ ซึ่งจะกำหนด ณ อินพุตพอร์ตของแต่ละสวิตซ์ในการเชื่อมต่อแต่ละสวิตซ์ VCC จะถูกจับกลุ่มเข้าด้วยกัน
ในการเชื่อมต่อจากสวิตซ์หนึ่งไปยังอีกสวิตซ์หนึ่ง เส้นทางนี้เราจะเรียกว่า Virtual Path Connection (VPC) รูปที่
19.4 แสดงความสัมพันธ์ระหว่าง VPC และ VCC
















book)
รูปที่ 19.4: รูปแสดงความสัมพันธ์ระหว่าง VPC และ VCC


เพื่อระบุการเชื่อมต่อระหว่างแต่ละVCCจากจุดหนึ่งไปยังอีกจุดหนึ่งATMกำหนดให้มีVirtualPathIdentifier
(VPI) และ Virtual Circuit Identifier (VCI) เพื่อใช้ในการกำหนดแต่ละ VPC และ VCC ตามลำดับ
(partial








รูปที่ 19.5: รูปแสดงความสัมพันธ์ระหว่าง VPI และ VCI
only

การสร้างการเชื่อมต่อของ ATM สามารถทำได้ในสองรูปแบบ คือ Permanent Virtual Circuit (PVC) หรือ
Switched Virtual Circuit (SVC) ในที่นี้เราจะได้กล่าวถึงการเชื่อมต่อแบบ SVC เท่านั้น เพื่อแสดงตัวอย่างการสร้าง
KKU
virtual circuit ใน ATM โดยสมมุติให้สเตชัน A ต้องการเชื่อมต่อไป สเตชัน B ผ่าน ATM switch 1 และ switch 2
ดังแสดงในรูปที่ 19.6









รูปที่ 19.6: การสร้างการเชื่อมต่อ Switched virtual circuit ของ ATM




1. ผู้ใช้ที่สเตชัน A ส่ง SETUP message ไปในช่องสัญญาณเพื่อจองช่องสัญญาณที่ VPI = 150 และ VCI=18
เพื่อเชื่อมไปยัง ATM switch 1 โดยที่ SETUP message จะประกอบไปด้วย


• ATM address ของสเตชัน B ขนาด 20 ไบต์
• QoS ที่ต้องการสำหรับการเชื่อมต่อนี้ (ในที่นี้เราสมมุติให้ ATM network มีทรัพยากรเพียงพอเพื่อ

การเชื่อมต่อ)

2. ATM switch 1 พิจารณาการร้องขอที่เกิดขึ้น เพื่อตรวจสอบหาเส้นทางไปยังสเตชัน B เมื่อพบว่าสามารถ

สร้างการเชื่อมต่อได้ ATM switch 1 ส่ง PROCEEDING message กลับไปยังสเตชัน A

19.1. BASIC DEFINITIONS IN DATA NETWORKS 139



3. ATM switch 1 ส่งต่อ SETUP message ต่อไปยังสวิตซ์ถัดไปในที่นี้คือ ATM switch 2 พร้อมทั้งค่าของ
VPI = 100 และ VCI = 92 สำหรับเชื่อมต่อระหว่าง ATM switch 1 และ ATM switch 2 ดังแสดงในรูปที่
19.7















รูปที่ 19.7: ตัวอย่างการกำหนด VPI และ VCI ของ ATM switch

book)

4. ATM switch 2 ได้รับ SETUP message และพบว่าสเตชัน B เชื่อมต่ออยู่โดยตรงกับตน เมื่อพบว่าสามารถ
สื่อสารได้ ATM switch 2 จะส่ง PROCEEDING message กลับไปยัง ATM switch 1 พร้อมทั้งส่ง SETUP
message ไปยังสเตชัน B พร้อมทั้งค่าของ VPI/VCI เพื่อเชื่อมระหว่าง ATM switch 2 กับ สเตชัน B
(partial
5. เมื่อสเตชัน B ได้รับ SETUP message จะส่ง PROCEEDING message และ ตามด้วย CONNECT message
กลับไปยัง ATM switch 2


6. ATM switch 2 จะส่ง CONNECT message กลับไปยัง ATM switch 1 และ สเตชัน A ตามลำดับ เพื่อสร้าง
การเชื่อมต่อ แต่ละโนดเมื่อได้รับ CONNECT message จะตอบด้วย CONNECT ACK เพื่อแสดงถึงการได้
รับ CONNECT message only




KKU


























รูปที่ 19.8: การแลกเปลี่ยนของสัญญาณควบคุมเพื่อสร้าง Virtual circuit ใน ATM network


รูปที่ 19.8 แสดงขั้นตอนการสร้างการเชื่อมต่อที่ได้กล่าวมาแล้ว นอกจากนี้ แล้วเมื่อการสื่อสารสิ้นสุด ในทำนอง
เดียวกันสเตชัน A และ สเตชัน B จะส่ง RELEASE message เพื่อยกเลิกการเชื่อมต่อ เมื่อการเชื่อมต่อสิ้นสุด การส่ง

RELEASE message จะทำให้ทรัพยากรต่างๆที่ถูกจองไว้กลับคืนสู่ระบบ เพื่อใช้กับการเชื่อมต่ออื่นต่อไป

140 บทที่ 19. NETWORK LAYER



แม้ว่าปัจจุบัน ATM จะได้รับความนิยมน้อยลง เนื่องจากความซับซ้อนของการทำงาน แต่อย่างไรก็ตามด้วย
การทำงานที่มีประสิทธิภาพ สุดท้ายได้มีการพัฒนา Multi-Protocol Label Swithcing (MPLS) ที่มีการทำงาน
แบบ Connection-oriented เหมือน ATM บนเน็ตเวิร์คที่ใช้ IP ทำให้ MPLS ถือเป็นเทคโนโลยีที่ได้รับความนิยมใน
ปัจจุบัน เพื่อรองรับการใช้บริการ QoS บนเน็ตเวิร์คของ IP ผู้สนใจสามารถหารายละเอียดของ MPLS จาก [13, 18]



19.2 Internet Protocol (IP)



เพื่อให้การสื่อสารสามารถเกิดขึ้นอย่างเต็มประสิทธิภาพ หนึ่งในหนทางคือการกำหนดแอดเดรสให้กับโนดที่อยู่
ภายในเน็ตเวิร์คทั้งหมด ในที่นี้ ได้มีการกำหนดขึ้นในรูปแบบของ Internet Protocol (IP) ปัจจุบันมีอยู่ด้วยกันสอง

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


19.2.1 Interenet Protocol (IPv4) book)


รูปแบบเฮดเดอร์ของ IPv4 สามารถแสดงในรูปที่ 19.9

13
0 7 (partial 31
15
Version IHL DS ECN Total Length

Identification Flags Fragment Offset


Time to Live only Protocol Header Checksum

KKU Destination Address
Source Address






Options + Padding


รูปที่ 19.9: เฮดเดอร์ของ IPv4




• Version: มีขนาด 4 บิต ใน IPv4 จะมีค่าเป็น 4

• Header Length: ขนาดของเฮดเดอร์ของ IPv4 มีขนาดได้ตั้งแต่ 20 ถึง 60 ไบต์ โดยทั่วไปมีค่าขนาด 20
ไบต์


• Differentiated Services (DS)/ECN: จากเดิมในส่วนนี้ถูกกำหนดเป็น Type of Server (ToS) เพื่อแสดง
ถึงความน่าเชื่อถือ (realiability), precedence, เวลาหน่วง และทรูพุต เพื่อระบุถึงการทำงานที่แตกต่างกัน
ในส่วนของเร้าเตอร์ แต่การใช้งานไม่เป็นที่นิยมนัก จนในปี คศ. 1998 ToS ถูกเปลี่ยนเป็น Differentialed
Services (DS) ใน 6 บิตแรก เพื่อให้เร้าเตอร์จัดการแพกเกตให้เหมาะสมกับ Quality of Service (QoS)

อีกสองบิตที่เหลือใช้เป็น Explicit Congestion Notification (ECN) เพื่อระบุถึงความคับคั่งของข้อมูล

19.2. INTERNET PROTOCOL (IP) 141



• Total length: ระบุความยาวทั้งหมดของดาต้าแกรม รวมถึงความยาวของเฮดเดอร์ด้วย ทำให้เร้าเตอร์
สามารถคำนวณหาค่าของความยาวของ payload ที่ถูกส่งมาด้วยการลบขนาดของเฮดเดอร์ออก


• Identification: เพื่อเป็นหมายเลขของดาต้าแกรม ในการใช้งานร่วมกับแอดเดรสต้นทาง ปลายทาง และ
โพรโตคอล เพื่อให้ไม่มีแพกเกตซํ้าในอินเทอร์เน็ต

• Flags: เป็นฟิลด์ขนาด 3 บิต แต่มีการใช้งานเพียงสองบิตเท่านั้นคือ บิต More เพื่อใช้ในการแบ่งแพกเกต
ขนาดใหญ่ให้มีขนาดเล็กลง ในกรณีที่ความแตกต่างของศักยภาพของเน็ตเวิร์ค บิต Don't fragment เมื่อไม่

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

• Fragment offset: เพื่อใช้ในระบุลำดับของดาต้าแกรม ในการประกอบกับเมื่อมีการแบ่งดาต้าแกรมออก

เป็น Fragment
book)
• Time-to-live (TTL): ในเบื้องต้นฟิลด์นี้ถูกออกแบบมาโดยจะใช้เวลาเป็นวินาที เพื่อกำจัดแพกเกตใน
เน็ตเวิร์ค เนื่องจากดาต้าแกรมอาจเกิดการลูปในเน็ตเวิร์คนานเกินไป แต่ในทางปฏิบัติเร้าเตอร์ส่วนมาก
ใช้จำนวนของฮอบของดาต้าแกรมเพื่อกำจัดดาต้าแกรมที่กล่าวถึงออกไป เมื่อมีค่าเป็น 0
(partial
• Protocol field: เพื่อระบุโพรโตคอลที่ใช้ในเลเยอร์ถัดขึ้นไป ในภาครับที่ปลายทาง เช่น TCP = 6, UDP =
17 และ ICMP มีค่าเป็น 1 เป็นต้น


• Header Checksum: เพื่อใช้ในการหลีกเลี่ยงการที่ดาต้าแกรมส่งไปยังปลายทางที่ไม่ถูกต้อง เนื่องจาก
ระหว่างการส่งดาต้าแกรม บางส่วนของเฮดเดอร์จะมีการเปลี่ยนแปลงตลอดเวลา ทำให้เร้าเตอร์ต้องคำนวณ
only
เฮดเดอร์ทุกครั้ง


• Source/destination addresses: ขนาด 32 บิต เพื่อระบุต้นทางและปลายทาง โดยจะได้กล่าวในราย
KKU
ละเอียดต่อไป

• IP options: เพื่อเพิ่มเติมข้อมูลจากผู้ใช้

• Padding: เพื่อทำให้เฮดเดอร์ของดาต้าแกรมมีขนาดเป็นจำนวนเท่าของ 32 บิต


• Data: ขนาดตามข้อมูลเป็นจำนวนเท่าของ 8 บิต ไม่เกิน 65,535 octects



19.2.2 การทำงานของการแบ่งดาต้าแกรม ( Fragmentation) ใน IPv4

เนื่องจากความแตกต่างของช่องสัญญาณ แพกเกตที่ส่งผ่านในแต่ละช่องสัญญาณต้องไม่เกิน Maximum
Transmission Unit (MTU) หากขนาดของ IP ดาต้าแกรมเกินกว่า MTU ดาต้าแกรมดังกล่าวจะต้องถูกแบ่งเพื่อให้

สามารถส่งผ่านไปได้ ยกเว้นกรณีมีการกำหนด Don't Fragment (DF) = 1 เพื่อไม่ให้แบ่ง IP ดาต้าแกรมดังกล่าว
จะทำให้ดาต้าแกรมถูกกำจัดทิ้งไป รูปที่ 19.10 แสดงค่า flag เมื่อมีการกำหนดห้ามการแบ่งดาต้าแกรม
รูปที่ 19.11 แสดงการแบ่งดาต้าแกรมออกเป็นส่วนย่อย เนื่องจากมีขนาดใหญ่เกินกว่าที่จะผ่านเน็ตเวิร์คหนึ่งได้
ในการแบ่งดาต้าแกรมเราจะพิจารณาสามส่วนหลักได้แก่ ส่วนของ Identification (ID), flag และ fragment offset
โดยส่วนของ Identification เป็นเสมือนหมายเลขประจำตัวของดาต้าแกรม ดังนั้นแม้ว่าดาต้าแกรมจะถูกแบ่งให้มี
ขนาดเล็กลง หมายเลขนี้จะคงเดิมเสมอไม่ว่าจะมีการแบ่งออกเป็นกี่ส่วน ถัดมาในส่วนของ Flags จากเดิมจะมีค่า

More fragment = 0 หลังจากมีการแบ่งดาต้าแกรม ค่าของ Flags จะถูกกำหนดให้เป็น 1 (More fragment = 1)


Click to View FlipBook Version