Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
Module 07
ขัน ้ ตอนวิธีการหาเส้นทาง ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม สาขาวิ ช าวิ ท ยาศาสตร์ แ ละเทคโนโลยี มหาวิ ท ยาลั ย สุ โ ขทั ย ธรรมาธิ ร าช
96304 Data Communications and Networking
1
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
ขั้นตอนวิธีการหาเส้นทาง Routing algorithm 7.1 ความรู้เบื้องต้นเกี่ยวกับการหาเส้นทาง 7.1.1 แนวคิดของการหาเส้นทาง 7.1.2 หลักการของวิธีการหาเส้นทาง 7.2 ขั้นตอนวิธีการหาเส้นทาง 7.2.1 แบบเวกเตอร์ระยะทาง 7.2.2 แบบสถานะเชื่อมโยง 96304 Data Communications and Networking
2
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
่ วกับการหาเส้นทาง 7.1 ความรู้เบื้องต้น เกีย วัตถุประสงค์ เพื่ อให้ผู้เรียนสามารถ
1) อธิบายแนวคิดของการหาเส้นทางได้ 2) อธิบายประเภทของกระบวนการเรียนรู้ การหาเส้นทางของเราท์เตอร์ 3) อธิบายความสําคัญของการหาเส้นทางได้ 4) ระบุกราฟถ่วงนํ้าหนักจากแผนภาพ ระบบเน็ตเวิร์คที่ให้มาได้ 5) อธิบายหลักการของวิธีการหาเส้นทางได้ 6) บอกเส้นทางการส่งข้อมูล เมื่อกําหนดแผนภูมิต้นไม้ ที่แสดงค่าใช้จ่ายน้อยสุดของโหนดมาให้ได้ 96304 Data Communications and Networking
3
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.1 แนวคิดของการหาเส้นทาง • เป็นหัวใจสําคัญในการส่งข้อมูลของเราท์เตอร์ ในระบบอินเทอร์เน็ต
• ขั้นตอนการหาเส้นทาง เริ่มจากการจัดเตรียมเส้นทางการเชื่อมโยง เพื่ อให้การเชื่อมต่อระหว่างเน็ตเวิร์ค มีประสิทธิภาพมากที่สุด
• วิธีการหาเส้นทางใช้ขั้นตอนวิธีหรืออัลกอริทึม ในการเลือกเส้นทาง ทางเลือกที่ดีที่สุดมักมีการเปลี่ยนแปลงได้ ตลอดเวลา เมื่อสถานะการเปลียนแปลงไป
96304 Data Communications and Networking
4
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.1 แนวคิดของการหาเส้นทาง • เป็นหัวใจสําคัญในการส่งข้อมูลของเราท์เตอร์ ในระบบอินเทอร์เน็ต • การเลือกเส้นทางของเราท์เตอร์เกิดขึ้นทุกครั้ง ที่มีการรับดาต้าแกรมตัวใหม่เข้ามา • ขั้นตอนการหาเส้นทาง เริ่มจากการจัดเตรียมเส้นทางการเชื่อมโยง เพื่ อให้การเชื่อมต่อระหว่างเน็ตเวิร์ค มีประสิทธิภาพมากที่สุด • วิธีการหาเส้นทางใช้ขั้นตอนวิธีหรืออัลกอริทึม ในการเลือกเส้นทาง ทางเลือกที่ดีที่สุดมักมีการเปลี่ยนแปลงได้ ตลอดเวลา เมื่อสถานะการเปลียนแปลงไป 96304 Data Communications and Networking
5
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.1 แนวคิดของการหาเส้นทาง • รูปแบบการส่งข้อมูล มี 2 แบบ 1) แบบยูนิแคส 2) แบบมัลติแคส • กระบวนการเรียนรู้เส้นทางของเราท์เตอร์ มี 2 ลักษณะ 1) แบบสถิต 2) แบบพลวัต
96304 Data Communications and Networking
6
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
รูปแบบการส่งข้อมูล 1) แบบยูนิแคส (Unicast) • การรับส่งข้อมูล จากโหนดหนึ่งไปยังโหนดหนึ่ง ในลักษณะ 1 ต่อ 1 (One-to-One)
• ขัน ้ ตอนวิธีการหาเส้นทาง แบบเวกเตอร์ระยะทาง (Distance-Vector routing)
• ขั้นตอนวิธีการหาเส้นทาง แบบสถานะเชื่อมโยง (Link-State routing) • ขั้นตอนวิธีการหาเส้นทาง แบบเวกเตอร์ทางเดิน (Path-Vector routing) 96304 Data Communications and Networking
7
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
รูปแบบการส่งข้อมูล 2) แบบมัลติแคส (Multicast) • ส่งข้อมูล จาก โหนดต้นทางหนึ่ง ไปยัง กลุ่มของโหนดปลายทางเฉพาะกลุ่ม ที่ต้องการรับข้อมูลเท่านั้น ในลักษณะ 1 ต่อ กลุ่มเฉพาะ (One-to-N) • ข้อมูลถูกส่งจากต้นทางเพี ยงแพ็ กเก็ตเดียว • Router ค้นหาเส้นทางถึงกลุ่มเครือข่าย ปลายทาง โดยทําการคัดลอกแพ็ กเก็ตข้อมูล แล้วส่งให้ปลายทางทุกโหนดที่ต้องการ 96304 Data Communications and Networking
8
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
กระบวนการเรียนรูเ้ ส้นทางของเราท์เตอร์
1) แบบสถิต (Static routing)
• การกําหนดค่าต่าง ๆ ที่ใช้สําหรับการคํานวนหาเส้นทาง ให้กับเราท์เตอร์ • ผู้ดูแลระบบเป็นผู้ทําการกําหนดค่าต่าง ๆ ให้กับเราท์เตอร์
2) แบบพลวัต (Dynamic routing) • การใช้โพรโทคอลต่าง ๆ ในการเรียนรู้เส้นทาง เกี่ยวกับ ค่าซับเนต (Subnet) ของเครือข่าย ปลายทางต่าง ๆ จากเราท์เตอร์ข้างเคียง • โพรโทคอลที่ใช้ แสดงเส้นทางในลักษณะ แผนภูมิต้นไม้ (Routing tree) 96304 Data Communications and Networking
9
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.2 หลักการของวิธีการหาเส้นทาง • การเลือกเส้นทางของเราท์เตอร์ เกิดขึ้นทุกครั้ง ที่มีการรับดาต้าแกรมตัวใหม่เข้ามา • ทางเลือกที่ดีที่สุดมีการเปลี่ยนแปลงได้ตลอดเวลา โดยใช้ข้อมูลจากตารางการเดินทาง • ขั้นตอนวิธี ใช้หลักการของกราฟถ่วงนํ้าหนัก และ แผนภูมิต้นไม้ เข้ามาช่วยในการหาเส้นทาง ที่ดีที่สุด และมีค่าใช้จ่ายน้อยสุด 96304 Data Communications and Networking
10
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.2 หลักการของวิธีการหาเส้นทาง
กราฟถ่วงนํา้ หนัก
(weighted graph) การหาเส้นทางที่ดีที่สุดในการส่งข้อมูล ใช้หลักการของ กราฟ โดยใช้ วงกลม แทน เซตของโหนด (node) และ ขีด แทน เส้นเชื่อมระหว่างโหนด (edge) เรียกว่า กราฟถ่วงนํ้าหนัก เป็น กราฟที่มีการกําหนดค่านํ้าหนัก ให้กับเส้นเชื่อมระหว่างโหนด 96304 Data Communications and Networking
11
ตัวอย่าง ของ กราฟถ่วงนํ้าหนัก ่ ํามาใช้ ในขั้นตอนวิธีการหาเส้นทาง ทีน
A
2
3
B
5
4
D
5
C
3
G
4
E
ตัวเลขกํากับเส้นเชื่อม
2
F
1
แทนโหนด แทนเส้นเชื่อม แทนค่าใช้จ่าย
96304 Data Communications and Networking
12
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.1.2 หลักการของวิธีการหาเส้นทาง
แผนภูมิต้นไม้
(tree diagram) • ใช้คํานวณหาเส้นทางที่ดีที่สุด • แทนการเชื่อมต่อระหว่างโหนดต่าง ๆ จากโหนดใดโหนดหนึ่งไปยังทุกโหนดในระบบ เรียกว่า รากของต้นไม้ (root node) • เขียนได้หลายรูปแบบขึ้นกับจํานวนโหนด • การหาเส้นทางที่ดีที่สุด จะใช้แผนภูมิต้นไม้ที่ค่าใช้จ่ายน้อยสุด 96304 Data Communications and Networking
13
ตัวอย่าง ของ แผนภูมิต้นไม้ ่ ้อยทีส ่ ุดของโหนด A ่ ํามาใช้ ค่าใช้จ่ายทีน ทีน 0
2
7
A
B
C
3
E
9
F
6 แทนโหนดราก
ตัวเลขกํากับโหนด
3
D
G D
A
8 แทนโหนดใด ๆ
แทนเส้นเชื่อม แทนค่าใช้จ่ายรวมจากโหนดราก
96304 Data Communications and Networking
14
2
B
5
4 5
C
3
G
4
E
2
F
1
จากรูปแผนภูมิต้นไม้ 1) แสดงค่าใช้จ่ายน้อยสุดของโหนดใด และ ถ้าต้องการส่งข้อมูลจากโหนดดังกล่าวไปยังโหนดต่างนั้น 2) ต้องส่งผ่านไปทางใด 3) ด้วยค่าใช้จ่ายเท่าไร
9
7
3
A
B
C G
D
E
F
8
3
1
แทนโหนดราก
0
แทนโหนดใด ๆ
แทนเส้นเชื่อม ตัวเลขกํ กับโหนด 15 แทนค่and าใช้Networking จ่ายรวมจากโหนดราก 96304าData Communications
9
7
3
A
B
C G 0
D
E
F
8
3
1
แผนภูมิต้นไม้ แสดงค่าใช้จ่ายน้อยสุดของโหนด G การส่งข้อมูลจากโหนด G ไปยังโหนดต่าง ๆ G ▶ C โดยตรง เสียค่าใช้จ่ายเท่ากับ 3 G ▶ F โดยตรง เสียค่าใช้จ่ายเท่ากับ 1 G ▶ E โดยผ่าน F เสียค่าใช้จ่ายเท่ากับ 3 G ▶ B โดยผ่าน F และ E เสียค่าใช้จ่ายรวมเท่ากับ 7 G ▶ D โดยผ่าน F และ E เสียค่าใช้จ่ายรวมเท่ากับ 8 G ▶ A โดยผ่าน F และ E และ B เสียค่าใช้จ่ายรวมเท่ากับ 9
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2 ขั้นตอนวิธีการหาเส้นทาง
วัตถุประสงค์ เพื่ อให้ผู้เรียนสามารถ
1) อธิบายหลักการของขั้นตอนวิธีการหาเส้นทาง แบบเวกเตอร์ระยะทางได้ 2) อธิบายแผนภูมิต้นไม้ถ่วงนํ้าหนัก ในการหาเส้นทางแบบเวกเตอร์ระยะทางได้ 3) สร้างตารางเวกเตอร์ระยะทาง ในการหาเส้นทางแบบเวกเตอร์ระยะทางได้ 4) อธิบายขั้นตอนการสร้างแผนภูมิต้นไม้ ที่แสดงค่าใช้จ่ายน้อยสุด ด้วยวิธีการหาเส้นทางแบบเวกเตอร์ ระยะทางได้ 96304 Data Communications and Networking
17
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2 ขั้นตอนวิธีการหาเส้นทาง
วัตถุประสงค์ เพื่ อให้ผู้เรียนสามารถ
5) อธิบายหลักการของขั้นตอนวิธีการหาเส้นทาง แบบสถานะเชื่อมโยงได้ 6) อธิบายขั้นตอนการสร้างแผนภูมิต้นไม้ ที่แสดงค่าใช้จ่ายน้อยสุด ด้วยวิธีการหาเส้นทางแบบสถานะเชื่อมโยงได้ 7) สร้างแพ็ คเก็ตสถานะเชื่อมโยง ของวิธีการหาเส้นทางแบบสถานะเชื่อมโยง ที่กําหนดให้ได้ 8) สร้างตารางฐานข้อมูลสถานะเชื่อมโยง จากแผนภูมิต้นไม้ถ่วงนํ้าหนักที่กําหนดให้ได้ 96304 Data Communications and Networking
18
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2 ขั้นตอนวิธีการหาเส้นทาง
• ใช้หลักการหาเส้นทางที่สั้น หรือ ใช้เวลาน้อยที่สุด และใช้เรื่องกราฟ ต้นไม้ เข้ามาช่วย
• ขั้นตอนวิธีแบบเวกเตอร์ระยะทาง
ใช้อุปกรณ์เชื่อมต่อทําหน้าที่เป็นตัวค้นหาเส้นทาง นําข้อมูลจากตารางเส้นทางมาใช้ในการพิ จารณา เลือกเส้นทางด้วย
• ขั้นตอนวิธีการหาเส้นทางแบบสถานะเชื่อมโยง มีอุปกรณ์ทําหน้าที่ค้นหาเส้นทาง แลกเปลี่ยนข้อมูลกัน เรียกว่า สถานะเชื่อมโยง
• ระบบจะมีการส่งข้อมูลถึงกัน
เราท์เตอร์ทุกตัวในระบบรู้จักกันหมด และทราบเส้นทางทั้งหมดในการเชื่อมโยง ของเราท์เตอร์ที่มีการเก็บข้อมูลไว้ เรียกว่า ข้อมูลทอโพโลจี
96304 Data Communications and Networking
19
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2.1 ขั้นตอนวิธี การหาเส้นทาง
แบบเวกเตอร์ระยะทาง
(Distance-Vector routing) • เป็นความสัมพั นธ์ ที่เก็บ รวบรวมค่าใช้จ่ายที่ตํ่าที่สุด จากโหนดรากไปยังโหนดต่าง ๆ ในเครือข่าย โดย เก็บในเวกเตอร์ระยะทาง • ชื่อของเวกเตอร์ระยะทาง (Distance-Vector) คือ โหนดรากตําแหน่ง (index) แทนโหนดใด ๆ ในเครือข่าย หรือ โหนดปลายทาง และค่าตัวแปร หมายถึง ค่าใช้จ่าย สําหรับการส่งข้อมูลจากโหนดราก ไปยังโหนดนั้น ๆ 96304 Data Communications and Networking
20
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2.1 ขั้นตอนวิธี การหาเส้นทาง
แบบเวกเตอร์ระยะทาง
(Distance-Vector routing) • เป็นการหาเส้นทางแบบพลวัต (dynamic) ในการหาเส้นทางที่ดีที่สุด • ใช้โครงสร้างข้อมูลแบบต้นไม้ในการเก็บข้อมูล เริ่มจากการสร้างแผนภูมิต้นไม้แบบถ่วงนํ้าหนัก ของแต่ละโหนดที่อยู่ในระบบเครือข่าย • แผนภูมิต้นไม้นี้เริ่มจากการใส่ค่าใช้จ่าย จากโหนดรากไปยังโหนดข้างเคียง • หากไม่มีการเชื่อมต่อไปยังโหนดใด จะใส่ค่าใช้จ่ายของโหนดนั้นเป็นค่าอนันต์ (Infinity, ¥) 96304 Data Communications and Networking
21
A B C D E F G
0 2 ¥ 3 ¥ ¥ ¥
A
A B C D E F G
2
B
3
A B C D E F G
5
3 ¥ ¥ 0 5 ¥ ¥
A B C D E F G
3
G
4
E
5
¥ 5 0 ¥ ¥ 4 3
C
4
D A B C D E F G
2 0 5 ¥ 4 ¥ ¥
¥ 4 ¥ 5 0 2 ¥
2 A B C D E F G
A B C D E F G
¥ ¥ 3 ¥ ¥ 1 0
F
1
¥ ¥ 4 ¥ 2 0 1
จากกราฟถ่วงนํ้าหนัก สามารถสร้างตารางเริม ่ ต้น และเวกเตอร์ระยะทาง ได้ดังภาพ
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
7.2.2 ขั้นตอนวิธี การหาเส้นทาง
่ มโยง แบบสถานะเชือ
(Link-State routing)
• เก็บรวบรวมข้อมูลการเชื่อมต่อทั้งหมด ที่มีในระบบเครือข่ายไว้ที่ฐานข้อมูลสถานะเชื่อมโยง (Link-State Database; LSDB) • การจัดเก็บข้อมูล ใช้โครงสร้างข้อมูล แบบอาเรย์สองมิติ (two-dimensional array) หรือ แมทริกซ์ (matrix) • ค่าข้อมูลแต่ละตัว คือ ค่าใช้จ่ายในการเชื่อมต่อ ระหว่างสองโหนดใด ๆ 96304 Data Communications and Networking
23
A
2
3
4
D
A B C D E F G
B
5
A 0 2 ¥ 3 ¥ ¥ ¥
5
B 2 0 5 ¥ 4 ¥ ¥
E C ¥ 5 0 ¥ ¥ 4 3
C
3
G
4
F
2
D 3 ¥ ¥ 0 5 ¥ ¥
E ¥ 4 ¥ 5 0 2 ¥
F ¥ ¥ 4 ¥ 2 0 1
1
G ¥ ¥ 3 ¥ ¥ 1 0
ตัวอย่าง LSDB เป็นการนําข้อมูลมา จากกราฟถ่วงนํ้าหนัก
กิจกรรม จากกราฟถ่วงนํ้าหนัก 1) จงสร้างตารางเริ่มต้นเวกเตอร์ระยะทาง 2) จากตารางเริ่มต้นเวกเตอร์ระยะทางที่สร้าง ขึ้นมานั้น ถ้าพิ จารณาที่โหนด A หลังจากที่ นําข้อมูลของโหนดข้างเคียงมา พิ จารณาปรับปรุงข้อมูล แล้วจะได้อย่างไร
A
4
B
6
1
C
3
G
8
D
3
E
5
F
2
A B C D E F G
0 4 ¥ 1 ¥ ¥ ¥
A
A B C D E F G
4
4 0 6 ¥ ¥ 8 ¥
B
A B C D E F G
6
1
C
3
G
8
D A B C D E F G
¥ 6 0 ¥ ¥ ¥ 3
1 ¥ ¥ 0 3 ¥ ¥
3 A B C D E F G
E ¥ ¥ ¥ 3 0 5 ¥
5 A B C D E F G
A B C D E F G
¥ ¥ 3 ¥ ¥ 2 0
F
2
¥ 8 ¥ ¥ 5 0 2
จากกราฟถ่วงนํ้าหนัก สามารถสร้างตารางเริม ่ ต้น และเวกเตอร์ระยะทาง ได้ดังภาพ
ถ้าพิ จารณาที่โหนด A หลังจากที่ นําข้อมูลของโหนดข้างเคียงมา พิ จารณาปรับปรุงข้อมูล แล้วจะได้อย่างไร 4
A
B
6
1
3 G
8
D A B C D E F G
C
3 0 4 10 1 ¥ 12 ¥
E
5
F
2
พิ จารณาโหนด A มีโหนดข้างเคียง 2 โหนด คือ B และ D
หลังจากได้ข้อมูลจากโหนด B เข้ามาพิ จารณาเวกเตอร์ระยะทาง โหนด A ปรับปรุงข้อมูล ◀ ได้ตามรูปด้านซ้าย หลังจากได้ข้อมูลจากโหนด D เข้ามาพิ จารณาเวกเตอร์ระยะทาง โหนด A ปรับปรุงข้อมูล ได้ตามรูปด้านขวา ▶
A 0 B 4 C 10 D 1 E 4 F 12 G ¥
กิจกรรม จากตารางเริ่มต้นเวกเตอร์ระยะทาง 1) จงเขียนกราฟถ่วงนํ้าหนัก 2) จงหาเวกเตอร์ระยะทางของโหนด A ในขั้นตอนสุดท้าย และ 3) แผนภูมิต้นไม้ที่แสดงค่าใช้จ่ายน้อยสุด ของโหนด A A B C D E F
0 1 ¥ 1 1 ¥
A B C D E F
1 0 9 ¥ ¥ ¥
A B C D E F
¥ 9 0 ¥ 2 ¥
A B C D E F
1 ¥ ¥ 0 4 ¥
A B C D E F
1 ¥ 2 4 0 5
A B C D E F
¥ ¥ ¥ ¥ 5 0
กราฟถ่วงนํ้าหนัก เวกเตอร์ระยะทางของโหนด A และ แผนภูมิต้นไม้ ที่แสดงค่าใช้จ่าย น้อยสุดของโหนด A
A
1
1 D
B
9
1 4
C
2 E
5
F
A B C D E F
0 1 3 1 1 6
0
1
3
A
B
C
D
E
F
1
1
6
Module 07 ▶ ขั้นตอนวิธีการหาเส้นทาง ผู้สอน ▶ ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม
Module 07
ขัน ้ ตอนวิธีการหาเส้นทาง ผู้ช่วยศาสตราจารย์กชกร ณ นครพนม สาขาวิ ช าวิ ท ยาศาสตร์ แ ละเทคโนโลยี มหาวิ ท ยาลั ย สุ โ ขทั ย ธรรมาธิ ร าช
96304 Data Communications and Networking
30