一、网络层协议原理
1.1 转发与路由
网络层的作用从表面上看极为简单,即将分组从一台发送主机移动到一台接收主机。为此,需要使用两种重要的网络层功能,即转发与路由。转发指的是当一个分组到达某路由器时的一条输入链路时,该路由器必须将该分组移动到适当的输出链路,通常用硬件实现;路由指的是分组从发送方流向接收方时,分组路径的决定策略,通常由软件实现。网络层传输的分组称为数据报【Data gram】。
1.2 网络层服务模型
网络层服务模型可以分为无连接服务与连接服务。无连接服务不事先为系列分组的传输确定传输路径,由路由算法决定;而连接服务为系列分组的传输确定从源到目的经过的路径,并在传输结束后拆除连接。
因特网的网络层提供了单一的服务,称为尽力而为的服务,不保证顺序、时延等。
二、IP
2.1 IPv4数据报格式
当今因特网网络层的关键协议是网际互连协议【Internet Protocol,IP】,其中广泛部署的是IP版本4【IP version 4,IPv4】。其数据报格式如下
其中:
-版本号字段占4位,用IP协议的版本填充,如IPv4为0100,IPv6为0110;
-首部长度字段描述了IP分组首部的长度,以4Byte为单位;
-服务类型(TOS)字段占8位,指示期望获得的服务类型,一般情况下不使用,置为00H;
-总长度字段描述了IP分组的总字节数,使用16位,故最大的IP分组为65535Byte,而最小分组要使用20Byte,故IP分组可以封装的最大数据为65515Byte;
-标识、标志位、片偏移与IP数据报分片有关;
-生存时间【Time-to-Live,TTL】字段指示了IP分组可以在网络中通过的跳步数,即路由器数。每当路由器转发一次分组,TTL减少1,直至TTL为0,路由器将丢弃该IP分组;
-协议字段占8位,指示了IP分组封装的数据使用的协议,其中,TCP为6,UDP为17;
-首部校验和字段实现IP分组首部的差错校验,在计算校验和时该字段置0;
-源IP地址与目的IP地址各占32位,分别表示了发送分组与接收分组的主机的IP地址。
2.2 IPv4数据报分片
网络的链路存在数据帧可封装数据的上限,称为最大传输单元【Maximum Transmission Unit,MTU】。当大的IP分组向较小的MTU链路转发时,需要进行分片,将一个IP分组分为多个,并在到达主机后进行重组。
IP首部的总长度、标识、标志位和片偏移用于确定分片的相对顺序:
-标识字段占16位,用于表示一个IP分组,IP协议利用一个计数器,每产生IP分组就使计数器加1,作为该IP分组的标识;
-标志位字段占3位,包括保留位、DF、MF,DF标志着禁止分片,MF标志着该数据报片不是最后一片;
-片偏移字段占13位,描述了IP分组分片封装原IP分组数据的相对偏移量,以8byte为单位。
接下来考虑一个IP分组的总长度为
L
L
L,待转发链路的MTU为
M
M
M,当
L
>
M
L > M
L>M且IP分组的DF标志位置0时,标识可以且需要分片。分片遵循如下原则:
-分片生成的所有分片的标识都复制原IP分组的标识;
-除了最后一个分片,其他分片均分为MTU允许的最大分片;
-最大分片可封装的数据应该是8的倍数。
那么,一个最大分片可封装的数据为
d
=
⌊
M
−
20
8
⌋
×
8
d = \lfloor \frac{M - 20}{8} \rfloor × 8
d=⌊8M−20⌋×8需要的总片数为
n
=
⌈
L
−
20
d
⌉
n = \lceil \frac{L - 20}{d} \rceil
n=⌈dL−20⌉第i片的片偏移字段取值为
F
i
=
d
/
8
×
(
i
−
1
)
F_i = d/8 × (i - 1)
Fi=d/8×(i−1)每片的总长度字段为
L
i
=
{
d
+
20
,
1
≤
i
<
n
L
−
(
n
−
1
)
d
,
i
=
n
L_i = \left\{\begin{aligned} &d + 20, &&1 \le i < n \\ &L - (n-1)d, &&i = n \\\end{aligned}\right.
Li={d+20,L−(n−1)d,1≤i<ni=n每片的MF标志位为
M
F
i
=
{
1
,
1
≤
i
<
n
0
,
i
=
n
MF_i = \left\{\begin{aligned} &1, &&1 \le i < n \\ &0, &&i = n \\\end{aligned}\right.
MFi={1,0,1≤i<ni=n
2.3 IPv4编址
通常情况下,一台主机只有一条链路连接到网络。当主机发送数据报时,就在该链路上发送,而主机与物理链路之间的边界称为接口【Interface】。路由器有多个接口,而主机可能有一或多个接口。
IPv4通过32比特的标号标识主机与路由器的接口,称为IP地址。
IP地址可以划分为高位的网络号与低位的主机号。IP地址具有相同网络号的设备接口称为IP子网,一般的IP子网不跨越路由器,同一IP子网下的设备彼此物理联通。
IP地址根据网络号与主机号的划分分为如下有类IP地址:
-网络号8位,主机号24位,网络号的高位为0,对应的IP地址为0.0.0.0-127.255.255.255,称为A类地址;
-网络号16位,主机号16位,网络号的高位为10,对应的IP地址为128.0.0.0-191.255.255.255,称为B类地址;
-网络号64位,主机号8位,网络号高位为110,对应的IP地址为192.0.0.0-223.255.255.255,称为C类地址;
-不划分子网,IP地址高位为1110,对应的IP地址为224.0.0.0-239.255.255.255,称为D类地址;
-不划分子网,IP地址高位为1111,对应的IP地址为240.0.0.0-255.255.255.255,称为E类地址。
此外,还有如下特殊的IP地址:
-网络号为0,主机号为0,仅可以作为源地址,在未被分配IP地址时子网范围内表示本机;
-网络号为0,主机号为特定值,仅可以作为目的地址,在不使用网络号的情况下指定子网内的某个特定主机;
-网络号位全为1,主机号位全为1,仅可以作为目的地址,用于在本网内广播;
-网络号为特定值,主机号为0,不可以作为任何地址,用于标识某个特定的子网;
-网络号为特定值,主机号位全为1,仅可以作为目的地址,用于在某个特定的子网内广播;
-网络号为127,主机号为位不全为0或1的值,可以作为源与目的地址,用于本地软件的环回测试。
此外,还有如下用于内网的私有IP地址:
-A类地址的网络号为10;
-B类地址的网络号为176.16-172.31;
-C类地址的网络号为192.168.0-192.168.255;
当需要划分一个更小范围的IP子网时,可以将原IP地址主机号的部分比特作为子网号。而为了区分网络号、子网号与主机号,使用子网掩码确定划分方式。子网掩码在网络号与子网号的位取1,而主机号的位取0,例如A类地址的子网掩码为255.0.0.0。
由于子网掩码的取值方法,将IP地址与子网掩码按位与运算,即可得到子网地址。
2.4 路由聚合
无类域间路由【Classless Inter-Domain Routing,CIDR】不使用有类地址,通过融合子网地址与子网掩码,完成子网划分,其显式的划分了IP地址,直接将网络号与子网号的位数标注在IP地址之后,例如
201.2.3.64
,
255.255.255.192
=
201.2.3.64
/
26
201.2.3.64, 255.255.255.192 = 201.2.3.64/26
201.2.3.64,255.255.255.192=201.2.3.64/26表示改地址的前26位为子网号,即200.23.16.0。
CIDR一方面提高了IPv4地址空间的分配效率,另一方面可以将多个子网聚合为一个较大的子网,提高路由的效率,称为路由聚合。
在路由聚合的情况下,IP地址组织成了层次结构;当路由聚合的子网发生中断时,单独IP与子网IP均发布路由信息,采用最长前缀匹配优先的准则,从而可以正确的选择IP。考虑聚合子网1的聚合地址为
S
n
1
=
{
200.23.16.0
/
23
,
200.23.20.0
/
23
,
200.23.22.0
/
23
,
.
.
.
,
200.23.30.0
/
23
}
Sn_1 = \{200.23.16.0/23, 200.23.20.0/23, 200.23.22.0/23, ..., 200.23.30.0/23\}
Sn1={200.23.16.0/23,200.23.20.0/23,200.23.22.0/23,...,200.23.30.0/23}而聚合子网2的聚合地址为
S
n
2
=
{
200.23.18.0
/
23
}
Sn_2 = \{200.23.18.0/23\}
Sn2={200.23.18.0/23}其中,聚合子网1会将其集合内的子网描述为
S
n
1
=
200.23.16.0
/
20
Sn_1 = 200.23.16.0/20
Sn1=200.23.16.0/20,而
S
n
2
=
200.23.18.0
Sn_2 = 200.23.18.0
Sn2=200.23.18.0,其位信息有
S
n
1
=
11001000.00010111.00010000.00000000
S
n
2
=
11001000.00010111.00010010.00000000
Sn_1 = 11001000.00010111.00010000.00000000 \\ Sn_2 = 11001000.00010111.00010010.00000000
Sn1=11001000.00010111.00010000.00000000Sn2=11001000.00010111.00010010.00000000当目的地址为200.23.18.0/23的分组路由时,尽管两个聚合子网的前缀都符合,但是相比于聚合子网1,聚合子网2有着更长的与IP分组目的地址匹配的前缀,故将该分组发往聚合子网2。
2.5 DHCP
主机获得IP地址的方式包括静态配置与动态配置。静态配置即硬编码,人为的指定IP地址;而动态配置使用动态主机配置协议【Dynamic Host Configuration Protocal,DHCP】,从服务器动态的获取IP地址、子网掩码、默认网关、DNS服务器的名称及其IP地址。DHCP允许了地址的重用,并支持地址续租与移动用户的接入。
DHCP协议的步骤如下:
-主机在子网内广播DHCP发现报文,其字段为src0.0.0.0,dst255.255.255.255,yiaddr0.0.0.0;
-DHCP服务器利用DHCP提供报文进行响应,其字段为src服务器源地址,dst255.255.255.255,yiaddr动态地址;
-主机向与其响应的DHCP服务器请求IP地址,发送DHCP请求报文,其字段为src0.0.0.0,dst255.255.255.255,yiaddr动态地址;
-DHCP服务器为其分配IP地址,回复DHCP确认报文,其字段为src服务器地址,dst255.255.255.255,yiaddr动态地址,以及子网掩码、默认网关以及DNS服务器地址。
DHCP协议在应用层实现,其将报文封装到UDP数据报中,通过IP进行链路层广播。
2.6 NAT
内网地址为私有网址,其不允许进入互联网。网络地址转换【Network Address Translation,NAT】协议将所有的源IP替换为相同的NAT IP地址,为NAT路由器输出端口的IP地址,并为不同的主机分配不同的端口号。NAT使得本地网络设备对互联网不可见。
NAT协议的步骤如下:
-使用NAT IP地址替换每个进入互联网的IP数据报的源IP地址与源端口号;
-将NAT IP地址与IP地址及端口号的替换信息储存到NAT转换表中;
-根据NAT转换表,将进入内网的IP数据报的NAT IP地址替换回原源IP地址与源端口号。
考虑这样的场景,客户期望连接内网地址为10.0.0.1的服务器,但是由于内网对互联网不可见,客户不能直接访问该服务器。该问题称为NAT穿透问题,可以静态配置NAT,使得某个特定的访问直接转发给特定的服务器;或利用互联网网关设备协议自动配置,学习特定的访问;或使用中继,令内网的服务器及客户同时与互联网的中继服务器建立连接。
2.7 ICMP
互联网控制报文协议【Internet Control Message Protocol,ICMP】支持主机与路由器进行差错报告与网络探询。在发生某种错误时,主机或路由器就会生成并发送一个ICMP报文以指示该错误。
ICMP报文通常认为是IP的一部分,但是从体系结构上讲其似乎位于IP之上,因为ICMP报文承载在IP分组中,作为IP的有效载荷。其报文格式为
其数据字段由IP首部与差错IP报文的载荷的前8byte组成。其类型、编码与具体描述为
并且有如下情况不发送ICMP差错报告:
-ICMP差错报告报文发生差错;
-除了第1个IP数据报分片发送错误报告后的剩余片差错;
-多播IP数据报差错;
-特殊地址的IP数据报差错;
2.8 IPv6
由于新的子网和IP节点以惊人的增长率连接到互联网上,32位的IP地址空间即将用尽,并且IPv4有待加强,使得IP版本6【IP version 6,IPv6】被开发出来。
IPv6的数据报格式为
其中,IPv6的最大有效载荷为64K,下一首部字段标识了有效载荷中使用的传输层协议。
IPv6的地址形式将32位用分号分割为8段每4位一段的地址,并且可以与IPv4转换,例如13.1.68.3的IPv6地址为0:0:0:0:0:FFFF:13.1.68.3。IPv6不再使用子网掩码,而是用CIDR,并且在ULR中使用使用中括号标识IPv6地址。
IPv4到IPv6的迁移使用隧道,在IPv6路由器之间使用IPv6数据报,而在IPv4路由器之间将IPv6的数据报作为IPv4数据报的载荷。
三、路由算法
路由算法的关键问题是最小代价路径,分为静态路由,由人工配置;与动态路由,由算法动态决定,并及时响应链路的代价与拓扑变化。
3.1 链路状态路由算法
链路状态路由算法基于贪心算法的迪科斯彻【Dijkstra】算法,要求所有结点掌握网络拓扑与链路费用。考虑将网络抽象为带权有向图
G
=
(
V
,
E
)
G = (V, E)
G=(V,E),以
v
1
v_1
v1为原点,使用数组
D
D
D记录
v
1
v_1
v1到
v
i
v_i
vi的最短路径长度,
P
P
P记录
v
1
v_1
v1到
v
i
v_i
vi的最短路径上经过的顶点,
C
C
C记录顶点之间的权,其算法步骤形如
1.将
V
V
V分为最短路径已经确定的顶点集合
S
S
S与未确定的顶点集合
V
−
S
V - S
V−S,并初始化
S
=
v
0
S = {v_0}
S=v0,
P
[
i
]
=
1
P[i] = 1
P[i]=1,
D
[
i
]
=
C
[
1
]
[
j
]
D[i] = C[1][j]
D[i]=C[1][j];
2.在
V
−
S
V - S
V−S选取顶点
w
w
w,使得
w
w
w与
v
0
v_0
v0的距离最小,即
D
[
w
]
=
m
i
n
{
D
[
i
]
∣
i
∈
V
−
S
}
D[w] = min\{D[i]|i \in V-S\}
D[w]=min{D[i]∣i∈V−S}从而,
v
0
v_0
v0到达
w
w
w仅通过
S
S
S的点,且是一条最短路径,并将
w
w
w加入
S
S
S;
3.更新
D
[
v
]
,
v
∈
V
−
S
D[v], v \in V - S
D[v],v∈V−S,有
D
[
v
]
=
m
i
n
{
D
[
v
]
,
D
[
w
]
+
C
[
w
]
[
v
]
}
D[v] = min\{D[v], D[w] + C[w][v]\}
D[v]=min{D[v],D[w]+C[w][v]}且
P
[
v
]
=
w
P[v] = w
P[v]=w;
4.迭代2-3,直到
S
=
V
S = V
S=V,
D
D
D便记录了最短路径长度,
P
P
P记录了最短路径。
由于链路是实时变化的,链路状态路由算法可能存在震荡。
3.2 距离向量路由算法
距离向量路由算法基于动态规划,如果令
D
[
x
]
[
y
]
D[x][y]
D[x][y]是结点
x
x
x到
y
y
y的最短路径,那么有动态规划方程
D
[
x
]
[
y
]
=
m
i
n
v
{
C
[
x
]
[
i
]
+
D
[
i
]
[
y
]
}
D[x][y] = min_v \{ C[x][i] + D[i][y] \}
D[x][y]=minv{C[x][i]+D[i][y]}称为结点
x
x
x的距离向量【Distance vector,DV】。
对于结点
x
x
x,其已知到达所有邻近点的代价
c
(
x
,
v
)
c(x, v)
c(x,v),同时维护所有邻近点的DV。那么,距离向量路由算法的核心思想为每个结点不定时的将自己的DV发送给邻近点,当结点受到新的DV时根据动态规划方程更新自己的DV,那么最终所有节点的DV将收敛于实际的最小代价。
距离向量路由算法是异步迭代算法,在局部链路代价改变或有来自邻近点的DV更新时,才发起自己的DV更新,并在DV发生改变时告知邻近点。其算法步骤形如
1.初始化DV估计值,告知邻近点;
2.进入等待状态,直到本地局部链路更新或者有来自邻近点的DV更新;
3.重新计算DV估计值,并在有变化时告知邻近点;
4.迭代2~3。
考虑网络有三个节点
x
x
x,
y
y
y,
z
z
z,其中
c
(
x
,
y
)
=
4
c(x, y) = 4
c(x,y)=4,
c
(
x
,
z
)
=
50
c(x, z) = 50
c(x,z)=50,
c
(
y
,
z
)
=
1
c(y, z) = 1
c(y,z)=1,那么在收敛时,结点分别维护了
D
[
x
]
[
y
]
=
4
D
[
x
]
[
z
]
=
5
D
[
y
]
[
z
]
=
1
D[x][y] = 4\\ D[x][z] = 5\\ D[y][z] = 1
D[x][y]=4D[x][z]=5D[y][z]=1当局部链路发生变化时,取
c
(
x
,
y
)
=
1
c(x, y) = 1
c(x,y)=1,考虑
y
y
y结点与
z
z
z结点的相互告知,那么会发生如下情况:
-结点
y
y
y检测到局部链路变化,通过动态规划方程更新
D
V
[
y
]
[
x
]
=
m
i
n
{
c
(
y
,
x
)
,
c
(
y
,
z
)
+
D
[
z
]
[
x
]
}
=
1
D
V
[
y
]
[
z
]
=
m
i
n
{
c
(
y
,
z
)
,
c
(
y
,
x
)
+
D
[
x
]
[
z
]
}
=
1
DV[y][x] = min\{ c(y, x), c(y, z) + D[z][x]\} = 1\\ DV[y][z] = min\{ c(y, z), c(y, x) + D[x][z]\} = 1
DV[y][x]=min{c(y,x),c(y,z)+D[z][x]}=1DV[y][z]=min{c(y,z),c(y,x)+D[x][z]}=1由于DV发生改变,告知邻近点;
-结点
z
z
z收到告知并更新
D
V
[
z
]
[
x
]
=
m
i
n
{
c
(
z
,
x
)
,
c
(
z
,
y
)
+
D
[
y
]
[
x
]
}
=
2
D
V
[
z
]
[
y
]
=
m
i
n
{
c
(
z
,
y
)
,
c
(
z
,
x
)
+
D
[
x
]
[
y
]
}
=
1
DV[z][x] = min\{ c(z, x), c(z, y) + D[y][x]\} = 2\\ DV[z][y] = min\{ c(z, y), c(z, x) + D[x][y]\} = 1
DV[z][x]=min{c(z,x),c(z,y)+D[y][x]}=2DV[z][y]=min{c(z,y),c(z,x)+D[x][y]}=1由于DV发生改变,告知邻近点;
-结点
y
y
y收到告知并更新DV,未发生改变,从而告知邻近点。
再考虑
c
(
x
,
y
)
=
60
c(x, y) = 60
c(x,y)=60,考虑
y
y
y结点与
z
z
z结点的相互告知,那么会发生如下情况:
-结点
y
y
y检测到局部链路变化,通过动态规划方程更新
D
V
[
y
]
[
x
]
=
m
i
n
{
c
(
y
,
x
)
,
c
(
y
,
z
)
+
D
[
z
]
[
x
]
}
=
6
DV[y][x] = min\{ c(y, x), c(y, z) + D[z][x]\} = 6
DV[y][x]=min{c(y,x),c(y,z)+D[z][x]}=6由于DV发生改变,告知邻近点;
-结点
z
z
z收到告知并更新
D
V
[
z
]
[
x
]
=
m
i
n
{
c
(
z
,
x
)
,
c
(
z
,
y
)
+
D
[
y
]
[
x
]
}
=
7
DV[z][x] = min\{ c(z, x), c(z, y) + D[y][x]\} = 7
DV[z][x]=min{c(z,x),c(z,y)+D[y][x]}=7由于DV发生改变,告知邻近点;
-结点
y
y
y检测到局部链路变化,通过动态规划方程更新
D
V
[
y
]
[
x
]
=
m
i
n
{
c
(
y
,
x
)
,
c
(
y
,
z
)
+
D
[
z
]
[
x
]
}
=
8
DV[y][x] = min\{ c(y, x), c(y, z) + D[z][x]\} = 8
DV[y][x]=min{c(y,x),c(y,z)+D[z][x]}=8由于DV发生改变,告知邻近点;
-结点
z
z
z收到告知并更新
D
V
[
z
]
[
x
]
=
m
i
n
{
c
(
z
,
x
)
,
c
(
z
,
y
)
+
D
[
y
]
[
x
]
}
=
9
DV[z][x] = min\{ c(z, x), c(z, y) + D[y][x]\} = 9
DV[z][x]=min{c(z,x),c(z,y)+D[y][x]}=9由于DV发生改变,告知邻近点;
-…
可以看出,当代价变优时,DV迅速做出改变;但当代价变差时,DV的迭代缓慢,称为无穷计数问题。其可以使用毒性逆转技术,即令通告者的DV中,其与被通告者的最小代价置为无穷大;或限制最大跳步,在达到跳步最大值后,表明通告双方之间的路径发生了无穷计数问题,而直接置为无穷大。
四、路由协议
将任意规模网络抽象为图计算路由过于理想化,在大量的路由计算信息交换的过程中,可能会淹没链路。
4.1 自治系统
聚合路由器为一个区域,称为自治系统【Autonomous systems,AS】,在同一个AS内,路由器运行相同的路由协议算法。AS通过存在于边缘的网关路由器通过链路连接其他AS的网关路由器。
考虑三个自洽系统
A
S
1
AS_1
AS1,
A
S
2
AS_2
AS2,
A
S
3
AS_3
AS3,那么
A
S
1
AS_1
AS1的内某路由器收到了一个地址不在
A
S
1
AS_1
AS1内的数据报,
A
S
1
AS_1
AS1必须学习到可以通过
A
S
2
AS_2
AS2到达的地址与通过
A
S
3
AS_3
AS3到达的地址,并将网络可达信息传播给
A
S
1
AS_1
AS1的内部路由器;
A
S
1
AS_1
AS1内的路由器则根据路由算法确定到达特定网关路由器的最佳路径。
当AS内的分组可以通过多个路径到达外部AS的目的时,使用热土豆路由将分组发送给最近的网关路由器。
因特网采用了层次路由的架构,其内部使用的路由协议称为内部网关协议【Interior gateway protocols,IGP】。
4.2 RIP
路由信息协议【Routing Information Protocol,RIP】是一种IGP,其使用距离向量路由算法,并规定
-最大跳步为15,每一链路为一个跳步,同时携带下一节点信息,从而实现毒性逆转;
-每隔30s,邻接点之间交换一次DV,称为通告,当180秒未收到通告时认为邻接点或链路失效,重新计算路由并通告给邻接点;
-每次通告最多有25个目的子网。
RIP的路由表由应用层进程进行管理,通告报文使用UDP数据报发送。
4.3 OSPF
开放式最短路径优先协议【Open Shortest Path First】是一种IGP,其使用链路状态算法,其报文直接封装在IP数据报中,并向整个AS泛洪。
相比于RIP,OSPF安全性更高,并且允许使用多条费用相同的路径,针对不同的TOS链路设置度量,并集成单播与多播。
OSPF支持对大规模的AS继续分层,将AS分为主干区与局部区,使用既属于主干又属于局部的区边界路由器连接,主干区的路由器称为主干路由器,而主干区与外部AS通过AS边界路由器相连。
4.4 BGP
边界网关协议【Border Gateway Protocol,BGP】是一种AS间的路由协议,其是将因特网整合为整体的关键,其允许子网向因特网的其余部分通过其存在,分为eBGP用于在邻接AS获取子网可达信息;iBGP在AS内部广播子网可达信息。
两个BGP路由器之间交换BGP报文称为BGP会话,其基于半永久的TCP连接。BGP报文包括:
-OPEN,建立TCP连接并认证发送方;
-UPDATE,通告新路径或撤销原路径;
-KEEPALIVE,在无更新时保持连接或确认认证请求;
-NOTIFICATION,报告先前报文的差错,或关闭连接。
其通告了去往不同前缀的路径。当
A
S
1
AS_1
AS1的网关路由器向
A
S
2
AS_2
AS2的路由器发送包含某个前缀的BGP报文时,就意味着
A
S
1
AS_1
AS1可以为
A
S
2
AS_2
AS2转发数据包到该前缀的子网,并且
A
S
1
AS_1
AS1会在通告中聚合网络前缀;同时,
A
S
2
AS_2
AS2的网关路由器会通过iBGP向
A
S
2
AS_2
AS2的所有路由器分发新的前缀可达性信息。
BGP的路由信息包括前缀与属性,其中属性包括
-AS-PATH,包含了通告中所经过的AS序列;
-NEXT-HOP,指向下一跳的AS地址。
BGP是一种基于策略的路由,其会通过决策来决定是否接收该路由通告,例如对于某期望收益的结点收到了无收益的路由通告,该节点可以拒绝该通告而不提供无收益的抓发。