嘀嘀嘀~~~  页面这在飞快的跑来 . . .

网络层


网络层是计算机网络体系结构中非常重要的一层,它为运输层提供服务,跨越不同的网络将运输层报文段送达到对端运输层。IP协议是因特网网络层的核心协议。

2^7=128 10000000
2^6=64 01000000
2^5=32 00100000
2^4=16 00010000
2^3=8 00001000
2^2=4 00000100
2^1=2 00000010
2^0=1 00000001

网络层服务和功能

运输层为应用层提供了端到端的数据传递服务。但运输层的报文段要从发送方主机到达接收方主机,需要使用下层的服务。网络层位于运输层下,为运输层提供服务,网络层要负责把运输层报文段从发送方主机的运输层送到接收方主机的运输层。但发送方主机与接收方主机常常相隔很远,它们之间相隔若干的网络。运输层报文段要走怎样的路才能到达接收方?网络层要完成的任务如下:

  1. 网络层接收运输层的报文段,添加字节的首部,形成网络层分组。分组是网络层的传输单元。
  2. 网络层分组在途径的各个站点的网络层之间传递,最终到达接收方的网络层。
  3. 接收方网络层将运输报文段上传给本地运输层。

网络层与运输层的关系

在TCP/IP的体系中,网络层最主要的协议是网际协议(Internet Protocol,IP)。IP协议在RFC791中定义,目前的版本是IPv4,下一个版本IPv6已经开始实施,目前因特网上运行是主要还是IPv4。

IP协议概述

IP协议是TCP/IP体系网络层的主要协议,为上层的TCP和UDP提供服务,在TCP/IP体系的网络层,除了IP协议外,还有ICMP协议和IGMP协议。

IP协议是TCP/IP协议体系的核心协议,通过IP协议可以连接各种不同的网络。这些网络在物理层和数据链路层上可能采用了不同技术标准和协议,但IP协议屏蔽了这些差异,对运输层和应用层呈现了一个统一的界面。对于运输层和应用层而言,它们只知道有IP网络,不需要了解低层的具体网络技术。IP协议连接各种不同的网络,使整个Internet统一为一个巨大的IP网络。

IP网络

IP协议封装TCP报文段或UDP数据报,形成IP数据报,IP协议的主要功能要为IP数据报选路,并转发IP数据报到目的地。

IP协议提供的是数据报服务,有两个主要特点

  1. 不可靠:IP数据报在传输途中可能会丢失、损坏或乱序,IP协议不去解决这些问题,IP协议不提供可靠性,IP协议只是尽最大努力去传输数据。
  2. 无连接:在发送IP数据报前,发送方的IP协议不会与接收方的IP协议建立联系,而是直接发送IP数据报。每个IP数据报被独立处理,IP不维护传输的各种状态(如主机间的关联、分组的顺序等)。

IP协议定义了以下内容:

  1. IP地址。IP地址定义了一个统一的地址体系,IP网络中,每台节点都有一个IP地址,使用这个地址进行通信。
  2. IP数据报格式。IP数据报是IP协议的数据传输单元,IP协议定义了IP数据报格式、内容和IP数据报的分片与重组。
  3. IP协议与相关层次的接口。

IP地址

概念

就像现实社会中每个人都有一个通信地址一样,在IP网络中,每台设备也需要一个通信地址,这个地址称为IP地址,一个IP地址可以唯一确定IP网络中的一个站点。IP数据报的选路和转发都需要以IP地址为基础的。

IP地址是一个32比特(4字节)的二进制数字,为了方便人们记忆和书写,采用了点分十进制的写法。将IP地址的32比特分成4组,每组8比特(1字节),字节之间用点间隔,每组的8比特用对应的十进制数字表示,这种表示方法称为点分十进制。

点分十进制

IP地址具有以下特点:

  • IP地址是一个逻辑上的地址,与具体的网络技术和硬件无关,可以人为指定或通过DHCP服务器动态获得。
  • IP地址是分配给网络接口的,与网络接口相关联,一个接口一个IP地址。

通常情况下,主机只有一个网络接口(即网卡),所以一个主机只有一个IP地址,而路由器有多个网络接口,连接多个网络,所以路由器会有多个IP地址。

每个IP地址分为两部分:网络号和主机。网络号代表主机或路由器所处的物理网络,主机号代表所处物理网络中的编号。

同一个物理网络中的IP地址,它们的网络号是相同的,但主机号不同例如202.113.1.1202.113.1.2202.113.1.3这三个IP地址处于同一个物理网络,前三个字节是网络号,相同的,第四个字节是主机和,是不同的。不同的物理网络,IP地址网络号应该不同,一个物理网络应该对应一个IP网络号。

IP地址的分类

早期根据网络号和主机号所站比特位数不同,将IP地址分为A、B、C、D、E五大类,其中A、B、C类地址称为单播地址,用来分配给主机和路由器。D类IP地址以224 ~ 239之间的数字开头,是作为组播地址预留的。Internet中大多数数据传输是点对点的,而组播是一种点对多的传输方法,在Internet上有特殊应用,如电话会议或视频会议。E类IP地址以240 ~ 254之间的数字开头,作为保留地址。D类和E类IP地址都不用来分配给主机或路由器。

IP地址的分类

A、B、C类的网络数目

  • A类网络,网络位占8个比特,第一位固定为0,因此最小的网络号是0(00000000),最大的一个网络号是127(11111111)。但在IP地址中,全0网络号有特殊的含义和用途,保留不分配;网络号是127的IP地址也保留作为环回测试地址,所以A类网络号有效范围是1至126,共有126个A类网络。
  • B类网络,网络位占14个比特,前两位固定位10,所以不存在全0或全1的B类网络号,因此B类网络 数目共有2^14个。
  • C类网络,网络占位24个比特,前三位固定位110,所以C类的网络数目位2^21个

网络所拥有的主机数

对于某个IP网络(网络号确定),如果主机占位N个比特,那么地址空间位2^N,但全0和全1的主机地址有特殊含义,不分配,所以可供分配的IP地址数目为2^N-2。

每个A类网络,主机位有24比特,可分配的IP地址是2^24-2个。每个B类网络,主机位有16比特,可以分配的IP地址数是2^16-2。每个C类网络,主机位有8比特,可分配的IP地址数是2^8-2。

ABC类IP地址范围和每个网络中的主机数目

第一个字节范围在1-126的是A类,128-191的是B类,192-223的是C类。

特殊的IP地址

  • 全0和全1地址

在IP地址中,网络号和主机号都有可能出现全0或全1的情况,全0和全1在IP地址中有特殊的含义,不分配。简单的讲全0代表“本”,全1代表“所有”。在特殊的IP地址中,最常用的是某网络的网络号和广播地址。网络号代表整个网络,广播地址代表网络中所有的主机。如223.1.2.0表示一个C类网络的网络号,代表这个C类网络,223.1.2.225是这个网络的广播地址,代表223.1.2.0网络中的所有主机。

全0和全1的特殊地址

  • 换回地址

网络号为127的地址作为环回地址,保留作为本地软件测试,也不分配。最常用的环回地址是127.0.0.1,代表本机,即不论网络接口分配的IP地址是多少,127.0.0.1总代表主机或路由器本身。

  • 私有IP地址

接入Internet的IP地址必须向IP地址管理机构申请才可以使用,全球唯一,这类地址称为公有地址(public address)

如果只在组织机构内部自由使用,不接入Internet,可以直接使用私有IP地址(private address),不需要申请。

私有IP地址的范围

  1. 10.0.0.0~10.255.255.255
  2. 172.16.0.0~172.31.255.255
  3. 192.168.0.0~192.168.255.255

私有地址只能在一个机构内部使用,不能访问Internet

  • 链路本地地址

主机的IP地址可以通过两种方式获得:

  1. 手工为主机分配IP地址,这样的地址称为静态IP地址。除非重新配置,否则地址不会变化。
  2. 从DHCP服务器动态获取IP地址,动态IP地址可能会发生变化。

当主机台配置通过DHCP服务器动态获取IP时,如果由于服务器故障或其他原因,无法获得IP地址,这时操作系统会为本机指定一个169.254开头的IP地址,地址范围是169.254.0.0126.254.255.255,这个地址称为链路本地地址(Link lock Addresses),在RFC3330中规定,在主机动态获取IP地址失败时有操作系统指定。

IP子网

分配IP地址时,每个物理网络要占用一个IP网络号,不同的物理网络就要有不同的IP网络号。随着接入因特网的物理网络越来越多,每增加一个网络就要分配一个IP网络号。这样就带来了两个严重的问题。

  1. 地址浪费。对于一个B类的网络,可以容纳的主机数目为6万多个,而实际上一个物理网络中不可能有如此多的主机。对于A类网络而言,一个网络中可以有1600多万个主机,更是存在着巨大的地址浪费。
  2. 路由表急剧膨胀。因特网中的路由器内都有一个路由表,记录IP网络的信息。网络数据的激增造成IP网络的激增,路由表也急剧膨胀,给路由器的性能也带来了很大的负面影响。

解决思路:IP子网

IP子网让多个物理网络共用一个IP网络号,减少地址的浪费,方便管理。

IP子网划分

子网划分

IP子网划分是将原来属于主机的比特“借”过来作为子网号,原来的网络号与子网号共同组成IP地址的网络部分。

子网示例图

划分IP子网是一个机构内部的事情,即子网只在机构内部可见,对于外部是不可见的。

根据所需子网数目划分

如果需要划分m个子网,假设需要借用N位主机位,那么两者应该满足2^N>=m,N位二进制数共有2^N种组合,每种组合都可以作为一个子网号。

例:一个B类的网络128.1.0.0要划分3个子网,则m=3,根据2^N>=m,N的最小值为2,N取大于2的值也同样能够满足划分3个子网的需求,但是多“借”了主机位会使主机位减少造成每个子网中能够分配的主机数目减少。当N=2时,2位二进制数字的组合为00,01,10,11,共有四个子网可以选择

IP子网地址范围

子网掩码

出现IP子网后,任意给定一个IP,如63.1.2.3虽然是个A类的IP地址,但是可能划分了子网,仅从一个IP地址中无法获知“借”了多少位划分子网,所以子网号和主机号都无法确定,如何确定一个IP的网络部分(包括子网)和主机部分这时就需要使用子网掩码。

子网掩码是一个32比特的数字,与IP地址是一 一对应的,用来标识IP地址中哪些位是网络位,哪些位是主机位。

确定子网掩码的具体方法是:子网掩码中的1对应IP地址中的网络号和子网号,子网掩码中的0对应IP地址中的主机号。

IP地址与子网掩码

为了方便书写和记忆,子网掩码也采用点分十进制的表示方法。

例:B类网络128.1.0.0借用了2个主机位划分子网,而B类地址网络位本身有16位,所以子网主机的IP地址中网络部分共有16+2=18位,因此对应的子网掩码为11111111 11111111 11000000 00000000,写成点分十进制的形式为255.255.192.0

IP子网掩码

计算网络号

有了IP地址和对应的子网掩码,就能确定这个IP地址的网络部分(包括子网)和主机部分。计算机的方法是将IP地址和子网掩码按位进行“与”运算(同1为1,1与其他等于其他本身)。

例:IP地址128.1.34.1的子网掩码为255.255.224.0

网络号的计算

默认的子网掩码

对于任意一个IP,不论是否划分子网,都有一个子网掩码与之对应,都可以计算处这个IP中的网络号。

  • A类:255.0.0.0
  • B类:255.255.0.0
  • C类:255.255.255.0

变长子网掩码

实际的子网划分中,每个子网内的主机数常常是不同的。在变长子网掩码(Variable Length Subnet Mask,VLSM)划分中,每个子网的所“借”的主机位可以不同,每个子网的主机数可以不同,子网掩码也可以不同,VLSM使子网分配灵活高效,能进一步节省IP地址资源。

使用VLSM进行子网划分的基本方法是:

  1. 先划分需要IP地址多的子网,再划分需要IP地址少的子网,依次递减。
  2. 划分每个子网时,先根据子网内IP地址数目,计算需要的主机位数,进一步得出子网需要借的位数和子网掩码。如果子网内需要k个IP地址,那么需要的主机位数N应该满足:2^N-2>=k(去掉全0和全1的两个IP地址)。

无分类编制CIDR

进入20世纪90年代后,接入Internet的网络和主机日益增多,Internet得到了迅速发展,分类的IP地址体系也带来两个主要 的问题。一个是IP地址日益匮乏,另一个是因特网主干路由表项目急剧膨胀,很快将达到其理论最大数量,从而限制Internet的继续发展和扩大。

  • IP地址日益匮乏

对于多数机构和团体,C类地址提供的数量太少,不能满足需要;而申请B类或A类地址,能提供的数量又会超出其需要,很多地址都闲着不用。使用IP子网能够在一定程度上减少IP地址的浪费,但浪费问题依然存在。

  • 路由表项目急剧膨胀

每个路由器中都有一个路由表,路由表中记录了如何到达其他网络的信息,一个网络对应一个表项,路由器通过查找表来转发IP数据报。

网络与路由表条目对应图

网络数目越多,表象就会越多。一个路由器内的资源是有限的,路由表项不可能无限增大,并且路由表项的增大也会延长查找路由表的时间,降低路由器的工作效率。

基于以上的问题,提出了无类别域间路由(Classless Inter-Domain Routing,CIDR)。CIDR取消了原来IP地址A,B,C类的划分,使用13 ~ 27位不等的网络前缀代替原来的网络号。基于VLSM,CIDR能够更精细的分配IP地址,减少浪费,同时CIDR可以将多个网络号合并成一个超网,大大减小了路由表项的数目。CIDR相关的RFC文档是RFC1517~1520。

CIDR地址块

在CIDR中,一个IP地址由两部分组成:网络前缀和主机号。CIDR采用斜线记法来表示IP地址,例如21.3.56.45/25,其中的/25表示这个IP地址中前25位是网络前缀,代表网络号,后面七位代表主机号。

网络前缀相同的连续IP地址组成CIDR地址块,一个CIDR地址块中最少的地址数是32(前缀为27),最多的地址数可以到50万以上(前缀为13)。

每个CIDR前缀所包含的地址数目

一个CIDR地址块用这个地址块的起始地址和网络前缀表示,如133.24.32.0/20表示CIDR地址块中,网络前缀部分20位,主机位12位,共有2^12个地址,最小的地址和最大的地址如下

最小地址:133.24.32.0 10000101 00011000 00100000 00000000

最大地址:133.24.47.255 10000101 00011000 00111111 11111111

在CIDR中,使用掩码来表示网络前缀的位数,如133.24.32.0/20的掩码为255.255.240.0(11111111 11111111 11110000 00000000)

利用CIDR分配IP地址

超网

IP数据报

IP协议接收运输层的数据(UDP数据报或TCP数据报),添加自己的首部,形成IP数据报。IP数据报是IP协议的传输单元。

IP数据报格式

IP数据报分两大部分:首部和数据。数据来自高层协议,首部含有控制信息,IP协议利用这些控制信息来实现IP数据报的选路转发。

IP数据报格式

  • 版本:4bit,IP协议的版本,目前为4(即IPv4)
  • 首部长度:4bit,以4字节为单位的IP首部长度,最大值15,首部最长60字节
  • 服务类型:8bit,以表示IP数据报优先级,多在QoS中使用,默认情况下为全0
  • 总长度:16bit,IP数据报的总长度(包括首部),最大值为65535
  • 表示(ID):16bit,IP数据报的编号
  • 标志(Flag):3bit,1bit为MF位,1bit为DF位,1bit保留未用。MD和DF位用于IP数据报分片
  • 片偏移(Offset):13bit,用于IP数据报分片时,指出分片第一字节在原数据报中的位置
  • 生存时间(TTL):8bit,表示IP数据报可以经过路由器的个数,每经过一个路由器,TTL值减1,当TTL值减为0时,路由器会丢弃IP数据报
  • 协议:8bit,用来表示IP所封装的高层协议
  • 首部校验和:16bit,用于检查IP首部的错误,计算方法类似于UDP校验和
  • 源地址:32bit,IP数据报发生接口的IP地址
  • 目的地址:32bit,IP数据报目的地接口的IP地址
  • 可选字段:长度可变,最大40字节,用于IP协议的一些高级选项,如记录路径、源站选路等,多数情况下没有此字段
  • 填充:全0,在有可选字段时,填充IP首部,确保IP首部为32bit整数倍

IP数据报分片与重组

IP数据报需要被封装在下层的数据链路层帧中传递,数据链路层对于要运输的载荷通常会有大小的限制,这个限制称为最大传输单元(Max Transfer Unit,MTU),不同的链路层技术MTU不同,例如以太网的MUT是1500字节,FDDI的MTU是4352字节。MTU的大小限制了能够传送IP数据报的大小。

当IP数据报的大小超过了低层的MTU时,IP协议就需要将其划分成几个小的分片发生,当收到分片后,IP协议需要将分片重组成原来大的IP数据报,这个过程称为IP数据报的分片和重组。

IP使用标识、标志、片偏移字段来控制IP数据报的分片与重组。

IP数据报分片示例

IP数据报的发送

发送IP数据报是IP协议的核心功能,IP协议根据IP数据报首部中的目的IP地址,为IP数据报选择一条路线,将其送到目的地,主机和路由器都参与数据报的发送。

直接发送和间接发送

IP数据报的发送过程

直接发送:当源主机和目的主机位于同一个物理网络中时,IP数据报可以直接发送给目的地。如图中的主机B和主机C。

间接发送:源主机的主机在不同的物理网络中,不能直达,IP数据报需要经过路由器转发才能到达目的地。如图中的主机A和主机E,IP数据报必须经过路由器R1,R2,的转发才能到达接收方,即A到R1到R2到E。

选路的基本原则

  • 根据目的IP选路:每个IP数据报首部中都有目的IP地址,目的IP地址指明了IP数据报的目的地。主机和路由器都会读取目的IP地址,根据目的地选路。
  • 下一站选路:在选路时,每个站点(主站或路由器)只能确定到达目的地路径上的下一站,而并不知道整条路径。

下一站选路简化了网络设计,对站点隐藏了后面网络的细节,使得站点能够以最少的信息进行选择。

路由器

路由器是网络互联的核心设备,它连接不同的网络,在网络之间转发IP数据报。路由器实际上是一个专门执行IP数据报转发的专用计算机,包括控制部件(CPU,RAM,OS)、路由表、协议软件和网络接口(LAN,WAN,CONSOLE)几个基本组成部件。

路由器的外部结构

路由器有许多接口,比如以太网口、串口、光纤接口等,一个接口连接一个网络。IP数据报从路由器的一个接入进入,从另一个接口发出去。因为路由器能够识别和转发IP数据报,所以称路由器是工作在网络层的设备。

路由器转发IP数据报

路由表

在IP数据报转发的过程中,每个节点都需要确定IP数据报的下一站。主机和路由器根据IP数据报的目的IP地址,通过查找路由表确定下一站。主机和路由器都有路由表。

路由表列

路由表记录了由本设备出发,到达目的网络路径上的下一站信息,不会记录达到目的网络的完整路径。路由表由目的网络,子网掩码和下一站三部分组成。不同设备的路由表,表项不同,但都包含到达所有网络的下一站信息。

关于路由表需要注意两点:

  1. 路由表以网络号为目的地,而不是以主机IP地址为目的地,一个IP网络号可以代表这个网络中所有主机,因此可以大大缩小路由表的大小。
  2. 路由表记录的是到达目的网络路径上的下一站,不是全部路径。当数据报被送到下一站后,下一站的路由器也会检查字节的路由表,将数据报送到第二个下一站,就这样一站一站地传递,最终数据报到达目的地。

Windows下查看本机的路由表

netstat -r

特定主机路由器

路由表中的表项通常是针对网络的,但有时为了方便网络管理人员控制、测试网络和安全问题考虑,会为某一个特定的目的主机指明一个路由,称为特定主机路由。

默认路由

路由器在查找路由表时,会根据IP数据报的目的IP地址,对照路由表项,查看目的IP属于哪个目的网络,找到匹配的条目时,就转发到对应的下一站,如果所有路由表项都不匹配,路由器应该如何处理?

可以设置默认路由,在其他路由表项都不匹配时,将IP数据报转发到默认路由上,默认路由的网络号和子网掩码都0.0.0.0,默认路由是IP数据报转发的最后一个选择,通常都要设置默认路由,使用默认路由可以简化路由表。

使用默认路由简化路由表

网关

网关在主机的IP数据报的发送过程中起着重要作用。简单地讲,网关就是一个网络的关口,进入和流入这个网络的IP数据报都需要经过这个关口,网关通常由路由器担当。

路由器的一个接口连接一个物理网络,路由器的接口是物理网络内的主机访问其他的网络的必要接口,称为这个网络的网关。

同一网络内部主机之间的通信,不需要网关参与可以直接通信;不同网络之间主机的通信,一定要发送给网关由网关转发。

IP数据报的发送过程

主机发送IP数据报

IP数据报多数是由计算机产生的,主机的IP协议发送IP数据报时,要首先判断目的IP地址与自己是否在同一网络。如果是,就直接发送给目的地;如果不是,就采用间接发送的方式,将IP数据报发送给网关,由网关转发。

判断目的IP地址与源IP地址是否在同一个网络的方法是:

  1. 源主机将IP地址和自己的子网掩码按位与,得出自己的网络号
  2. 源主机将目的IP地址与自己的子网掩码按位相与,得出一个网络号
  3. 如果两个网络号相等,那么目的IP与源IP在同一个网络,否则就在不同的网络

这样计算的理由是基于一种假设:如果目的的主机和源主机在同以网络,那么目的IP地址和源主机的子网掩码按位相与,结果应该和源主机的网络号相同,否则应不同。

路由器转发IP数据报

当路由器收到IP数据报后,转发的算法如下:

  1. 从IP数据报首部中获取目的IP地址D
  2. 用各直连网络的子网掩码和D逐比特相“与”,看结果是否和直连网络的网络号匹配。若匹配,则将IP数据报直接发送给D,否则继续
  3. 查看路由表中是否由目的地是D的特定主机路由器,如果有,转发IP数据报到下一站;如果没有,继续
  4. 对路由表中其他表项,依次将每一行的子网掩码和D逐比特相“与”,若其结果与该行的目的地的网络号匹配,则将IP数据报转发到对应的下一站,否则继续
  5. 查看路由表中是否有默认路由器,如果有,将IP数据报转发到默认路由,如果没有,报错

路由协议

路由器通过查找路由表来确定IP数据报的下一站。路由表项可以通过两种方式生成。

  • 手动配置

当网络管理员配置了路由器接口的IP地址、子网掩码,启动接口后,路由表中就会出现直连网络的路由。网络管理员还可以手动配置到其他网络的路由,创建路由表项,这样的路由称为静态路由。配置静态路由要求管理员对网络拓扑结构网络状态有清晰的了解,并且当网络变化是,要手动重新配置。

  • 通过路由协议学习获得

路由器之间可以通过路由协议,自主学习来获得路由信息,这样的路由器称为动态路由。使用路由协议动态构建路由表不需要人工参与,并能自动适应网络状态的变化更新路由表,大型网络或状态变化频繁的网络通常会采用动态路由协议。

自治系统和分层次路由

因特网的网络数目巨大,几百万各路由器互相连接在一起。要让一个路由器记录每个网络信息的是不可能的,而且许多机构并不愿意自己的网络内部细节对外暴露。基于以上的原因,因特网被划分成了许多个自治系统(autonomous system,AS)。一个自治系统由同一机构管理,比如一所大学、一家大公司的网络都可以构成自己的自治系统。自治系统由一个16位长度的自治系统号进行标识,该标识由InterNIC指定并具有唯一性,一个自治系统对外体现处一个统一的路由。整个因特网可以看成是由许多自治系统组成的

自治系统

因特网的路由可以分为两个层次

  • 自治系统内部的路由

内部网关协议(Interior Gateway Protocol,IGP):RIP,OSPF

  • 自治系统之间的路由

外部网关协议(Exernal Gateway Protocol,EGP):BGP

内部网关协议

自治系统内部的路由器使用内部网关协议交换路由信息,常用的内部网关协议由RIP和OSPF。

RIP

路由信息协议(Routing Information Protocol,RIP)是路由器生产厂商之间使用的第一个开发标准,是连接不同厂商设备使用最为广泛的公共协议,早期版本是RIP-v1(RFC1058),最新版本是RIP-v2(RFC 2453)。RIP只适合于小型的网络,是基于距离矢量的路由协议。距离表示路由器离目的网络的远近。矢量表示数据报转发的方向或下一站。

路由器到直连网络的距离位1,路由器到非直连网络的距离每所经过路由器的数目加1,RIP中距离也称为“跳数(hop count)”,每经过一个路由器,跳数就加1,RIP中距离最大有效值为15,16表示不可达。例如路由器到达网络N的距离为d,可以表示为<N,d> 。

RIP认为到达目的的网络距离最小的路径就是最好的路。RIP报文被UDP封装,源端口和目的端口都是520。

RIP协议的路由表

RIP的优缺点

  • 优点:简单、容易实现、开销小
  • 缺点:支持网络规模有限(最多十五跳),收敛慢

RIP协议的工作原理

  1. 每个路由器每隔30s给自己所有的邻居路由广播RIP报文,报文内容是这个路由器当前的路由表信息。当两个路由器共享一条链路或在同一个物理网络中时,就称它们为邻居。RIP是应用层协议,RIP报文使用UDP数据报进行传送,端口号为520.
  2. 收到邻居路由器的路由表信息后,每个路由器都要更新自己的路由表,添加新的路由表项后更改旧的路由表项。这样下一次就可以将更新后的路由表告诉自己的邻居。
  3. 如果180s内没有收到某个路由器的路由表信息,就认为这个路由器出现故障,路由表中所有以这个路由器为下一站的表项中的距离改为16,表示目的网络不可达。

路由表更新算法

当收到邻居路由器广播的RIP报文后,路由器要根据距离矢量算法来更新自己的路由表。

假设路由器A收到路由器B的路由信息,那么路由器A在以下情况下会修改自己的路由表。

  1. B的路由表中包含A所不知道的网络,那么A增加路由表项。
  2. A的路由表中包含到达某个网络的路由信息,并且下一站为X,但B的路由表包含到达这个网络的更短的路由,那么A修改自己的路由表项。
  3. 如果A包含到达某个网络的路由信息,并且下一站为B,但B的路由表中到达这个网络的距离发生了变化,那么A修改自己的路由表项。

文章作者: WuLiZeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WuLiZeng !
评论
  目录