diff --git a/d36-EIGRP.md b/d36-EIGRP.md index 459d853..818b076 100644 --- a/d36-EIGRP.md +++ b/d36-EIGRP.md @@ -680,3 +680,19 @@ Static Address Interface 192.168.1.3 FastEthernet0/0 ``` +###可靠传输协议 + +增强的IGRP需要自己的传输协议,来确保数据包的可靠送达。EIGRP使用可靠传输协议(Reliable Transport Protocol, RTP),来确保更新(Update)、查询(Query)及应答(Reply)数据包的可靠发送。顺序编号的使用,还确保了EIGRP数据包的有序接收。 + +在可靠EIGRP数据包发送到某个邻居时,发送路由器期望从接收路由器收到一个表明该数据包已收到的确认。在使用可靠传输协议时,EIGRP维护着一个未确认数据包的传输窗口(a transport window of one unacknowledged packet), 这就意味着所发出的所有可靠数据包,都需要进行确认,之后才能发出下一个数据包。发送方路由器将对未收到确认的可靠数据包进行重传,直到其收到一个确认。 + +但重要的是需注意到,**未经确认的数据包只会重传16次**。如在16次重传后仍没有确认,EIGRP将对该邻居关系进行重置。可靠传输协议使用到多播及单播数据包。在诸如以太网这样的广播多路访问网络,EIGRP就会向网段上的每台路由器发送多播数据包,而不是单个数据包(单播)(On Broadcast Multi-Access networks such as Ethernet, EIGRP uses Multicast packets instead of sending an individual packet(Unicast) to each router on the segment)。但在没有从多路访问网段上一台或更多的邻居收到响应时,还是会用单播发送数据包。下面结合图36.7中的图表,对此进行了说明: + +![EIGRP的可靠传输协议的运作](images/3607.png) +*图 36.7 -- EIGRP可靠传输协议的运作* + +在图36.7中,路由器R1、R2与R3位于多路访问网段上的同一子网中。在给定的传输介质下,EIGRP将使用多播,在这些路由器直接发送可靠数据包。这里假定,比如路由器R1发出了一个需要确认的数据包给路由器R2和R3。随后R1就等待来自R2和R3收到此数据包的确认。 + +假设路由器R3响应了,R2却无法对此数据包进行响应。在EIGRP维护了一个未确认数据包传输窗口的情况下,就是说每个发出的单独可靠数据包,在发送下一个可靠数据包之前,都必须要邻居路由器进行显式的确认,而由于路由器R1将无法在收到来自R2的确认前,发出数据包,这样就在该多路访问网段上出现了一个可能的问题。因此路由器R3就间接收到R2上故障的影响了(Given that EIGRP maintains a transport window of one unacknowledged packet, which means that every individual reliable packet that is sent out must be acknowledged explicitly by the neighbour router(s) before the next reliable packet can be sent, this presents a possible issue on the Multi-access segment because R1 will not be able to send out packets until it has received the acknowledgment from R2. R3 is therefore indirectly affected by the issues on R2)。 + + diff --git a/images/3607.png b/images/3607.png new file mode 100644 index 0000000..5539f56 Binary files /dev/null and b/images/3607.png differ