网络 网络层(Network)

最主要:网际协议 IP(Internet Protocol)

IP使用的:地址解释协议 ARP(Address Resolution Protocol),逆地址解释协议 RARP(Reverse Address Resolution Protocol)

使用IP的:网际控制报文协议 ICMP(Internet Control Message Protocol),网际组管理协议 IGMP(Internet Group Management Protocol)


IP:

IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体。所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输。

IP提供不可靠的,无连接的数据传送服务。不可靠指它不能保证IP数据报能成功到达目的地。IP仅提供Best Effort的传输服务。

当发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信源。任何要求的可靠性必须由上层来提供。无连接指IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B)每个数据报都是独立的进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。 


中间设备:

网络层:Router

网络层以上(传输层、应用层):网关gateway


IP编址方法:

(1)分类ABC:

1. A类IP地址:一个A类IP地址由1字节的网络地址(首位必须为0,剩7个bit)和3字节主机地址组成。

0和127为特殊地址(意为本网络和本地软件环回测试地址),因此可用的网络数为128-2=126个。

每个网络能容纳2^24-2个主机,减2是因为全0和全1分别为所在网络地址和所有主机地址。

2. B类IP地址:一个B类IP地址由2个字节的网络地址(首位必须为10,剩14个bit)和2个字节的主机地址组成。

可用的B类网络有2^14-1个,因为128.0不指派,从128.1开始到191.255为止。每个网络能容纳2^16-2个主机,减2原因同A类地址。

3. C类IP地址:一个C类IP地址由3字节的网络地址(首位必须为110,剩21个bit)和1字节的主机地址组成。

同样191.0.0不指派,从191.0.1开始。每个网络能容纳2^8-2即254个主机。

4. D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始。

它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。

多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

5. E类IP地址 以“llll0”开始,为将来使用保留。 


特殊IP地址:



ICMP协议:

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。


ICMP差错报告报文共有5种:

终点不可达:分为网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为0至5。当出现以上六种情况时就向源站发送终点不可达报文。

端口不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。

源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。

时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。

参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。

改变路由(重定向)路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。

以下几种情况都不会导致产生ICMP差错报文ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文):目的地址是广播地址或多播地址的IP数据报作为链路层广播的数据报不是IP分片的第一片源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。


ping与ICMP协议:

ping 的原理    ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。


ARP协议(地址解释Address Resolution):

IP->mac地址(物理地址,48位)

1.     原理:(ARP协议只使用于局域网中)

1>   在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。

2>   在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

3>   ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

4>   点对点的连接是不需要ARP协议的

2.    工作过程:1>   当主机A向本局域网上的某个主机B发送IP数据报时,就先在自己的ARP缓冲表中查看有无主机B的IP地址。

2>   如果有,就可以查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过以太网将数据包发送到目的主机中。

3>   如果查不到主机B的IP地址的表项。可能是主机B才入网,也可能是主机A刚刚加电。其高速缓冲表还是空的。在这中情况下,主机A就自动运行ARP。

(1)ARP进程在本局域网上广播一个ARP请求分组。ARP请求分组的主要内容是表明:我的IP地址是192.168.0.2,我的硬件地址是00-00-C0-15-AD-18.我想知道IP地址为192.168.0.4的主机的硬件地址。

(2)在本局域网上的所有主机上运行的ARP进行都收到此ARP请求分组。

(3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余的所有主机都不理睬这个ARP请求分组。ARP响应分组的主要内容是表明:“我的IP地址是192.168.0.4,我的硬件地址是08-00-2B-00-EE-AA”,请注意:虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。

(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓冲表中写入主机B的IP地址到硬件地址的映射。


IP协议报文:


版本:占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)

首部长度:占4位,可表示的最大数值是15个单位(一个单位为 4 字节)因此IP 的首部长度的最大值是 60 字节

区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.1998 年这个字段改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用这个字段

总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 

MTU标识:占16位,它是一个计数器,用来产生数据报的标识,用来组装分片(属于同一个报文的标识一样)

标志(flag):占3位,目前只有前两位有意义:标志字段的最低位是 MF (More Fragment)MF=1 表示后面“还有分片”。MF=0 表示最后一个分片,标志字段中间的一位是 DF (Don't Fragment)只有当 DF=0 时才允许分片

片偏移:占12位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位

生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

协议:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

首部检验和:占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法:

1.把校验和字段清零。  

2.然后对每16位(2字节)进行二进制求和。

3.执行2后如果结果大于16位,则把高16位和低16位相加,如果结果还大于16位,则再次把高16位和低16位相加。然后最终结果取反就得到了首部检验和。

源地址和目的地址:都各占 4 字节,分别记录源地址和目的地址


IP分组转发(Routing):

(1)首先从IP数据报首部提取出目的主机的IP地址D,得出其所在的网络N。

(2)若N就是与此路由器直接相连的某个网络,则进行直接交付,不需要经过其它的路由器进行转发,直接把数据报交付给目的主机。否则就执行(3)

(3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)

(4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)

(5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。否则执行(6)

(6)报告转发分组出错。


划分子网:

在ABC类的基础上划分:

1)缺省子网掩码: 即未划分子网,对应的网络号的位都置1,主机号都置0。 

A类网络缺省子网掩码:255.0.0.0  或 /8(表示前八位是1,其余为0)

B类网络缺省子网掩码:255.255.0.0 或 /16

C类网络缺省子网掩码:255.255.255.0 或 /24

2)自定义子网掩码: 将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。 形式如下:

未做子网划分的ip地址:网络号+主机号 做子网

划分后的ip地址:网络号+子网号+子网主机号

也就是说ip地址在化分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。 

根据子网掩码从IP地址得到子网过程如下:

1.将ip地址与子网掩码转换成二进制;

2.将二进制形式的ip地址与子网掩码做'与'运算,将答案化为十进制便得到网络地址;


路由汇聚:

设有下面4条路由:172.18.129.0/24、172.18.130.0/24、172.18.132.0/24和172.18.133.0/24,如果进行路由汇聚,能覆盖这4条路由的地址是:

转成二进制可知4个地址的前21位皆相同(都是10101100.00010010.10000),所以可以转为10101100.00010010.10000.0即172.18.128.0/21


划分子网后的分组转发过程:

(1)从分组的首部提取目的IP地址D 

(2)先用与该路由器直接相连的网络的子网掩码与D进行与运算,看结果是否与相应的网络地址相匹配。若匹配,则进行直接交付。否则就是间接交付,马上执行(3)

(3)若路由表中有一条到目的主机D的特定路由,则将分组转发给其指明的下一跳路由器。否则执行(4)

(4)对路由表中每一行的子网掩码和D进行与运算,若结果与该行的目的网络地址匹配,则将分组传给该行指明的下一跳路由器。否则执行(5)

(5)若路由表中有一个默认路由,则将分组传给路由表中指明的默认路由器。否则执行(6)

(6)报告转发分组出错。



路由选择协议:


一、理想的路由算法:设计一个路由算法,如果要达到理想的作用,应该具备以下几个特点:

1. 正确性:这是最基本的,即通过路由表中的记录保证数据分组一定可以最终到达目的主机;

2. 简单:路由算法的计算不应使网络增加太大的开销;

3. 自适应性:路由算法应当能够适应网络通信量和网络拓扑的变化,即具有稳健性;

4. 稳定性:即在网络通信量和网络拓扑相对稳定的前提下,算法应当收敛于一个可接受的解;

5. 公平性,所有用户平等;

6. 最佳的;


二、分层次的路由选择协议

现实中的路由协议建立在分层管理实现的基础之上,这主要是基于AS(Autonomous System)的划分

所谓AS,经典定义是在单一的技术管理下的一组路由器,因为现实中出现了内部多种路由协议的AS,因此现在一般认为AS尽管内部有可能使用多种内部路由选择协议和度量,但是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。

之所以选择将网络拓扑的路由分层管理,一个原因是因特网的规模很大,因此如果保存所有目的网络的地址,路由表会是一个相当大的规模;另一个原因则是有些单位基于保密性的需要不希望外界看到自己内部的网络拓扑情况。

出现了AS概念之后,我们可以简单地理解为统一管理的一组路由器,内部可以使用相同或不同的路由选择协议

(1)IGP:一般在AS内部使用的路由选择协议称之为内部网关协议IGP,比如RIP和OSPF;

(2)EGP:在AS间使用的路由选择协议则称之为外部网关协议EGP,比如BGP协议。


三、内部网关协议:RIP

路由信息协议RIP(Routing Information Protocol)是一个分布式的基于距离向量的路由选择协议,其最大优点就是简单。

1. 距离向量:RIP协议中每个路由器都要维护自己到每一个目的网络的距离记录,由于是一组距离,因此称之为距离向量,这将作为路由选择的度量;

一般直连网段定义为1(或0),每通过一个路由器距离+1,这个距离叫跳数(hop count)。

2. RIP协议的三个要点:

Who:与谁交换信息:RIP协议中的信息交换仅发生在相邻的两个路由器之间,不相邻的路由器不交换信息;

What:交换什么信息:路由器交换的信息是当前本路由器知道的全部信息,即自己的路由表【我到本AS中所有网络的最短距离+到每个网路的NextHop】;

When:什么时候交换信息:路由器按规定的时间间隔交换路由信息,比如每隔30秒,然后路由器根据收到的信息更新路由表;当网络拓扑发生变化时,路由器也会及时的告知相邻路由器;

3. RIP协议的路由向量算法:RIP协议基于以下路由算法得出路由表,以路由器A为例:

1)A获取直连网段的路由器发来的RIP报文;

2)收到RIP更新包后,假设来自于相邻路由器B,则对其中的记录进行修改:

a)将所有路由记录项的距离+1;

b)将所有路由记录的下一跳改为B;

3)接下来针对修改过的B的路由表进行以下判断和处理:

a)若原来路由表中没有的目的网络记录,则添加该项路由;

b)若原来路由表中有下一跳为B的记录,直接更新;

c)若收到的项目中的距离小于原先路由表中的距离,则进行更新;

d)否则什么也不做;

4)若三分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达,即把距离记为16(最大15);

4. RIP协议的缺点:RIP实施简单,但是却有自身的不足

1)比如最大跳数为16,只能适用于小规模网路;

2)路由度量仅仅是路由器跳数,比较单一,无法涵盖跳数多、延迟小的高速链路情况;

3)最为重要的一点是当网络出现故障时,要经过较长的时间才能将此信息传送到所有的路由器。即:好消息传得快,而坏消息传得慢。比如当路由器R1到网1的链路出现了故障,R1无法到达网1了,那么R1就将到网1的距离改为了16;在R1向临接的路由器R2发送自己的新路由项前,先收到了R2的路由项【Net1   2   R1】,于是按照规则R1修改后成为了【Net1  3  R2】,并且与16比较后更新了自己的路由表;然后R1再次发送该项给R2,R2接受到以后发现是【Net1   4   R1】,于是直接替换掉了自己的【Net1   2   R1】;然后R2再向R1发送路由表....循环交替,直到Net1的距离成为了16,R2才明白原来无法到达Net1了:


四、内部路由协议:OSPF

OSPF协议的意思是“开放最短路径优先”(Open Shortest Path First),“开放”指的是OSPF协议不受某一家厂商控制,是公开发表的;“最短路径优先”则是指使用了Dijkstra算法的最短路径算法SPF。

链路状态路由协议(也可以说OSPF)工作过程:

1)每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。

2)每台路由器构建包含直接相连的链路状态的LSA(Link-State Advertisement,链路状态通告)。链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。

3)每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作"链路状态数据库(LSDB,Link-State Database)"

4)每台路由器基于本地的"链路状态数据库(LSDB)"执行"最短路径优先(SPF)"算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。

OSPF的简化原理:发Hello报文——建立邻接关系——形成链路状态数据库——SPF算法——形成路由表。

包类型:

1)Hello包:1、用于发现邻居 2、建立邻接关系 3、维持邻接关系 4、确保双向通信 5、选举DR和BDR

DR 指定路由器(Designated Router,简称RD):当OSPF链路被连接到多路访问的网络中时,需要选择一台指定路由器(DR),每台路由器都把拓扑变化发给DR和BDR,然后由DR通知该多路访问网络中的其他路由器。

BDR 备用的指定路由器(Backup Designated Router,简称BDR):当DR发生故障的时候,BDR转变成DR,接替DR工作。

2)DBD(Database Description,数据库状态描述包):DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。

3)LSR(Link-State Request,链路状态请求包):接收端可以发送LSR来请求接收到的DBD中的某些详细信息。

4)LSU(Link-State Update,链路状态更新包):LSU用来更新OSPF路由信息,回复LSR请求。

5)LSAck(Link-State Acknowledgement,链路状态确认)


IP组播(多播,Multicast):


组播的体系结构:

1 组播的工作原理:

组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播源把数据包发送到特定组播组,而只有属于该组播 组的地址才能接收到数据包。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。

单播(Unicast)传输:在发送者和每一接收者之间需要单独的数据信道。如果一台主机同时给很少量的接收 者传输数据,一般没有什么问题。但如果有大量主机希望获得数据包的同一份拷贝时却很难实现。这将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务 质量需增加硬件和带宽。 

组播(Multicast)传输:它提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。 

广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网主机都投递一份数据包,不论这些主机是否乐于接收该数据包。然而广播的使用范围非常小,只在本地子网内有效,因为路由器会封锁广播通信。广播传输增加非接收者的开销。

2 组播地址分配与MAC地址:

在组播通信中,我们需要两种地址:一个IP组播地址和一个Ethernet组播地址。其 中,IP组播地址标识一个组播组。由于所有IP数据包都封装在Ethernet帧中,所以还需要一个组播Ethernet地址。为使组播正常工作,主机应 能同时接收单播和组播数据,这意味着主机需要多个IP和Ethernet地址。 IP地址方案专门为组播划出一个地址范围,在IPv4中为D类地 址,范围是224.0.0.0到239.255.255.255,并将D类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址;在IPv6中为 组播地址提供了许多新的标识功能。

局部链接地址:224.0.0.0~224.0.0.255,用于局域网,路由器不转发属于此范围的IP包; 预留组播地址:224.0.1.0~238.255.255.255,用于全球范围或网络协议; 管理权限地址:239.0.0.0~239.255.255.255,组织内部使用,用于限制组播范围;

以太网与FDDI组播MAC地址映射:IP组播帧都使用以0X0100.5EXX.XXXX的24位前缀开始的MAC层地址,但只有其中的一半MAC地址可以被IP组播使用,剩下的MAC地址空间 的23位作为第三层IP组播地址进入第二层MAC地址的映射使用。由于第三层IP组播的28位地址不能映射到只有23位的可用MAC地址空间,造成有 32:1的地址不明确,所以主机CPU必须对收到的每一个组播数据包做出判断。这增加了主机CPU的开销。此外,还产生抑制第二层局域网交换的组播扩散问题。


组管理协议IGMP:

IGMPv1定义了主机只可以加入组播组,但没有定义离开成员组的信息,路由器基于成员组的超时机制发现离线的组成员。IGMPv1 主要基于查询和响应机制来完成对组播组成员的管理。当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP 成员关系报告报文(Membership Report Message),因此只需要其中一台路由器发送IGMP查询报文(Query Message)就足够了。这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP 查询器。对于IGMPv1 来说,由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP 查询器。

IGMPv2是在版本1 上基础上增加了主机离开成员组的信息,允许迅速向路由协议报告组成员离开情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。另外,若一个子网内有多个组播路由器,那么多个路由器同时发送IGMP查询报文不仅浪费资源,还会引起网络的堵塞。为解决这个问题,IGMPv2不同使用路由选举机制, 能在一个子网内查询多个路由器。

IGMPv3 在兼容和继承IGMPv1 和IGMPv2 的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。


组播转发

逆向路径转发(Reverse Path Forward: RPF) :

当组播数据包到达路由器时,路由器作RPF检查,以决定是否转发或抛弃该数据包,若成功则转发,否则抛弃。 RPF检查过程如下: 

●检查数据包的源地址,以确定该数据包经过的接口,是否在从源到此的路径上; 

●若数据包是从可返回源主机的接口上到达,则RPF检查成功,转发该数据包到输出接口表上的所有接口,否则RPF检查失败,抛弃该数据包。


组播路由协议

要想在一个实际网络中实现组播数据包的转发,必须在各个互连设备上运行可互操作的 组播路由协议。

组播路由协议可分为三类:密集模式协议(如DVMRP,PIM-DM)、稀疏模式协议(如PIM-SM,CBT)和链路状态协议 (MOSPF),下面分别介绍各个协议的工作原理

1 距离向量组播路由协议(Distance Vector Multicast Routing Protocol:DVMRP) DVMRP 由单播路由协议RIP扩展而来,两者都使用距离向量算法得到网络的拓扑信息,不同之处在于RIP根据路由表前向转发数据,而DVMRP则是基于RPF。为了使新加入的组播成员能及时收到组播数据,DVMPR采用定时发送数据包给所有的LAN的方法,然而这种方法导致大量路由控制数据包的扩散,这部分开销限 制了网络规模的扩大。另一方面,DVMRP使用跳数作为计量尺度,其上限为32跳,这对网络规模也是一个限制。目前提出了分层DVMRP,即对组播网络划 分区域,在区域内的组播可以按照任何协议进行,而对于跨区域的组播则由边界路由器在DVMRP协议下进行,这样可大大减少路由开销。

2 开放式组播最短路径优先协议(Multicast Open Shortest Path First:MOSPF) MOSPF是一种基于链路状态的路由协议,是对单播OSPF协议的扩展。 同OSPF类似,MOSPF定义了三种级别的路由: 

●MOSPF区域内组播路由:用于了解各网段中的组播成员,构造(源网络S,组G)对的SPT; 

●MOSPF区域间组播路由:用于汇总区域内成员关系,并在自治系统(AS)主干网(区域0)上发布组成员关系记录通告,实现区域间组播包的转发。 

●MOSPF AS 间组播路由:用于跨AS的组播包转发。 区域内MOFPF利用了链路状态数据库,对单播OSPF数据格式进行扩充,定义了新的链路状态通告(Link State Advertisement:LSA),使得MOSPF路由器了解哪些组播组在哪些网络上。路由器使用Dijkstra算法构造(源网络S,组G)对的 SPT。MOSPF与DVMRP相比,路由开销较小,链路利用率高,然而Dijkstra算法计算量很大,为了减少路由器的计算量,MOSPF执行一种按需计算方案,即只有当路由器收到组播源的第一个组播数据包后,才对(S,G)SPT计算,否则利用转发缓存(cache)中的(S,G)SPT。 MOSPF 继承了OSPF对网络拓扑的变化响应速度快的优点,但拓扑变动使所有路由器的缓存失效重新计算SPT,因而消耗大量路由器CPU资源。这就决定了 MOSPF不适合高动态性网络(组成员关系变化大、链路不稳定),而适用于网络连接状态比较稳定的环境。另外,对于有大量组播源子网络的网络而 言,MOSPF的扩展性问题引起了人们的关注,有待于进一步研究。

3 协议无关组播(Protocol Independent Multicast:PIM) PIM 由IDMR(域间组播路由)工作组设计,顾名思义,PIM不依赖于某一特定单播路由协议,它可利用各种单播路由协议建立的单播路由表完成RPF检查功能, 而不是维护一个分离的组播路由表实现组播转发。由于PIM无需收发组播路由更新,所以与其它组播协议相比,PIM开销降低了许多。PIM的设计出发点是在 Internet范围内同时支持SPT和共享树,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。PIM定义了两种模式:密集模式 (Dense-Mode)和稀疏模式(Sparse-Mode) 

3.1 PIM-DM:PIM-DM与DVMRP很相似,都属于密集模式协议,都采用了“扩散/剪枝”机制。同时,假定带宽不受限制,每个路由器都想接收组播数据包。主要不同之处在于DVMRP使用内建的组播路由协议,而PIM-DM采用RPF动态建立SPT。 该模式适合于下述几种情况:高速网络;组播源和接收者比较靠近,发送者少,接收者多;组播数据流比较大且比较稳定。 

3.2 PIM-SM:PIM-SM与基于“扩散/剪枝”模型的根本差别在于PIM-SM是基于显式加入模型,即接收者向RP发送加入消息,而路由器只在已加入某个组播组输出接口上转发那个组播组的数据包。 PIM- SM采用共享树进行组播数据包转发。每一个组有一个汇合点(Rendezvous Point: RP),组播源沿最短路径向RP发送数据,再由RP 沿最短路径将数据发送到各个接收端。这一点类似于CBT,但PIM-SM不使用核的概念。PIM-SM主要优势之一是它不局限于通过共享树接收组播信息, 还提供从共享树向SPT转换的机制。 尽管从共享树向SPT转换减少了网络延迟以及在RP上可能出现的阻塞,但这种转换耗费了相当的路由器资源,所以它适用于有多对组播数据源和网络组数目较少的环境。  

4 有核树组播路由协议(Core-Based Trees: CBT) CBT 的基本目标是减少网络中路由器组播状态,以提供组播的可扩展性。为此,CBT被设计成稀疏模式(与PIM-SM相似)。CBT使用双向共享树,双向共享树 以某个核心路由器为根,允许组播信息在两个方向流动。这一点与PIM-SM不同(PIM-SM中共享树是单向的,在RP与组播源之间使用SPT将组播数据 转发到RP),所以CBT不能使用RPF检查,而使用IP包头的目标组地址作检查转发缓存。这就要求对CBT共享树的维护就需非常小心,以确保不会产生组 播路由循环。 从路由器创建的组播状态的数量来看, CBT比支持SPT的协议效率高,在具有大量组播源和组的网络中,CBT能把组播状态优化到组的数量级。 CBT为每个组播组建立一个生成树,所有组播源使用同一棵组播树。CBT工作过程大体如下: ●首先选择一个核,即网络中组播组的固定中心,来构造一棵CBT;  ●主机向这个核发送join命令; ●所有中间路由器都接收到该命令,并把接收该命令的接口标记为属于这个组的树; ●如果接收到命令的路由器已是树中一个成员,那么只要再标记一次该接口属于该组;如果路由器第一次收到join命令,那么它就向核的方向进一步转发该命令,路由器就需要为每个组保留一份状态信息; ●当组播数据到达一个在CBT树上的组播路由器时,路由器组播数据到树的核。以保证数据能够发送到组的所有成员。 CBT将组播扩张限制在接收者范围内,即使第一个数据包也无需在全网扩散,但CBT导致核周围的流量集中,网络性能下降。所以某些版本的CBT支持多个核心以平衡负载。 目前CBTv3草案已公布。该方案通过使用CBT边界路由器(BR)更好地处理域间组播的转发。CBTv3还引入新的状态及单向分支CBT概念。尽管CBT很有代表性,但至今却几乎没有已实现的CBT网络。


PIM-SM:

pim-dm工作机制,pim-dm的工作过程可以概括为:

1. 邻居发现,构建spt树(最短路径树shortest path tree),在pim-dm网络中,刚启动的组播路由器需要使用hello消息来发现邻居,并维护邻居关系。

通过各路由器之间周期性地使用hello消息保持联系,从而构建和维护了spt树。

2. 构建spt树    构建spt树的过程也就是扩散/剪枝过程(flooding&prune)。过程如下:

pim-dm假设网络上的所有主机都准备接收组播数据。

当某组播源s开始向组播组g发送数据时,路由器接收到组播报文后,首先根据单播路由表进行rpf检查。

如果检查通过则创建一个(s,g)表项,然后将数据向网络上所有下游pim-dm节点转发,这个过程称为扩散(flooding)。

如果没有通过rpf检查,路由器认为组播报文从错误的接口输入,则将报文丢弃。 

经过这个过程,pim-dm组播域内每个路由器上都会创建(s,g)表项。

如果下游节点没有组播组成员,则向上游节点发prune剪枝消息,通知上游节点不用再转发组播数据到该分支。

上游节点收到prune剪枝消息后,就将相应的接口从其组播转发表项(s,g)对应的输出接口列表中删除,剪枝过程继续直到pim-dm中仅剩下了必要的分支,这就建立了一个以组播源s为根的spt树。

剪枝过程最先由叶子路由器发起,没有接收者的路由器(例如和usera相连的路由器)主动发起剪枝过程。上述过程就称为扩散―剪枝过程。各个被剪枝的节点提供超时机制,当剪枝超时后重新开始扩散―剪枝过程。pim-dm的扩散―剪枝机制周期性进行。

3. 嫁接(graft),当被剪枝的下游节点需要恢复到转发状态时,该节点使用graft嫁接消息通知上游节点。

4. rpf检查: pim-dm采用rpf检查机制,利用现存的单播路由表、组播静态路由表、mbgp路由表来构建一棵从数据源s始发的组播转发树。过程如下:

当一个组播包到达时,路由器首先判断到达路径的正确性。

如果到达接口是单播路由指示的通往组播源s的接口,就认为这个组播包是从正确路径而来。

如果不是,则将组播包作为冗余报文丢弃。

作为路径判断依据之一的单播路由信息可以来源于任何一种单播路由协议,如rip、ospf发现的路由信息,不依赖于特定的单播路由协议。至于组播静态路由,需要手工配置;mbgp路由表由mbgp协议提供。

5. assert机制:在共享网络(如ethernet)中会出现相同报文的重复发送。例如lan网段上包含多台组播路由器a、b、c和d,各自都有到组播源s的接收途径。

当路由器a、b和c都从上游接收到组播源s发出的组播数据报文后,都会向ethernet网络上转发该组播报文,这时下游节点组播路由器d就会收到 三份完全相同的组播报文。为了避免这种情况,就需要通过assert机制来选定一个唯一的转发者。网络中的各路由器通过发送assert报文选出一条最优的路径,如果两条或两条以上路径的优先级和到组播源的开销相同,则ip地址最大的路由器获胜成为该(s,g)项的上游邻居,由它负责该(s,g)组播报文的转发,而其他落选路由器则剪掉对应的接口以禁止转发信息。


PIM-SM:

pim-sm(protocol independent multicast sparse mode)称为协议无关组播-稀疏模式,属于稀疏模式的组播路由协议,主要用于:

组成员分布相对分散,范围较广的大规模网络

稀疏模式默认所有主机都不需要接收组播包,只向明确需要组播包的主机转发。

为了使接收者能够接收到igmp特定组的组播数据流,pim-sm借助汇聚点rp(rendezvous point)向所有拥有接收者的pim-sm路由器转发组播信息。引入rp进行组播转发,减少了数据报文和控制报文占用的网络带宽,降低了路由器的处理开销。

在接收侧,连接信息接收者的路由器向该组播组对应的rp发送组加入消息,加入消息经过一个个路由器后到达根部(即rp汇聚点),所经过的路径就变成了共享树rpt(rendezvous point tree,汇聚点树)的分支。

发送端如果想要往某组播组发送数据,首先由第一跳路由器向rp汇聚点进行注册,注册消息到达rp后触发源树建立。之后组播源把数据发向rp汇聚点,当数据到达了rp汇聚点后,组播数据包被复制并沿着rpt树传给接收者。复制仅仅发生在分发树的分支处,这个过程能自动重复直到数据包最终到达接收者。

pim-sm不依赖于特定的单播路由协议,而是使用现存的单播路由表进行rpf检查。

pim-sm工作机制:

1. 邻居发现

邻居发现机制与pim-dm中的描述相同,也是通过各路由器之间彼此发送hello消息实现的,这里不再介绍。

2. dr选举

借助hello消息还可以为共享网络(如ethernet)选举dr,dr将作为本网络中组播信息的唯一转发者。无论是和组播源s连接的网络,还是和接收者连接的网络,只要网络为共享媒介则需要选举dr,接收者侧dr向rp发送join加入消息;组播源侧dr向rp发送register注册消息。

共享媒介网络上的各路由器相互之间发送hello消息(携带dr优先级选项),拥有最高dr优先级路由器将被选举为本网络中的dr。假如优先级相同,则拥有最大ip地址的路由器被选举为dr。当dr出现故障时,接收hello消息将会超时,邻居路由器之间会触发新的dr选举过程。在pim-dm网络中,dr主要是充当igmpv1的查询器。

3. rp发现

rp是pim-sm域中的核心路由器,路由组播数据创建的共享树是以rp为树根的,从组播组到rp存在一个映射,一个组播组映射到一个rp上,不同的组可以映射到同一rp上。

在小型并且简单的网络中,组播信息量少,全网络仅依靠一个rp进行信息转发即可,此时可以在sm域中各路由器上静态指定rp位置。

但是更多的情况下,pim-sm网络规模都很大,通过rp转发的组播信息量巨大,为了缓解rp的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的rp,此时就需要自举机制来动态选举rp,此时需要配置自举路由器bsr(bootstrap router)。

bsr是pim-sm网络里的管理核心,主要负责:

负责收集网络中candidate-rp(c-rp)发来的advertisement宣告信息。

为每个组播组选择部分c-rp信息以组成rp-set集(即组播组和rp的映射数据库)。

发布到整个pim-sm网络,从而使网络内的所有路由器(包括dr)都会知道rp的位置。

在一个pim域中,需要配置一个或多个候选bsr,候选bsr之间通过自动选举,产生自举路由器bsr,负责收集并发布rp信息。下面简单描述一下候选bsr之间的自动选举:

在将路由器配置为候选bsr时,必须同时指定一个启动了pim-sm的接口。

每个候选bsr开始都认为自己是本pim-sm的bsr,并使用这个接口的ip地址作为bsr地址,发送自举报文(bootstrap message)。

当候选bsr收到其它路由器发来的自举报文时,它将新收到的自举报文的bsr地址与自己的bsr地址进行比较,比较标准包括优先级和ip地址,优先级相同的情况下,较大的ip地址被认为是更好的。如果前者更好,则将这个新的bsr地址替换自己的bsr地址,并且不再认为自己是bsr。否则,保留自己的bsr地址,继续将自己视为bsr。

一个网络(或某管理域)内部只能选举出一个bsr,但可以配置多个candidate-bsr(c-bsr)。这样,一旦bsr发生故障后,其余c-bsr能够通过自动选举产生新的bsr,从而确保业务免受中断。

同样,一个pim-sm域内也可以配置多个c-rp,由bsr机制计算出和每个组播组对应的rp。

4. rpt生成

例如接收者主机为用户b、d和e。当接收者主机加入一个组播组g时,通过igmp报文知会与该主机直接相连的叶子路由器,叶子路由器掌握组播组g的接收者信息,然后朝着rp方向往上一级节点发送加入组播组的join消息。

从叶子路由器到rp之间途经的每个路由器都会在转发表中生成(*,g)表项,这些沿途经过的路由器就形成了rp共享树(rpt)的一个分支。其中(*,g)表示从任意源来的信息去往组播组g。rpt共享树以rp为根,以接收者为叶子。

当从组播源s来的发往组播组g的报文流经rp时,报文就会沿着已经建立好的rpt共享树路径到达叶子路由器,进而到达接收者主机。

当某接收者对组播信息不再感兴趣时,离该接收者最近的组播路由器会逆着rpt树朝rp方向逐跳发送prune剪枝消息。第一个上游路由器接收到该剪枝消息,在接口列表中删除和下游路由器之间的链路,并检查自己是否拥有感兴趣的接收者,如果没有则继续向上游转发该剪枝消息。

5. 组播源注册

为了向rp通知组播源s的存在,当组播源s向组播组g发送了一个组播报文时,与组播源s直接相连的路由器接收到该组播报文后,就将该报文封装成register注册报文,并单播发送给对应的rp。

当rp接收到来自组播源s的注册消息后,一方面解封装注册消息并将组播信息沿着rpt树转发到接收者,另一方面朝组播源s逐跳发送(s,g)加入消息,从而让rp和组播源s之间的所有路由器上都生成了(s,g)表项,这些沿途经过的路由器就形成了spt树的一个分支。spt源树以组播源s为根,以rp为目的地。

组播源s发出的组播信息沿着已经建立好的spt树到达rp,然后由rp将信息沿着rpt共享树进行转发。

6. rpt向spt切换

当离接收者最近的组播路由器发现从rp发往组播组g的组播报文速率超过了阈值时,就向朝着组播源s的上一级路由器发送(s,g)加入消息,join加入消息经过一个个路由器后达到离组播源最近的路由器(即第一跳路由器),沿途经过的所有路由器都拥有了(s,g)表项,从而建立了spt树分支。

随后,最后一跳路由器向rp逐跳发送包含rp位的prune剪枝消息,rp收到消息后会向组播源反向转发prune剪枝消息,从而最终实现组播信息流从rpt树切换到spt树。

切换到spt树后,组播信息将直接从组播源s发送到接收者。通过rpt树到spt树的切换,pim-sm能够以比pim-dm更经济的方式建立spt转发树。

s7500以太网交换机没有设定相关的阈值,当交换机接收到沿rpt转发下来的组播数据时,将会自动进行更新输入接口,并向rp方向发送剪枝信息。


NAT(Network Address Translation,网络地址转换):

NAT是将IP数据报头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。

私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在因特网上全球唯一的IP地址。RFC 1918为私有网络预留出了三个IP地址块,如下:

A类:10.0.0.0~10.255.255.255

B类:172.16.0.0~172.31.255.255

C类:192.168.0.0~192.168.255.255

NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。

静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。

动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。


VPN(Virtual Private Network,虚拟专用网):

VPN使企业能在价格低廉的共享基础设施上以与专用网络提供的相同策略建立一种安全的 WAN (广域网) 业务。

VPN实现与移动工作人员、分公司、合作伙伴、产品供应商、客户间的连接,提高与分公司、客户、供应商和合作伙伴开展业务的能力。

简单地说 ,VPN(Virtual Private Network,虚拟专用网络)即是指在公众网络上所建立的企业网络,并且此企业网络拥有与专用网络相同的安全、管理及功能等特点,它替代了传统的拨号访问,利用 INTERNET 公网资源作为企业专网的延续,节省昂贵的长途费用。

VPN 乃是原有专线式企业专用广域网络的替代方案,VPN 并非改变原有广域网络的一些特性,如多重协议的支持、高可靠性及高扩充度,而是在更为符合成本效益的基础上来达到这些特性。 

VPN——无论在哪种情况下,VPN 都使企业客户可享有与专用网络同样卓越的安全性、优先权、可靠性和易管理性。

VPN 业务的真正优点在于它能够使服务供应商提供一系列捆绑的VPN 解决方案。

VPN即虚拟专用网,是通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。

通常,VPN是对企业内部网的扩展,通过它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。

VPN可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值