计算机网络--四.网络层

网络层提供的两种服务

网络层应该向运输层提供服务有两种通论,一是面向连接的虚电路(借助电信的成功),二是面向连接(考虑计算机的智能)的数据报服务
因特网的设计:网络层向上提供简单的灵活的,无连接的,尽最大努力的交付的数据报服务。在发送分组的时候不需要建立连接,网络不提供服务的质量的保证。
虚电路服务和数据报服务。

image

网际协议 IP

与网际协议 IP 一起作用的协议有
1.地址解析协议 ARP
2.网际控制报文协议 ICMP
3.网际组控制协议 IGMP
由于网际协议 IP 是用来使互连接许多计算机网络能够进行通信, TCP/IP 体系中的网络层也叫网际层 或 IP 层。

虚拟互联的网络

网络的互联需要一些中间设备:
1.在物理层使用的是转发器
2.数据链路层使用的是网桥或者中间设备
3.网络层使用的是路由器
4.在网络层以上的使用的中间设备是网关
使用转发器或者网桥仅仅是把一个网络扩大了,并不是网络的互联,因此互联需要的路由器,参与互联的网络都使用相同的网际协议 IP ,即在网络层使用表标准化的协议,因此可实现异构网络的互联。互联起来的网络叫做虚拟互联网,使用 IP 协议就可以使这个虚拟的互联网在网络层看起来是一个统一的网络(实际上有很多异构网络)。
简单的例子:源主机H1要把一个IP数据报发送给目的主机H2,根据分组交换的存储转发概念,主机H1先要查找自己的路由表,看目的主机是否就在本网络上。如是,则不需要经过路由器而是直接交付,任务就完成了。如不是,则必须把IP数据报发送给某个路由器(图中R1)。R1在查找了自己的路由表后,知道应把数据报转发给R2进行交接交付,这样一直转发下去,最后由路由器R5知道自己是和H2连接在一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付到目的主机H2。

分类的 IP 地址

IP 地址就是给因特网上的每一个主机(或者路由)的每一个接口分配一个全世界范围唯一的 32 位的标识符。IP 地址的编址方式主要经历了三个阶段:
1.分类的 IP 地址。
2.子网的划分 。
3.构成超网,无分类的编址方式。

1.分类的 IP 地址

就是将 IP 划分为几种固定的类型,每一类的地址都有两个固定的长度的字段组成,一是网络号,标志着主机或者路由器所连接的网络,网络号是唯一的。第二个字段是主机号(标志主机或者路由),一个主机号在一个网络内也是唯一的。

image

A ,B ,C 类地址都是单播地址,最前面有1~3 位类别号,分别是0 ,10 ,110 。且主机号分别为3个,2个,1个字节长。D 类地址是用于多播的地址即一对多通信。E 类预备使用。可根据主机数量的多少申请不同类型的 A, B, C 类地址。
IP 地址是32 位的二进制码,为提高可读性使用点分十进制的方法,每8 位划分为一十进制数。

image

2.常用的三种 IP 地址

A 类:网络号字段占一个字节,只有七位可供使用(第一位已经指派为0),但可指派的网络号是126个(即2^7-2)。减2的原因是:第一,IP地址中的全0表示“这个(this)”。网络号字段全0的IP地址是个保留地址,意思是“本网络”。第二网络号为127(即01111111)保留作为本地软件环回测试本主机进城之间的通信之用。A类地址的主机号占三个字节,因此每一个A类网络中最大的主机数2^24-2,减2 的原因是:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0),而全1表示“所有的”,因此全一的主机号字段表示该网络上的所有主机。例如B类地址128.7.255.255表示“在网络128.7.0.0上的所有主机”。而A类地址0.0.0.35则表示“在这个网络上主机号为35的主机”。
B 类:B类地址的网络号字段有两个字节,但前面两位(1 0)已经固定了,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节网络号成为全0或全1,故 不存在减2的问题,但实际上B 类网络地址128.0.0.0是不指派的,而可以指派B类最小网络地址是128.1.0.0.因此B类地址可指派的网络数为2^14-1,B类地址的 每一个网络上的最大主机数是2^16-2.
C 类,有三个字节的网络号,最前面是3位(110 ) 还有21 位可以分配,同样192.0.0.0也是不指派的 可以指派的C类地址的最小是192.0.1.0 主机号 数量为2^8 -2。C 类地址空间可共有2^29 个地址,占整个 IP 地址的12.5%。
网络类别 可指派的网络数 第一个可指派的 最后一个可指派的
A 类 2^7-2 1 126
B 类 2^14-1 128.1 191.255
C 类 2^212-1 192.0.1 223.255.255
网络号 主机号 源地址使用 目的地址使用 代表的意思
0 0 可以 不可以 在本网络上的主机
0 host-id 主机号 不可以 可以 在本网络上的某个主机host-id
全 1 全 1 不可以 可以 只在本网络上进行广播(各路由器均不转发)
net-id(网络号) 全 1 不可以 可以 对net-id上的所有主机进行广播
127 2^14-1 非全0 非全1 可以 可以
IP 地址的特点
1.第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间以及查找路由表的时间。
2.当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多接口主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
3.用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。具有不同的网络号的网络需要使用路由器进行互联。
4.两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。

IP 地址与硬件地址

物理地址是数据链路层和物理层使用的地址,而 IP 地址是网络层和以上各层的使用的地址, 是一种逻辑地址,使用 IP 地址的 IP 数据包一旦就给类数据链路层内,就被封装成 MAC 帧 , MAC 帧在传送的时候使用的源地址和目的地址都是硬件地址,写在 MAC 帧的首部。因此在数据链路层看不见数据报的 IP 地址。
虽然在 IP 数据报中也有 源地址,但是路由器只根据目的站的 IP 地址的网络号进行路由选择。
MAC 帧在不同网络传送的时候,其 MAC 帧首部中的源地址和目的地址要发生变化。在转发的时候会进行改变,这个过程是 IP层看不见的。

4.地址解析协议

知道 IP地址,如何确定相应的硬件地址,使用的协议就是地址解析协议 ARP,作用就是从 IP 地址解析出在数据链路层使用的硬件地址。由于从送 ARP 分组使用的是 IP 协议,因此把 ARP 协议划归为 网络层。

ARP 协议的要点

1.地址协议 ARP 在主机 ARP 告诉缓存中存放着一个本局域网从 IP 地址到硬件地址的映射表,且这个表是可以动态更新的。
2.向本局域网发送 IP 数据报时首先先查表,有就写入 MAC 帧进行转发,如果没有就运行 ARP.
(1)在本局域网广播发送一个 ARP 分组,内容包括源 IP 地址和源物理地址和目的 IP 地址。
(2)本局域网的所有主机收到分组,IP 地址不是所求 IP 的不回应,是所求 IP 的,首先先在映射表存入对方的 IP 地址和硬件地址,接着将自己的 IP 地址和硬件地址写入 ARP 响应分组,进行应答,这个时候的分组是一个简单的 单播,只有源 IP 地址的主机收到。
3.如果不在同一个局域网,就找到本局域网的路由器的 Ip 地址和硬件地址,将 IP 数据报交给路由器,路由器从转发表中找到下一跳的路由 IP 和 硬件地址,然后交给下一跳的路由 去进行转发。
由于网络的异构,存在不同的硬件地址,主机不能完成转换工作,因此不能使用硬件地址进行直接的通信。

IP 数据报的格式

IP 数据报由首部和数据部分组成,前一部分是固定长度,共 20 字节,是所有 IP 数据报必须有的。后面是一些可选字段,长度是可以变的。

image

1.固定部分的各字段
(1)版本,4位,指 IP 协议的版本,即 IPv4 和 IPv6
(2)首部长度,4位,用4位二进制数代表的十进制数乘上4 字节就是首部的长度,比如固定长度即 20 字节,那首部长度就是 0101 ,这也是首部长度的最小值,最大为 1111 即 60 字节。 IP 数据报永远为4 字节的倍数。
(3)区别服务,8位,或者称服务类型。
(4)总长度,指首部和数据不部分的长度,16 位,由于数据链路层规定了 最大传送单元 MTU,因此如果传送的数据超过 MTU 时就需要进行分片处理。 IP 协议规定,在因特网中所有主机和路由必须能够接受长度不超过576 字节的数据报(假定数据长度 512 字节,加上最长的 IP 首部 60 字节,和 4 字节的富余量),如果长度超过 576 字节,就需要进行分片,这是总长度就是分片后每一个分片后的首部长度和该分片的数据长度的总和。
(5)标识,16位,每产生一个 IP 数据报就加1,但不是序号,分片的数据报这个标识是一致的可便于分片重装回原来的数据报。
(6)标志 3 位,第一位没用,第二位为 DF,指不能分片,当 DF= 0时才能分片。第三位为 MF 当 MF,为1 指的是还有后面分片,MF为0,指的是最后一个分片。
(7)片偏移,13,位,指的是在分片后该片在原分组中的相对的位置,片偏移就是以 8 个字节为单位,就是每个分片的长度一定是 8字节的整数倍。

举例:一个 3820 的字节的数据报(首部 20 字节,数据 3800 字节)分为 3 个 片
image
如果对数据片2 在进行分片(800和600),那么分片后的总长度为 820 和 620 字节,片偏移分别为 175 和 275(分片后前面多了 800 字节,因此相对于总数据部分是 增加了100 所以是175 + 100 = 275 )

(8)生存时间 TTL,8位,作用是防止数据报无法交付的时候在网路循环。每经过一个路由器,就把 TTL 减去 1,当 TTL 为 0 时。 TTL 现在的单位是跳数,指明在因特网中至多能够经过多少个路由,数据报在因特网传播的最大数值就是 255 ,若把 TTL ,的初始值,设置为1,就表示只能在本局域网中传送。
(9)协议 占8位,指的是携带的协议 是使用哪一种协议。
(10) 首部检验和 16位,只校验数据报的首部,不包括数据部分。每经过一个路由器都要重新计算。方法是将 IP 数据报划分为多个 16 位的序列,将检验和置为 16位 0,所有16 位数进行反码相加,结果写入数据报,接收同样的操作但是检验和是原先的结果,求和后如果是0 则保留,不是则丢弃。

IP 数据报的可变部分,可用来支持排错,测量和安全等,少用。

IP 数据报的转发分组流程

主机和路由器中有路由表,存储着目的主机所在网络和下一跳的地址(即应该交付的地址),默认路由是为了减少路由表所占用的空间和搜索路由表使用的时间如果一个网络只有一个路由器与因特网相连那就可以使用默认路由直接转发。当路由找到下一跳地址时使用 ARP 协议将 下一跳地址的硬件地址放在数据链路的 MAC 帧。
转发分组的算法:
(1)首先从IP数据报首部提取出目的主机的IP地址D,得出其所在的网络N。
(2)若N就是与此路由器直接相连的某个网络,则进行直接交付,不需要经过其它的路由器进行转发,直接把数据报交付给目的主机。否则就执行(3)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)
(4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)
(5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。否则执行(6)
(6)报告转发分组出错。

划分子网和构造超网

1.划分子网
在IP 地址两级的基础上增加一个“子网号网段”,变成三级 IP 地址 这种做法叫做划分子网,或子网寻址或子网的路由选择。
方法是在主机号借若干位作为子网号,最外部看仍是一个网络。

举例网络号为 145.13.0.0,假定子网号占8位,划分了三个子网:145.13.3.0,145.13.7.0,145.13.21.0. 145.13.0.0这个网络的路由在收到数据报后就转发给相应的子网。
image

2.子网掩码
IP 数据报无法看出网络是否划分了子网,需要使用子网掩码,子网掩码全1的位数为两级 IP 地址网络号的位数加上用来划分子网的网络号的位数,比如之前的 145.13.0.0,两级 IP 地址网络号的位数为 16 位,划分子网网络号的位数为8位所以子网掩码为 1111 1111 1111 1111 1111 1111 0000 0000 即255.255.255.0 三级IP 地址和 子网掩码逐位相与就是子网的网络地址 145.13.3.0 。

image

现在的因特网规定所有网络都要有子网掩码,没有划分子网的使用默认子网掩码即默认子网掩码中 1的位置和 IP 地址中网络号相对应。
3.使用子网掩码进行分组装发
划分子网的后路由表就包含了三项内容:目的网络地址,子网掩码和下一跳的网络地址。
(1) 从收到的分组的首部提取目的 IP 地址D。
(2) 先用各网络的子网掩码和D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
2.构造超网(无分类编址 CIDR)
IPv4 的地址已经耗尽,推出了一种无分类的编址的方法,叫无分类域间路由选择, CIDR, 主要的特点有两个:(1) 将32 位 Ip 地址划分为两部分:网络前缀和主机,还使用斜线记法或称 CIDR记法,即在 IP 地址前加上斜线 “/” ,然后写上网络前缀所占的位数。(2) CIDR 把网络前缀相同的划分为一个 CIDR 地址块。从地址块可以看出一个地址块中的最小地址和最大地址。
*IP地址:128.14.35.7/20= 10000000 00001110 0010/0011 00000111
*最小地址:128.14.32.0= 10000000 00001110 0010/0000 00000000
*最大地址:128.14.47.255= 10000000 00001110 0010/1111 11111111
因还有一些网络使用子网划分,CIDR 使用地址掩码,也称子网掩码,/20 的地址掩码为11111111 11111111 1111/0000 00000000
找到一个地址中最大最小地址的方法:将IP 地址转换为 32 位二进制的形式,将主机号的位数全置0 就是最小的地址,将主机号全置1就是最大的地址。
由于一个地址块有很多地址,在路由表中使用地址块来查找目的路由,这种地址的聚合称为路由聚合,路由聚合也成为构造超网。
2.最长前缀匹配
采用了 CIDR 方法后路由表就由网络前缀和下一跳的地址构成。这时查找路由就可能得到多个结果。因此采用的方法就是从匹配的结果中选择具有最长的网络前缀的路由,因为网络前缀越长,地址块越小,因而路由就越具体,最长的前缀匹配又称最长的匹配或最佳匹配。
为了减少查找时间通常采用二叉树的结构,就是二叉线索。

网际控制报文协议 ICMP

网际控制报文协议 ICMP 允许主机或路由器报告差错报文情况个提供有关异常情况的报告。ICMP 是因特网的标准协议,ICMP 报文是装在 IP 数据报中的,作为其数据部分。
1.ICMP 报文的种类
ICMP 差错报告报文和 ICMP 询问报文。 ICMP 报文有三个字段是统一的:类型,代码和检验和,这里的检验和是检验整个 ICMP 报文的,因为 IP 数据报的首部校验和只是检验首部。
ICMP 差错报告报文有5 种类型:
1.目的不可达:当路由器找不到路由或者主机不能交付IP数据报时,就丢弃IP数据报,路由器或者主机向IP数据报的源站发送“目的不可达”报文。 目的不可达的情况有:主机不可达;网络不可达;协议不可达(IP数据报要交付的协议TCP未运行);端口不可达;IP数据报需要分片,但DF标志已设置为1或源路由选择失败等。
2.源站抑制:IP没有流量控制机制。路由器和主机的缓冲区有限,如果发送方发送数据的速率过快。将会导致缓冲区产生溢出。这时路由器或主机只能把某些IP数据报丢弃。 源站抑制报文的应用:给IP协议增加了一种流量控制功能。
3.时间超过:可分为两种情况,第一种是TTL=0:当IP数据报通过路由器时,IP首部的TTL字段减一,当路由器发现收到IP数据报的TTL=0时,就丢弃该报文,同时该路由器向源站点发送ICMP超时报文。第二种是分片不能重组:如果组成IP数据报的所有分片未能在规定的时限内达到目的主机,就不能进行分片的重组,则目的主机会丢弃已经收到的分片,并向源站点发送ICMP超时报文
4.参数问题:如果路由器或目的主机发现IP数据报首部的某个字段不正确时,就丢弃该数据报并向源站发送ICMP参数问题报文。
5.改变路由(重定向):在特定情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由,路由器也会把初始数据报向它的目的转发。
但是以下几种情况除外:对ICMP差错报告报文不再发送ICMP差错报告报文;对第一个分片的数据报片的所有后续数据报片都不发送发送ICMP差错报告报文;对具有多播地址的数据报都不发送ICMP差错报告报文;对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
1.ICMP询问报文有两种回送请求和回答,时间戳请求和回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
ICMP时间戳请求允许系统向另一个系统查询当前的时间。该ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间只能提供秒级的分辨率。请求端填写发起时间,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。大多数的实现是把后面两个字段都设成相同的值。

ICMP 应用

ICMP 一个重要的应用就是分组网间探测 ping ,用来测试两个主机之间的连通性,ping 使用了 ICMP 回送请求和回送回答报文,ping 是应用层直接使用网络层的 ICMP ,没有通过运输层的 TCP h或者 UDP .
Traceroute 是用来跟踪一个源点到终点的路径。
TraceRoute从源主机向目的主机发送一连串的IP数据包,数据报中封装的是无法交付的UDP用户数据报。第一个P1的生存时间TTL设置为1。当P1达到路径上的第一个路由器R1时,R1先收下它,接着把TTL的值减1。由于TTL的值等于零了,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达路由器R1,R1收下,把TTL减1再转发给路由器R2。R2收到P2时TTL为1,但减1后TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。TraceRoute每次将送出的报文的TTL加1来发现另一个路由器,这样一直继续下去,当最后一个数据报刚刚到达目的主机的时候,数据报的TTL是1。主机不转发数据包也不把TTL值减1。目的主机要向主机发送ICMP终点不可达差错报告报文。这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的IP地址,以及到达其中的每一个路由器的往返时间。

因特网的路由选择协议

1.基本的概念

1.路由算法,即以哪种算法来获得路由表中的各项目,以算法能够随网络的通信量或拓扑自适应进行调整划分可分为静态路由选择策略(非自适应路由选择)和动态路由选择策略(自适应路由选择)。
2.分层次的路由选择协议
因特网将整个互联网划分为许多较小的自治系统(AS),一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。因特网把路由选择协议划分为两大类:
内部网关协议IGP 即在一个自治系统内部使用的路由选择协议。
外部网关协议EGP 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
自制系统之间的路由选择叫做域间路由选择,而自制系统内部的路由选择叫做域内路由选择。

image

3.内部网关协议 RIP(距离向量协议)

1.工作原理:RIP 是一种分布式的居于距离向量的路由选择协议,优点是简单。RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个网络的距离(这是一组距离即距离向量)。RIP 的距离也称为跳数,经过一个路由,跳数就加 1,且只允许一条路径最多只能包含 15 个路由器,等于 16 时就相当于 不可达,因此 RIP 协议只适用于小型企业。RIP 不能在两个网络之间选择多条路由,只会选择具有较少路由器的路由。
2.RIP 协议的特点:
1.仅和相邻的路由器交换信息。
2.路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
3.按照固定的时间间隔交换路由的信息。
路由表中最主要的信息就是到某个网络的距离以及应该经过的下一跳的地址,路由表更新的原则就是找到每一个网络的最短距离,这种算法称为距离向量。
3.距离向量算法
1、对地址为X的 路由器发过来的路由表,先修改此路由表中的所有项目:把”下一跳”字段中的地址改为X,并把所有”距离”字段都加1。
2、对修改后的路由表 中的每一个项目,进行以下步骤:
2.1、将X的路由表(修改过的),与S的路由表的目的网络进行对比。 若在X中出现,在S中没出现,则将X路由表中的这一条项目添加到S的路由表中。
2.2、对于目的网络在S和X路由表中都有的项目进行下面步骤
2.2.1、在S的路由表中,若下一跳地址是x,则直接用X路由表中这条项目替换S路由表中的项目。
2.2.2、在S的路由表中,若下一跳地址不是x,若X路由表项目中的距离d小于S路由表中的距离,则进行更新。
3、若3分钟还没有收到相邻路由器的更新表,则把此相邻路由器记为不可到达路由器,即把距离设置为16。

image
image
image
image
image

通过这种方式使得每一个路由器到每一个目的网络的路由都是最短的(跳数最少),虽然交换了信息但由于每一个路由器的位置不同有路由表的也是不同的。
RIP 报文格式
RIP 使用运输层的用户数据报 UDP 进行传送。

image

命令字段是表示报文是那种类型,RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议(例如 IP 地址)。路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
RIP 优缺点:RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。RIP 协议最大的优点就是实现简单,开销较小。RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

3.内部网关协议 OSPF (链路状态协议)

1.(开放最短路径)OSPF 协议的基本特点
使用最短路径算法 SPF ,OSPF 的最主要的特征就是使用分布式的链路状态的协议
向本自治系统中所有的路由器发送信息,使用的方法就是洪泛法,就是路由器向所有输出接口发送数据,接收的路由器再向所有的输出接口发送(除了接收的接口)。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点
为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。

image

使用层次区结构的区域划分,有主干区域(里面的路由叫主干路由,3,4,7是区域边界路由,6为自治系统边界路由)
OSPF 不是用UDP 而是直接用 IP 数据报。
OSPF 的五种类型
类型1,问候(Hello)分组。
类型2,数据库描述(Database Description)分组。
OSPF 的基本操作

image

4.外部网关协议 BGP

外部网关协议(边界网关协议BGP),力求一条能够到达目的地网络的且比较好的路由,采用了路径向量路由选择协议。
同一个内部网关协议主要是设法使数据报在一个 AS 系统中尽可能的有效的从源站传送到目的站,而外部网关协议需要考虑因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。自治系统之间的路由选择必须考虑有关策略,因为自治系统内部可能有其他的要求。
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人”,一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
交换路径向量

image
image

在BGP 开始运行的时候BGP 的邻站是交换整个 BGP 的路由表,以后只在发生变化的时候进行更新。
BGP 的四种报文
(1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
(4) 通知(NOTIFICATION)报文,用来发送检测到的差错。
在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告

5.路由器的构成

路由器的结构可以划分为路由选择和分组转发,“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由

6.IP 多播

发送一次多播数据,路由器 R进行转发时复制三个副本,当到达局域网的后,因为局域网具有多播功能,所以不需要进行复制分组在局域网上的主机都能收到这个分组。

image

因为有多个主机会受到一个多播数据,因此不能在一个多播数据报中写入主机的 IP 地址,而是写入一个多播组的标识,然后让这个多播组的主机的 IP 地址和多播组的标识符进行关联。
多播组的标识符就是 IP 地址的D类地址,显然多播地址只能适用于目的地址而不能适用源地址,多播数据报不产生 ICMP 报文所以不能 Ping ,且不保证所有的组内成员都收到。

IP 多播的两种协议(网际组管理协议 IGMP 和 多播路由选择协议)

为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP ,IGMP是让链接在本地局域网上的多播路由器知道本局域网上是否有主机参加或者推出了某个多播组 。
连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
IGMP 的工作分为两个阶段
第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
多播路由选择协议
多播路由选择实际上就是要找出以源主机为根结点的多播转发树,在多播转发树上的路由器不会收到重复的多播数据报。对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。
转发多播数据报的时候使用了一下三种方法
(1) 洪泛与剪除
(2) 隧道技术
(3) 基于核心的发现技术

7.虚拟的专用网 VPN 和网络地址转换 NAT

产生原因:机构内部采用本地划分的专用IP地址,不接入因特网通信,但是有时又需要通信,这时 IP 地址就会冲突。因此指明了一些专用地址只用于内部通信
使用专用地址规定,因特网中路由器对目的地址是专用地址的数据报一律不转发,直接丢弃。
采用专用 IP 地址互联的网络就称之为 专用互联网 或 本地互联网。
相隔很远的专用网之间的通信,必须经过因特网的时候,有两种方式:
1、租用电信公司专用线路为本机构专用;
2、利用公用因特网最为通信载体。
Virtual Private Network,VPN 虚拟专用网
就是利用公用因特网进行 不同专用网之间通信的网络。
VPN 网络上的数据都是进行加密传输的。使用IP隧道技术实现虚拟专用网。
隧道技术:是指两个专用网路由器之间的通信,逻辑上看上去是一条直接相连的点对点链路。但实际上可能是需要经过多个网络或路由器的。每一个专用网都至少有一个拥有全球唯一ip地址的路由器,这样才能够接入因特网。

网络地址转换 NAT

需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IP。所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IP 才能和因特网连接。
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
参考资料《计算机网络》 –谢希仁

猜你喜欢

转载自blog.csdn.net/m0_38089373/article/details/80642426