4.5.2 is called a distance-vector (DV) algorithm, because each node maintains a
vector of estimates of the costs (distances) to all other nodes in the network.
A second broad way to classify routing algorithms is according to whether they
are static or dynamic. In static routing algorithms, routes change very slowly over
time, often as a result of human intervention (for example, a human manually editing
a router’s forwarding table). Dynamic routing algorithms change the routing
paths as the network traffic loads or topology change. A dynamic algorithm can be
run either periodically or in direct response to topology or link cost changes. While
dynamic algorithms are more responsive to network changes, they are also more
susceptible to problems such as routing loops and oscillation in routes.
Athird way to classify routing algorithms is according to whether they are loadsensitive
or load-insensitive. In a load-sensitive algorithm, link costs vary dynamically
to reflect the current level of congestion in the underlying link. If a high cost is
associated with a link that is currently congested, a routing algorithm will tend to
choose routes around such a congested link. While early ARPAnet routing algorithms
were load-sensitive [McQuillan 1980], a number of difficulties were encountered
[Huitema 1998]. Today’s Internet routing algorithms (such as RIP, OSPF, and
BGP) are load-insensitive, as a link’s cost does not explicitly reflect its current (or
recent past) level of congestion.
4.5.1 The Link-State (LS) Routing Algorithm
Recall that in a link-state algorithm, the network topology and all link costs are
known, that is, available as input to the LS algorithm. In practice this is accomplished
by having each node broadcast link-state packets to all other nodes in the
network, with each link-state packet containing the identities and costs of its
attached links. In practice (for example, with the Internet’s OSPF routing protocol,
discussed in Section 4.6.1) this is often accomplished by a link-state broadcast
366 CHAPTER 4 • THE NETWORK LAYER
algorithm [Perlman 1999]. We’ll cover broadcast algorithms in Section 4.7. The
result of the nodes’ broadcast is that all nodes have an identical and complete view
of the network. Each node can then run the LS algorithm and compute the same set
of least-cost paths as every other node.
The link-state routing algorithm we present below is known as Dijkstra’s algorithm,
named after its inventor. A closely related algorithm is Prim’s algorithm; see
[Cormen 2001] for a general discussion of graph algorithms. Dijkstra’s algorithm
computes the least-cost path from one node (the source, which we will refer to as u)
to all other nodes in the network. Dijkstra’s algorithm is iterative and has the property
that after the kth iteration of the algorithm, the least-cost paths are known to k
destination nodes, and among the least-cost paths to all destination nodes, these k
paths will have the k smallest costs. Let us define the following notation:
• D(v): cost of the least-cost path from the source node to destination v as of this
iteration of the algorithm.
• p(v): previous node (neighbor of v) along the current least-cost path from the
source to v.
• N : subset of nodes; v is in N if the least-cost path from the source to v is definitively
known.
The global routing algorithm consists of an initialization step followed by a
loop. The number of times the loop is executed is equal to the number of nodes in
the network. Upon termination, the algorithm will have calculated the shortest paths
from the source node u to every other node in the network.
Link-State (LS) Algorithm for Source Node u
1 Initialization:
2 N’ = {u}
3 for all nodes v
4 if v is a neighbor of u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N’ such that D(w) is a minimum
10 add w to N’
11 update D(v) for each neighbor v of w and not in N’:
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 least path cost to w plus cost from w to v */
15 until N’= N
4.5 • ROUTING ALGORITHMS 367
As an example, let’s consider the network in Figure 4.27 and compute the
least-cost paths from u to all possible destinations. A tabular summary of the
algorithm’s computation is shown in Table 4.3, where each line in the table gives
the values of the algorithm’s variables at the end of the iteration. Let’s consider
the few first steps in detail.
• In the initialization step, the currently known least-cost paths from u to its
directly attached neighbors, v, x, and w, are initialized to 2, 1, and 5, respectively.
Note in particular that the cost to w is set to 5 (even though we will soon see that
a lesser-cost path does indeed exist) since this is the cost of the direct (one hop)
link from u to w. The costs to y and z are set to infinity because they are not
directly connected to u.
• In the first iteration, we look among those nodes not yet added to the set N and
find that node with the least cost as of the end of the previous iteration. That node
is x, with a cost of 1, and thus x is added to the set N . Line 12 of the LS algorithm
is then performed to update D(v) for all nodes v, yielding the results shown
in the second line (Step 1) in Table 4.3. The cost of the path to v is unchanged.
The cost of the path to w (which was 5 at the end of the initialization) through
node x is found to have a cost of 4. Hence this lower-cost path is selected and w’s
predecessor along the shortest path from u is set to x. Similarly, the cost to y
(through x) is computed to be 2, and the table is updated accordingly.
• In the second iteration, nodes v and y are found to have the least-cost paths (2),
and we break the tie arbitrarily and add y to the set N so that N now contains u,
x, and y. The cost to the remaining nodes not yet in N , that is, nodes v, w, and z,
are updated via line 12 of the LS algorithm, yielding the results shown in the
third row in the Table 4.3.
• And so on. . . .
When the LS algorithm terminates, we have, for each node, its predecessor
along the least-cost path from the source node. For each predecessor, we also
368 CHAPTER 4 • THE NETWORK LAYER
step N’ D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
Table 4.3 Running the link-state algorithm on the network in Figure 4.27
VideoNote
Dijkstra’s algorithm:
discussion and example
have its predecessor, and so in this manner we can construct the entire path from
the source to all destinations. The forwarding table in a node, say node u, can
then be constructed from this information by storing, for each destination, the
next-hop node on the least-cost path from u to the destination. Figure 4.28
4.5.2 เรียกว่าอัลกอริทึมจากเวกเตอร์ (DV) เนื่องจากแต่ละโหนรักษาความเวกเตอร์การประเมินต้นทุน (ระยะทาง) ไปยังโหนทั้งหมดในเครือข่ายตามแบบกว้างที่สองเพื่อจัดประเภทสายงานการผลิตอัลกอริทึมการว่าพวกเขาจะคงที่ หรือไดนามิก ในแบบสายงานการผลิตอัลกอริทึม เส้นทางการเปลี่ยนแปลงช้ามากเวลา มักเป็นผลจากการแทรกแซงของมนุษย์ (เช่น มนุษย์แก้ไขด้วยตนเองของเราเตอร์ส่งตาราง) อัลกอริทึมเส้นทางแบบไดนามิกเปลี่ยนเส้นทางการเปลี่ยนแปลงเส้นทางปริมาณการจราจรของเครือข่ายหรือโทโพโลยี ขั้นตอนวิธีแบบไดนามิกได้เรียกใช้เป็นครั้งคราว หรือตอบสนองโดยตรงโทโพโลยีการเชื่อมโยงต้นทุนเปลี่ยนแปลง ในขณะที่อัลกอริทึมแบบไดนามิกมากขึ้นตอบสนองต่อการเปลี่ยนแปลงเครือข่าย อีกทั้งยังเพิ่มเติมไวต่อปัญหาลูปและสั่นในเส้นทางสายAthird วิธีการจัดประเภทกระบวนการผลิตอัลกอริทึมตามว่าจะ loadsensitiveหรือโหลดซ้อน ในอัลกอริทึมความโหลด เชื่อมโยงต้นทุนเปลี่ยนแปลงแบบไดนามิกเพื่อแสดงระดับปัจจุบันของแออัดในการเชื่อมโยงที่อยู่ภายใต้ ถ้าต้นทุนสูงเกี่ยวข้องกับการเชื่อมโยงที่อยู่แออัด อัลกอริทึมการสายงานการผลิตจะมีแนวโน้มที่เลือกเส้นทางรอบ ๆ ลิงค์ congested ในขณะต้น ARPAnet สายอัลกอริทึมได้พบโหลดลับ [McQuillan 1980], จำนวนความยากลำบาก[Huitema 1998] วันนี้เน็ตสายอัลกอริทึม (เช่น RIP, OSPF และปอนด์) เป็นการโหลดซ้อน ต้นทุนของการเชื่อมโยงไม่ชัดเจนสะท้อนของปัจจุบัน (หรือล่าสุดอดีต) ระดับความแออัด4.5.1 การ (LS) สถานะการเชื่อมโยงเส้นทางอัลกอริทึมนึกว่า อัลกอริทึมสถานะการเชื่อมโยง โทโพโลยีเครือข่ายและต้นทุนทั้งหมดเชื่อมโยงเป็นรู้จัก คือ เป็นป้อนเข้าอัลกอริทึม LS ในแบบฝึกหัด นี้ได้โดยมีโหนแต่ละแพคเก็ตสถานะการเชื่อมโยงไปยังโหนทั้งหมดในการเผยแพร่เครือข่าย มีแพคเก็ตสถานะการเชื่อมโยงแต่ละที่ประกอบด้วยเอกลักษณ์และต้นทุนของแนบลิงค์ ในทางปฏิบัติ (ตัวอย่าง กับโพรโทคอลการกำหนดเส้นทางของ OSPF อินเทอร์เน็ตกล่าวถึงในหัวข้อ 4.6.1) นี้มักจะได้ โดยการเชื่อมโยงรัฐออกอากาศ•บทที่ 4 366 ชั้นเครือข่ายอัลกอริทึม [Perlman 1999] เราจะครอบคลุมกระบวนการกระจายในส่วน 4.7 ที่คือผลของการออกอากาศของโหน โหนทั้งหมดมีมุมมองที่เหมือนกัน และสมบูรณ์ของเครือข่าย แต่ละโหนดสามารถเรียกใช้อัลกอริทึม LS แล้วคำนวณชุดเดียวกันของเส้นทางต้นทุนน้อยที่สุดเป็นโหนทุกเรียกว่าวิธีของไดค์ สถานะการเชื่อมโยงเส้นทางอัลกอริทึมเราแสดงด้านล่างชื่อหลังของนักประดิษฐ์ ขั้นตอนวิธีการที่เกี่ยวข้องอย่างใกล้ชิดเป็นอัลกอริทึมของพริม ดู[Cormen 2001] สำหรับการสนทนาทั่วไปของกราฟอัลกอริทึมการ วิธีของไดค์คำนวณเส้นทางต้นทุนน้อยที่สุดจากโหนหนึ่ง (แหล่งที่มา ที่เราจะอ้างอิงถึงเป็น u)การโหนดอื่นทั้งหมดในเครือข่าย วิธีของไดค์เป็นซ้ำ และมีคุณสมบัติว่า หลังจากเกิดซ้ำ kth ของอัลกอริทึม เส้นทางต้นทุนน้อยทราบว่า kโหนดปลายทาง และ ระหว่างเส้นทางต้นทุนน้อยที่สุดไปโหนปลายทางทั้งหมด k เหล่านี้เส้นทางจะมีต้นทุนน้อยที่สุด k ให้เรากำหนดสัญลักษณ์ต่อไปนี้:• D(v): ต้นทุนเส้นทางต้นทุนน้อยที่สุดจากโหนแหล่งไป v ปลายทาง ณที่นี้การเกิดซ้ำของขั้นตอนวิธีการ• p(v): โหนก่อนหน้า (เพื่อนบ้านของ v) ตามเส้นทางต้นทุนน้อยที่สุดปัจจุบันจากการแหล่งที่มากับ v• N: ย่อยของโหนด v คือ N ถ้าเส้นทางต้นทุนน้อยที่สุดจากแหล่งไป v แน่นอนรู้จักกันขั้นตอนวิธีการกระบวนการผลิตทั่วโลกประกอบด้วยขั้นตอนการเตรียมใช้งานตามวน จำนวนครั้งที่ปฏิบัติการลูปเท่ากับจำนวนของโหนดในเครือข่าย เมื่อเลิกจ้าง อัลกอริทึมจะมีคำนวณเส้นทางสั้นที่สุดจากโหนแหล่งที่มาคุณทุกโหนอื่น ๆ ในเครือข่ายอัลกอริทึม (LS) สถานะการเชื่อมโยงแหล่งโหนด uเริ่มต้น 1:2 N' = {u }3 สำหรับ v โหนทั้งหมด4 ถ้า v คือ เพื่อนบ้านของคุณ5 แล้ว D(v) = c(u,v)D(v) อื่น 6 =∞7วน 89 ค้นหา w ไม่ N' เช่นที่ D(w) อย่างน้อย10 เพิ่ม w N'11 อัพเด D(v) สำหรับแต่ละ v ใกล้เคียง ของ w และไม่ได้อยู่ ใน N':12 D(v) = min (D(v), D(w) + c(w,v))13 / * v ใหม่ต้นทุนคือ ต้นทุนเก่า v หรือที่รู้จักกันอย่างใดอย่างหนึ่งเส้นทางอย่างน้อย 14 ทุนกับ w บวกต้นทุนจาก w กับ v * /15 จนถึง N'= N4.5 •เส้นทางอัลกอริทึม 367เป็นตัวอย่าง ลองพิจารณาเครือข่ายในรูป 4.27 และคำนวณการเส้นทางต้นทุนน้อยที่สุดจากคุณไปยังจุดหมายปลายทางเป็นไปได้ทั้งหมด สรุปตารางการแสดงอยู่ในตาราง 4.3 ซึ่งแต่ละบรรทัดในตารางให้คำนวณของอัลกอริทึมค่าของตัวแปรของอัลกอริทึมที่สิ้นสุดของการเกิดซ้ำ ลองพิจารณาขั้นตอนแรกเพียงไม่กี่รายละเอียด•ในการเริ่มต้นขั้นตอน เส้นทางต้นทุนน้อยที่สุดขณะนี้ทราบจากคุณของบ้านแนบโดยตรง v, x และ w จะเริ่มต้น กับ 2, 1, 5 ตามลำดับหมายเหตุเฉพาะที่ ต้นทุนในการ w ถูกตั้งค่าเป็น 5 (แม้เราจะเร็ว ๆ นี้เห็นว่าเส้นทางน้อยกว่าต้นทุนจริงอยู่) เนื่องจากเป็นต้นทุนทางตรง (หนึ่งตู้)เชื่อมโยงจากคุณ w มีตั้งต้นทุน y และ z อนันต์เนื่องจากไม่เชื่อมต่อโดยตรงกับคุณ•ในการเกิดซ้ำครั้งแรก ดูระหว่างโหนเหล่านั้นยังไม่ได้ เพิ่มชุด N และพบโหนกับน้อยที่สุดต้นทุน ณจุดสิ้นสุดของการเกิดซ้ำที่ก่อนหน้านี้ ที่โหนดเป็น x ต้นทุน 1 และ x จะเพิ่มชุด N บรรทัดที่ 12 ของอัลกอริทึม LSแล้วทำการปรับปรุง D(v) v โหนทั้งหมด ผลผลิตผลลัพธ์ที่แสดงในบรรทัดสอง (ขั้นตอนที่ 1) ในตาราง 4.3 ต้นทุนเส้นทางไปวีไม่ได้มีการเปลี่ยนแปลงต้นทุนเส้นทางไป w (ซึ่ง 5 ที่สุดของการเริ่มต้น) ผ่านโหนด x มีพบต้องมีต้นทุน 4 ดังนั้น เลือกเส้นทางต้นทุนต่ำกว่านี้ และ w'sรุ่นก่อนไปตามเส้นทางสั้นที่สุดจาก u ถูกตั้งค่าเป็น x ในทำนองเดียวกัน ต้นทุน y(ผ่าน x) ที่คำนวณเป็น 2 และตารางการปรับปรุงให้สอดคล้องกัน•ในการเกิดซ้ำครั้งที่สอง โหนด v และ y พบมีเส้นทางต้นทุนน้อยที่สุด (2),และเราแบ่งการผูกโดยเพิ่ม y N กำหนดให้ N ที่ประกอบด้วย ux และ y ต้นทุนคงเหลือ โหนไม่ ได้ N คือ โหนด v, w และ zปรับปรุงทางสาย 12 LS อัลกอริทึม ผลผลิตผลลัพธ์ที่แสดงในแบบแถวที่สามใน 4.3 ตาราง•และการ...เมื่ออัลกอริทึม LS ยุติ เรามี แต่ละโหน บรรพบุรุษไปตามเส้นทางต้นทุนน้อยที่สุดจากโหนแหล่งที่มา สำหรับแต่ละรุ่นก่อน เรายัง•บทที่ 4 368 ชั้นเครือข่ายขั้นตอนที่ N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)0 u 2, u 5, u 1, u ∞∞ux 1 2, u 4, x 2, x ∞2 uxy 2, u 3, y 4, yuxyv 3 3, y 4, y4 uxyvw 4, y5 uxyvwzตาราง 4.3 ใช้อัลกอริธึมที่สถานะการเชื่อมโยงเครือข่ายในรูป 4.27VideoNoteวิธีของไดค์:คำอธิบายและตัวอย่างมีบรรพบุรุษ และอื่น ๆ ในลักษณะนี้ เราสามารถสร้างเส้นทางทั้งจากแหล่งสถานที่ท่องเที่ยวทั้งหมด ตารางการส่งต่อในโหน ว่า โหนด u สามารถจากนั้น จะถูกสร้างขึ้นจากข้อมูลนี้ โดยการจัดเก็บ สำหรับแต่ละปลายทาง การโหนด hop ถัดไปบนเส้นทางต้นทุนน้อยที่สุดจากคุณไปยังปลายทาง รูปที่ 4.28
การแปล กรุณารอสักครู่..