当前位置: 首页 > news >正文

计算机网络网络层(下)

一、互联的路由选择协议(网络层控制层面内容)

(一)有关路由选择协议的几个概念

1.理想的路由算法

(1)理想路由算法应具备的特点:算法必须正确和完整的,算法在计算上应简单,算法应能适应通信量和网络拓扑的变化,算法应具有稳定性,算法应是公平的,算法应该是最佳的。

(2)最佳路由:不存在一种绝对的最佳路由算法;所谓“最佳”只能是相对于某一特定要求下得出的较为合理的选择而已。

(3)路由算法非常复杂:需要所有节点共同协调工作;环境不断变化,而这种变化有时无法事先知道;当网络发生拥塞时,很难获得所需的路由选择信息。

(4)路由算法分类:

        静态路由选择策略:非自适应路由选择,不能及时适应网络状态的变化,简单,开销较小。

        动态路由选择策略:自适应路由选择,能较好地适应网络状态的变化,实现较为复杂,开销较大。

        互联网采用的路由选择协议主要是自适应的(动态的)、分布式路由选择协议。

2.分层次的路由选择协议

(1)把整个互联网划分为许多较小的自治系统AS,采用分层次的路由选择协议。 

        原因:互联网规模大,路由表将非常大且处理费时间;单位不愿意外界了解到本单位网络布局细节及及路由选择协议,同时希望连接到互联网。

(2)自治系统:是在单一技术管理下的许多网络、IP地址以及路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。每一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

(3)分为两个层次:自治系统之间的路由选择(域间路由选择),自治系统之内的路由选择(域内路由选择)。

(4)2大类路由选择协议:

        内部网关协议IGP:在自治系统内部使用的路由选择协议,常用:RIP,OSPF。

        外部网关协议EGP:在不同自治系统之间进行路由选择时使用的协议,常用:BGP-4。

(二)内部网关协议RIP

1.协议RIP的工作原理

(1)路由信息协议(Routing Information Protocol)是一种分布式的,基于距离向量的路由选择协议;互联网的标准协;最大优点为简单;要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离记录。

(2)RIP“距离”的定义

        路由器到直接连接的网络的距离=1;

        路由器到非直接连接的网络的距离=所经过的路由器数+1;

        RIP协议中的“距离”也被称为“跳数”,每经过一个路由器,跳数就加1。

        好路由=“距离短”的路由;

        最佳路由=“距离最短”的路由。

        一条路径最多只能包含15个路由器;“距离”的最大值为16时即相当于不可达。

        RIP不能在两个网络之间同时使用多条路由,只选择”距离最短“的路由。

(3)RIP协议的三个特点

        仅和相邻路由器交换信息。和谁交换?

        交换的信息是当前本路由器所知道的全部信息,即自己的路由表。交换什么?

        按固定的时间间隔交换路由信息。什么时候交换?

(4)路由表的建立

        路由器在刚刚开始工作时,路由表是空的;

        得到直接连接的网络的距离(定义为1);

        每一个路由器也只是和数量非常有限的路由去交换并更新路由信息。

        经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由的地址。

        RIP协议的收敛过程比较快;”收敛“就是在自治系统中所有的结点都得到正确的路由选择信息的过程。

        路由表的主要信息:

        路由表更新规则:

        使用距离向量算法找到到达每个目的网路的最短距离;

2.距离向量算法:

        对每个相邻路由器(假设其地址为 X)发送过来的 RIP 报文,路由器:

        (1) 修改 RIP 报文中的所有项目(即路由):把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。

        (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:

            若路由表中没有目的网络N,则把该项目添加到路由表中。否则,若路由表中网络 N 的下一跳路由器为 X,则用收到的项目替换原路由表中的项目。否则,若收到项目中的距离小于路由表中的距离,则用收到项目更新原路由表中的项目。否则,什么也不做。

        (3) 若 3 分钟还未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。

        (4) 返回。

        算法基础:Bellman-Ford算法(或Ford-Fulkerson算法)

        算法要点:设 X 是结点 A 到 B 的最短路径上的一个结点。把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。

3.RIP2报文

组成:首部和路由 2 个部分。

路由部分:由若干个路由信息组成。每个路由信息共 20 个字节。

        地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。

        路由标记填入自治系统的号码。

        后面为具体路由,指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。

        一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是 4+20 x25=504 字节。如超过,必须再用一个 RIP 报文来传送。

        RIP2 具有简单的鉴别功能。

4.坏消息传播的慢:好消息传播得快,坏消息传播得慢(慢收敛)。当网络出现故障时,要经过比较长的时间才能将此信息(坏消息)传送到所有的路由器。

5.RIP协议的优缺点:

(1)优点:实现简单,开销较小。

(2)缺点:网络规模有限。最大距离为 15(16 表示不可达);交换的路由信息为完整路由表,开销较大。;坏消息传播得慢,收敛时间过长。

(三)内部网关协议OSPF

1.协议OSPF的基本特点

(1)开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的;原理很简单,但实现很复杂;使用了 Dijkstra 提出的最短路径算法 SPF;采用分布式的链路状态协议 (link state protocol);现在使用 OSPFv2。

(2)OSPT协议的三个特点:

        采用洪泛法,向本自治系统中所有路由器发送信息。和谁发?

        发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息;发什么?

        链路状态:说明本路由器都和哪些路由器相邻,以及该链路的度量 (metric)。

        当链路状态发生变化或每隔一段时间(如30分钟),路由器才用洪泛法向所有路由器发送此信息。什么时候发?

(3)链路状态数据库:

        每个路由器最终都能建立;全网的拓扑结构图;在全网范围内是一致的(链路状态数据库的同步);每个路由器使用链路状态数据库中的数据构造自己的路由表(例如,Dijkstre最短路径路由算法)

(4)优点:链路数据库能较快地进行更新,使各个路由器能及时更新其路由表;OSPT更新过程收敛速度快。

(5)OSPF将自治系统划分为两个不同的区域:

        主干区域(标识符=0.0.0.0 用来连接其他下层区域)、其他区域

        划分区域优缺点:

        优点:减少了整个网络上的通信量、减少了需要维护的状态数量。

        缺点:交换信息的种类增多了、使OSPF协议更加复杂了。

(6)OSPF中的路由器:

        区域边界路由器ABR、主干路由器BR、自治系统边界路由器ASBR

(7)其他特点

        对于不同类型的业务可计算出不同的路由。

        可实现多路径间的负载均衡(load balancing)。

        所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。

        支持可变长度的子网划分和无分类编址 CIDR。

        32 位的序号,序号越大状态就越新。全部序号空间在 600 年内不会产生重复号。

2.OSPF的五种分组类型

(1)问候分组

(2)数据库描述分组

(3)链路状态请求分组

(4)链路状态更新分组

(5)链路状态确认分组

3.OSPF工作过程

(1)确认邻战可达

        相邻路由器每隔10秒要交换一次问候分组;

        若有40秒没收到某个相邻路由器发来的问候分组,则认为该相邻路由器是不可达的。

(2)同步链路状态数据库

        同步:指不同路由器的链路状态数据库内容是一样的。

        两个同步的路由器叫做完全邻接的路由器。

        不是完全邻接的路由器:它们虽然是物理上相邻的,但是其链路状态数据库并没有达成一致。

(3)更新链路状态

        只要链路状态发生变化,路由器就使用链路状态更新分组,采用可靠的洪泛法向全网更新链路状态;为确保链路状态数据库与全网的状态保持一致,OSPF 还规定:每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。

4.OSPF优点:OSPF 链路状态只涉及相邻路由器,与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多;OSPF 没有“坏消息传播得慢”的问题,收敛数度快。

5.指定路由器DR:多点接入的局域网采用了指定的路由器 DR (designated router) 的方法,使广播的信息量大大减少。指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

(四)外部网关协议BGP

由于(1)互联网的规模太大,使得自治系统AS之间路由选择十分困难;

       (2)自治系统AS之间的路由选择必须考虑到有关策略。所以不同的自治系统AS之间不能使用内部网关协议。

BGP是不同自治系统的路由器之间的交换路由信息的协议,现在使用的是第4个版本BGP-4。

1.协议BGP的主要特点:

(1)用于自治系统AS之间的路由选择(也要运行在AS内部);

(2)只能是力求选择出一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由;

(3)这里所说的BGP路由,是指经过哪些自治系统AS,可以到达目的网络前缀;

(3)采用了路径向量路由选择协议。

2.BGP路由

        在一个自治系统AS中有两种不同功能的路由器即边界路由器(边界网关)和内部路由器;一个AS至少有一个边界路由器和相邻的AS的边界路由器直接相连。

(1)BGP发言者:

        对等BGP发言者(边界路由器)在AS之间交换信息;在两个边界路由器进行通信时,必须先建立TCP连接,这种TCP连接又被称为半永久性连接(双方交换完信息后仍然保持着连接状态)

(3)eBGP连接和iBGP连接:

         eBGP连接:

                在AS自治系统之间,BGP发言者在半永久性TCP连接上建立BGP会话,这种连接又称为eBGP连接;运行eBGP协议,在不同AS之间交换路由信息。

        iBGP连接:

                在AS自治系统内部,任何相互通信的两个路由器之间必须有一个逻辑连接(也使用TCP连接)。

                AS内部所有的路由器之间的通信是全连通的,这种连接常被称为iBGP连接;运用iBGP协议,在AS内部的路由器之间交换BGP路由信息;协议BGP规定,在一个AS内部所有的iBGP必须是全连通的,即使两个路由器之间没有物理连接,但是它们之间仍然有iBGP连接。

        同一个协议BGP使用的报文类型、使用的属性、使用的状态机等都完全一样,但是他们在通报前缀时采用的规则不同:在eBGP连接的对等端得知的前缀信息可以通报给一个iBGP连接的对等端,反过来也是可以的;从iBGP连接的对等端得知的前缀信息,则不能通报给另一个iBGP连接的对等端。

(3)BGP路由的一般格式

BGP路由=[前缀,BGP属性]=[前缀,AS-PATH,NEXT-HOP]

(1)前缀:通告的BGP路由终点(子网前缀),指明到哪一个子网。

(2)BGP属性:自治系统路径(AS-PATH);下一跳(NEXT-HOP)

3.三种不同的自治系统AS

(1)末梢AS:不会把来自其他AS的分组在转发到另一个AS,必须向所连接的AS付费。

(2)多归属AS:同时连接到两个或两个以上的AS,增加连接的可靠性。

(3)穿越AS:为其他的AS有偿转发分组。

(4)对等AS:经过实现协商的两个AS,彼此之间的发送或接收分组都不收费。

*在属性AS-PASH中不允许出现相同的AS号可以有效避免兜圈子

4.BGP的路由选择

(1)本地偏好值最高的路由(默认值=100):LOCAL-PREF值较高的路由优先;

(2)AS条数最小的路由;

(3)使用热土豆路由选择算法(分组在AS内的转发次数最少);

(4)路由器BGP ID数值最小的路由,具有多个接口的路由器有多个IP地址。BGP ID就使用该路由器的IP地址中数值最大的一个。

5.BGP-4的四种报文

(1)OPEN(打开):用来与相邻的另一个BGP发言者建立关系,使通信初始化。

(2)UPDATE(更新):用来通告某一路由的信息,以及列出要撤销的多条路由。

(3)KEEPALIVE(保活):用来周期性地证实邻站的连通性。

(4)NOTIFICATION(通知):用来发送检测到的差错。

6.BGP报文具有通用首部

(五)路由器的构成

        路由器是一种具有多个输入端口和输出端口的专用计算机,路由器工作在网络层,用于互连网络;是互联网中的关键设备;路由器的主要工作:转发分组,把从某个输入端口收到的分组,按照分组要去的目的地(目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。

1.路由器的结构

        整个的路由器结构可以划分为“路由选择”和“分组转发”两大部分。

(1)路由选择部分:

        涉及很多路由器;

        路由选择部分也叫做控制部分,或控制层面,其核心构件是路由选择处理机;

        路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

        根据路由选择算法,根据网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个的路由表;涉及到很多路由器;路由表一般仅包括从目的网络到下一跳(用IP地址表示)的映射。

(2)分组转发部分:

        仅涉及一个路由器;

        分组转发部分也叫做数据层面;

        根据转发表将用户的IP数据报从合适的端口转发出去;仅涉及到一个路由器;转发表是从路由表得出的;转发表必须包含完成转发功能所需的信息;每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息(如下一跳的以太网地址)的映射;

        它由三部分组成:交换结构、一组输入端口和一组输出端口;

2.交换结构

        交换结构又称为交换组织,它的作用就是根据转发表对分组进行处理,将从某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构可以看成“在路由器中的网络”。

常用交换方法:通过存储器、通过总线、通过纵横交换结构。

(1)通过存储器

        当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机,然后分组就从输入端口复制到存储器中;

        路由器处理机从分组首部提取到目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。

        若存储器的带宽(读或写)为每秒M个分组,那么路由器的交换速率(即分组从术后如端口传送到输出端口的速率)一定小于M/2。

(2)通过总线

        数据从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。

        当分组到达输入端口时若发现总线忙,则被阻塞而不能通过交换结构,并在输入端口排队等待。

        因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。

(3)通过纵横交换结构

        常被称为互连网络;

        它有2N条总线,控制交叉点可以使N个输入端口和N个输出端口相连接;

        当输入端口收到一个分组时,就把它发送到水平总线上;

        若通向输出端口的垂直总线空闲,则将垂直总线与水平总线接通,把该分组转发到这个输出端口。若输出端口已被占用,分组在输入端口排队等待;

        是一种无阻塞的交换结构,分组可以转发到任何一个输出端口,只要这个输出端口没有被别的分组占用。

二、IP多播

(一)IP多播的基本概念

        1.IP多播:1988年(时间点)首次提出IP多播的概念,曾被译为组播目的是更好地支持一对多通信(一对多通信:一个源点发送到许多个终点);

        在互联网上进行多播就叫做IP多播,能够运行多播协议的路由器称为多播路由器,多播路由器也能转发普通的单播IP数据报。1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE。

        2.多播可大大节约网络资源:采用单播方式向90台主机传送同样的视频节目,需要发送90个单播;而采用多播方式只需要发送一次到多播组,路由器复制分组,局域网具有硬件多播功能不需要复制分组。当多播组的主机数很大时,采用多播方式就可明显地减轻网络中各种资源的消耗。

        3.多播IP地址:在IP多播数据报的目的地址需要写入多播组的标识符,多播组的标识符就是IP地址中的D类地址(多播地址),地址范围:224.0.0.0~239.255.255.255,每一个D类地址标志一个多播组。(多播地址只能用于目的地址,不能用于源地址)

        4.多播数据报:与一般的IP数据报相比,目的地址使用D类IP地址;协议字段=2,表明使用网际组管理协议IGMP。尽最大努力交付,不保证一定能够交付多播组内的所有成员;对多播数据报不产生ICMP差错报文;在PING命令后面键入多播地址,将永远不会收到响应。

(二)在局域网上进行硬件多播

        IANA 拥有的以太网地址块的高 24 位为 00-00-5E;TCP/IP 协议使用的以太网地址块的范围是00-00-5E-00-00-00~00-00-5E-FF-FF-FF IANA 只拿出 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF (223 个地址)作为以太网多播地址。或者说,在 48 位的多播地址中,前 25 位都固定不变,只有后 23 位可用作多播。

(三)网际管理协议IGMP和多播路由选择协议

        1.IP多播两种协议:

        (1)网际组管理协议IGMP:使多播路由器知道多播组成员信息(有无成员)。IGMP协议是让连接到本地局域网上的路由器知道本局域网上是否有主机参加或退出某个多播组,IGMP不知道IP多播组包含的成员数,也不知道这些成员分布在哪些网络。

        (2)多播路由选择协议:使多播路由器协同工作,把多播数据报最小代价传送给多播组的所有成员。

        2.网际组管理协议IGMP:IGMP协议是让连接到本地局域网上的路由器知道本局域网上是否有主机参加或退出某个多播组,IGMP不知道IP多播组包含的成员数,也不知道这些成员分布在哪些网络。

        3.多播路由器选择协议:

        多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),因为每一台主机可以随时加入或离开一个多播组。多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,还要考虑这个多播数据报从什么地方来和要到什么地方去。 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员的接入网络。

三、虚拟专用网VPN和网络地址转换NAT

(一)虚拟专用网VPN

由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数;
考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网;
如果一个机构内部的计算机通信也是采用 TCP/IP 协议,那么这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。

1.本地地址与全球地址

(1)本地地址:仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。

(2)全球地址: 全球唯一的 IP 地址,必须向互联网的管理机构申请。

(3)为了区分本地地址和IP地址,RFC1918指明了一些专用地址;专用地址只能用作本地地址,不能用作全球地址。互联网中所有的路由器对目的地址是专用地址的数据一律不进行转发。

2.专用网

采用专用 IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。

专用 IP 地址也叫做可重用地址。

3.虚拟专用网VPN

        利用公用互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN。

        专用网:指这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。

        虚拟:表示实际上没有使用通信专线,只是在效果上和真正的专用网一样。

4.虚拟专用网的构建

        如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。

        必须为每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

5.用隧道技术实现虚拟专用网

 6.VPN类型

(1)内联网 (intranet):同一个机构的内部网络所构成的 VPN。

(2)外联网 (extranet):一个机构和某些外部机构共同建立的 。

(3)远程接入 VPN (remote access VPN):允许外部流动员工通过接入 VPN 建立 VPN 隧道访问公司内部网络,好像就是使用公司内部的本地网络访问一样。

(二)网络地址转换NAT

1.在专用网上使用专用地址的主机在不需要加密的情况下如何与互联网上的主机通信?采用网络地址转换NAT(目前使用最多的方法)。

2.网络地址转换NAT

(1)1994 年提出;需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球 IP 地址。所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

(2)网地址转换的过程:在内部主机与外部主机通信时,在 NAT 路由器上发生了两次地址转换:离开专用网时:替换源地址,将内部地址替换为全球地址;进入专用网时:替换目的地址,将全球地址替换为内部地址。

(3)当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网;可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。

        *通过 NAT 路由器的通信必须由专用网内的主机发起,因此,专用网内部的主机不能充当服务器用。

3.网络地址与端口号转换NAPT

        NAT 并不能节省 IP 地址;NAPT 可以使多台拥有本地地址的主机,共用一个 全球 IP 地址,同时和互联网上的不同主机进行通信;使用运输层端口号的 NAT 叫做网络地址与端口号转换 NAPT ,而不使用端口号的 NAT 就叫做传统的 NAT 。

相关文章:

  • Android Exoplayer多路不同时长音视频混合播放
  • 利用Backtrader实现回测策略的可视化与图表绘制
  • 广告推荐算法入门 day1 --项目选型
  • 人工智能_大模型数据标注主要做什么_拉框_人工智能训练师_数据标准师介绍---人工智能工作笔记0244
  • 【技巧】使用UV创建python项目的开发环境
  • 麦肯锡110页PPT企业组织效能提升调研与诊断分析指南
  • LVS+keepalived实战案例
  • aardio - godking.vlistEx.listbar + win.ui.tabs 实现多标签多页面切换
  • element-ui 源码调用接口跨域问题
  • 第二十三天打卡
  • 无缝对接主流电商平台接口,解决货源难题
  • Java SpringMVC 和 MyBatis 整合项目的事务管理配置详解
  • 在Linux系统中开放指定端口访问(允许远程访问数据库)
  • [Java][Leetcode middle] 55. 跳跃游戏
  • Ansys 计算刚柔耦合矩阵系数
  • leetcode 189. 轮转数组
  • 制造业AI质量检测方案
  • 【Qt】之音视频编程1:QtAV的背景和安装篇
  • GTS-400 系列运动控制器板卡介绍(二十五)---PVT 描述方式
  • 【应用密码学】实验五 公钥密码2——ECC
  • 上海145家博物馆、73家美术馆将减免费开放
  • 王毅谈中拉论坛十年成果
  • 广东省人大教科文卫委原主任委员梁万里被开除党籍:退休后受贿仍不知止
  • 人民日报钟声:通过平等对话协商解决分歧的重要一步
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 西藏日喀则市拉孜县发生5.5级地震,震源深度10公里