EGP 外部网关协议( 五 )


b)那些邻机中间每一个邻机,都有一个相应的网络列表,对于网络N而言这个邻机就是这些网络的合适初站 。c)对每个象这样的对,表示从那个邻机到达那个网络的"距离" 。
因此NR报文提供一种方法,通过查看一个已知的邻机在同一个网络上是否具有其他的邻机,答应一个网关去发现新的邻机 。
这些信息使得在下面定义的间接邻机策略成为可能 。
以下是NR报文更精确地说明 。
报文中的数据部分包含大量的数据块 。每个块总是以一个网关地址为首,它可能是发送该报文的网关的地址或那个网关的邻机中的某个的地址 。每个网关地址后面可能有一个网络列表以及从那个网关到每个网络的距离,对于那些网络该网关是一个合适的初站 。
放在该数据块列表之前的是:
于这个报文相关的那个网络的地址 。
假如G和G"是网络N上的邻机,那么在从G去往G"的NR报文中,它是网络N地址 。
为了方便起见,四个字节已经配给这个地址--末尾的一、两、或三字节应该为零 。
b)的内部邻机的总数是这个报文包含的数据块数 。按照惯例,总数将包含G本身的数据块,它应该是第一个出现 。c)G的外部邻机的总数是这个报文包含的数据块数 。
那么数据块本身之后,首先是G本身,然后是G的所有内部邻机的块,再后边是外部邻机块 。因为所有提到的在同一个网络上的网关地址已经给出,这些网关地址的网络地址部分(一个、两个或三个字节)被省略,以便节省空间 。
每一个数据块包含一个字节用来计算可以将这个网关可以作为合适初站的网络的数目 。在这个网络表中,每一个网络地址是一个、二个、或三个字节,这取决于它是一个A类、B类地址或者是C类地址 。其后跟随的字节没有使用 。
有时必须将NR报文进行分段 。NR包含有一个字节用来指出片段的数目(片断从零开始编码),还有一个字节与用来包含最后一个片断的编码(并非片段的数量) 。假如没有使用分段,这些字节必须全部为0 。每一个片段必须是一个完整的独立的NR报文 。也就是说,每一个片段从内部网关和外部网关开始计算,将是据块的整数倍 。每一个片段中的数据块的数目,必须与从那个碎片开始计算的数目对应 。然而,只有第一个片段使用一个描述这个发送网关的数据块作为开始 。
这个方案使得每一个片段能够独立地处理,并且不需要复杂的装配机制 。它还能够处理所有片断都还没有收到的报文 。假如说经过一段时间之后或者重传轮询一定数量后还没有收到所有片断,就应当处理现有的分段假如他们能够组成完整的NR报文 。(这意味着仅在差错分段中提及的网络将保持贮存在前一来自那个网关的NR报文中的"距离"值 。然而假如这个网络在下一个来自那个网关的NR报文中没有受到一个新的值,该网络就会被声明为不可达 。)
5NR报文轮询NR报文轮询
没有网关会要求发送NR报文给以任何其他网管,除非作为一个响应来自一个直接邻机的NR轮询 。然而,一个网关被要求在几秒内响应来自直接邻机的NR轮询(根据下面两个段落所描述的),即使这个网关确信那个邻机已经停机 。
EGPNR轮询报文为了这个目的而定义对于一个NR报文网关不会用高于每分钟一次的频率进行轮询 。假如网关在一分钟内收到多个轮询,它简单地丢弃额外的轮询,也许会返回一个错误报文 。网关G发送给网关G"的“Hello”和IHeardYou报文指出G从G"接受轮询间隔的最小时间间隔 。也就是说,G"不能保证响应来自G小于那个间隔的轮询 。
轮询必须发送给邻机可达性协议声明为可达的直接邻机 。?

推荐阅读