计算机网络学习笔记-网络层(一)

一 网络层提供的两种服务

     网络层究竟是采用“面向连接”还是“无连接”经过长期的争论。最核心的问题——可靠交付由网络层完成,还是由端系统完成。

1.面向连接的网络层

计算机网络学习笔记-网络层(一)

图 1.1虚电路服务

    因为电信网的成功,所以有人提出学习电信网的经验——电话机通信前要建立一条真正的物理连接。类似的,如图1.1在网络层中 H1 与H2之间:(1)建立一条虚拟的电路(Virtual Circuit);(2)配合可靠传输的网络协议;(3)在分组首部再加上虚电路的编号。就可以让分组无差错的按顺序的网络通信。

2. 无连接的网络层

计算机网络学习笔记-网络层(一)

图1.2 IP数据报

     因为计算机的差错处理能力,所以有人认为需要有全新的设计理念。在网络层传输IP数据报,采用灵活的、无连接的、尽最大努力交付的方式。即网络层传输时不建立连接,独立传输IP数据报,所传输的IP数据报可能存在错误、丢失、重复、失序、超时等问题。如图1.2在网络层中 H1 与H2之间传输IP数据报, H1可以根据网络情况选择路由,有多条路径到达H2,显然在传输过程中可能存在着IP数据报丢失的问题。

启示:
      创新的设计理念——无连接的网络层,带来了不同凡响的今日互联网规模。这样设计的好处:(1)网络传输效率更高,运行方式更灵活,能够适应多种应用;(2)让路由器相比电信交换机简单很多,成本较低;(3)可靠传输由网络的主机中的运输层负责(包括差错处理、流量控制等)。

3.电路交换、 报文交换、 分组交换

     电话机采用的是电路交换进行通信,见下图1.3,在通话期间,用户始终占用着通信电路。

计算机网络学习笔记-网络层(一)

图1.3

  • 电路交换——整个报文的比特流从源点到终点。
  • 报文交换——整个报文传输到节点后,全部存储,再找转发表转发到下一个节点。
  • 分组交换——单个分组(报文的一小部分)传送到节点后,存储分组,再找转发表转发到下一个节点。

    计算机网络学习笔记-网络层(一)
    图1.4

         连续传输大量数据,且传送时间大于建立连接时间时,采用电路交换效率更高。报文交换和分组交换不提前建立连接,传输突发数据具有更好的网络信道利用率。分组比报文长度小,因此分组交换时延更小,更灵活。

二 网际协议IP

      看TCP/IP体系的命名就知道IP协议的重要性。先从整体上清楚相关的协议,与IP协议配套的还有三个:

  • ARP(Address Resolution Protocol)地址解析协议
  • ICMP(Internet Control Message Protocol)网际控制报文协议
  • IGMP((Internet Group Management Protocol)网际组管理协议
    由图2.1可以看出这4个协议之间的关系,ICMP和IGMP在上层表示要使用IP协议,ARP协议在下层,IP协议经常要使用ARP。
    计算机网络学习笔记-网络层(一)

    图2.1

1.虚拟互联网络

     为了让世界上不同的网络相互连接,需要使用中间设备。

  • 转发器(repeater):用于物理层。
  • 网桥(brige),典型的是以太网交换机:用于链路层。
  • 路由器:用于网络层。
  • 网关:用于网络层以上,连接不兼容的系统需要在高层进行协议的转换。
         注意物理层和网桥的使用只是让网络扩大了还是一个网络,一般不叫做网络互联。
         虚拟互联:利用IP协议让性能各异的网络在网络层看起来好像是一个统一的网络,IP虚拟网简称IP网。IP网上的主机进行通信时,就像在一个网络进行一样,不用去管各网络具体的异构情况,举例如下图。
         互联网上的主机 H1向 H2发送IP数据报的情况。H1查看自己的路由表发现目的主机不在本网络上,交付给路由器R1,R1查看路间接交付给R2,一直转发到R5把IP数据报直接交付给H2,中间的网络经过有线链路网、卫星链路网、无线局域网。
    IP数据报在网络层的传输路径:H1→R1→R2→R3→R4→R5→H2
    计算机网络学习笔记-网络层(一)
    图2.2

2.分类的IP地址

      整个的因特网是一个单一的、抽象的网络,而IP地址为因特网上的主机和路由器分配一个全世界范围的32位的标识符。IP地址的编址经过三个阶段:

  • 分类的IP地址
  • 子网的划分
  • 构成超网

      分类的IP地址定义为:{<网络号>,<主机号>},网络号在因特网上唯一,主机号在网络号所指向的网络范围唯一。
计算机网络学习笔记-网络层(一)

图2.3

     为了使用方便,通常采用点分法进行表示,如128.11.3.6。
计算机网络学习笔记-网络层(一)
图2.4

A类地址:272=126个网络号,减去2个网络号是因为(1)00000000代表本网络,是保留地址;(2)01111111作为本地软件环路测试本主机的进程之间的通信而用。有2242=16777214个主机号,减2:(1)全0表示本主机所连接的网络地址;(2)全1表示该网络上的所有主机,AIP=231232=50%
B类地址:2141=16383个网络号,减去1个网络号是因为128.0.0.0是不指派的保留地址。有2162=65534个主机号,同A类一样减去全0和全1的主机号。BIP=230232=25%
C类地址:2211=2097151个网络号,减去1个网络号是因为192.0.0.0是不指派的保留地址。有282=65534个主机号,同A类一样减去全0和全1的主机号。CIP=229232=12.5%
IP地址的特点:

  • 每一个IP地址由网络号和主机号组成。(1)方便管理,IP地址管理机构分类IP只分配到网络号;(2)减少路由表所占空间和查找路由表时间,路由器仅根据目的主机连接的网络号来转发分组。
  • IP地址标志一个主机和一条链路的接口,路由器至少连接两条链路,有两个以上IP地址,它属于多归属主机。
  • 因特网平等的对待每一个IP地址。
         注意:现在都使用无分类的IP地址进行路由选择,分类的IP地址已经成为历史。

3.IP地址与MAC地址


MAC(物理)地址:硬件地址放在MAC帧首部,固化在网卡中ROM上,数据链路层和物理层使用的地址。
IP地址:逻辑地址,放在IP数据报首部,是网络层以上各层使用的地址。
具体见下图
计算机网络学习笔记-网络层(一)

图2.5

  • 网络层只能看见IP数据报,IP数据报要经过路由器R1和R2两次转发,源地址和目的地址一直是IP1、IP2。网络层屏蔽了下层的细节,在网络层讨论问题,可以使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信。
  • 局域网的数据链路层,只能看到MAC帧。IP数据报被封装到MAC帧中,MAC帧的源地址和目的地址是变化的,见图2.5。
  • 路由器只根据目的IP地址进行路由选择。

4.地址解析协议ARP

     知道IP地址后如何找到对应的MAC地址就需要ARP协议了。在每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
     主机A向本局域网的主机B发送IP数据报时,如果ARP高速缓存中有主机B的IP地址对应的硬件地址,如果有就把这个硬件地址写入MAC帧,局域网再把该MAC帧发往此硬件地址。如果没有,主机A运行ARP,寻找主机B的硬件地址,见下图。
计算机网络学习笔记-网络层(一)

图2.6

(1)ARP请求分组:A的ARP进程广播在局域网中发送ARP请求分组(写入了A的硬件地址),本局域网的主机运行的ARP进程都收到这个ARP请求分组。
(2)ARP响应分组:本局域网的主机B与请求分组的IP地址一致,将A的硬件地址到IP地址的映射写入B的ARP cache,并向主机B单播发送ARP响应分组,并在分组里写入自己的硬件地址。A收到响应分组后在自己的ARP cache中写入B的IP地址到硬件地址的映射。
ARP四种典型情况:
计算机网络学习笔记-网络层(一)

图2.7

  • H1→H2:H1把IP数据报发送到本网络上H2,H1发送ARP请求分组(网1上广播),找到目的主机H2的硬件地址。
  • H1→H3:H1把IP数据报发送到另一个网络上H3,H1发送ARP请求分组(网1上广播),找到路由器R1的硬件地址,剩下的工作由R1完成。
  • R1→H3:R1把 IP 数据报转发到本网络上的一个主机H3,R1发送ARP请求分组(网2上广播),找到目的主机H3的硬件地址。
  • R1→H4:R1把 IP 数据报转发到另一网络上的一个主机H4,R1发送ARP请求分组(网2上广播),找到路由器R2的硬件地址,剩下的工作由R2完成。

5.IP数据报的格式

一个 IP 数据报由首部和数据两部分组成。首部为固定的 20 字节,是所有 IP 数据报必须具有的,首部的固定部分的后面是一些可选字段,其长度是可变的。
计算机网络学习笔记-网络层(一)

图2.8

  • 版本——占 4 位,指 IP 协议的版本 IPv4的版本号为4。
  • 首部长度——占 4 位,可表示的最大数值是 15 个单位(以 4 字节为单位),因此 IP 的首部长度的最小值为0101=5(4字节)=20字节,大值是 1111=15(4字节)=60 字节,不够4字节的单位时可以进行填充。
  • 区分服务——占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 。
  • 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过数据链路层中数据帧的最大传送单元 MTU(1500字节),超过进行分片。IP协议规定,在因特网中路由器和主机,必须能接受不超过576字节的数据报,再发送超过576字节的数据报时,还应了解目的主机能否接受,否则还要进行分片。分片时数据报的“总长度”表示每一个分片的首部长度+分片的数据长度。
  • 标识(identification)——占 16 位,
    当数据报超过网络的MTU进行分片时,可以对产生的数据报进行计数,并复制到所有的数据报片的标识字段,相同标识字段的分片最后可以重装成为原来的数据报。
  • 标志(flag)——占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF= 1 表示后面“还有分片”。MF=0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF= 0 时才允许分片。
  • 片偏移——占 13 位:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位,分片的长度一定是8字节的倍数。
  • 生存时间——占 8 位:记为 TTL (Time To Live),原本单位为秒,后经过发展,改为数据报在网络中可通过的路由器数的最大值(最大跳数),每经过一个路由器减1,减到0则丢弃。设置为1时,表示数据报只能在本局域网中传送。
  • 协议——占 8 位:指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程。
  • 首部检验和——占16位:字段只检验数据报的首部不检验数据部分,见下图。
    计算机网络学习笔记-网络层(一)
  • 源地址和目的地址都各占 32位。
  • IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。

6.IP层转发分组流程

计算机网络学习笔记-网络层(一)

图2.9

  1. 路由表存储的是主机所在的网络地址,这样做大大减小了路由表的存储量,试想每个网络中有100000个主机,如果每个主机的IP地址都存储。
  2. 互联网上转发分组从一个路由器转发到下一个路由器。
  3. 根据目的网络地址就能确定下一跳路由器,这样做的结果是: IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

两种特殊的路由器
特定主机路由器:这种路由是为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
默认路由器:可以减少路由表所占用的空间和搜索路由表所用的时间。默认路由在主机发送 IP 数据报时往往更能显示出它的好处。如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。
计算机网络学习笔记-网络层(一)

图2.10

注意:
IP 数据报的首部只有源地址IP和目的地址IP,当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
分组转发算法:
(1)从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2)若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6)报告转发分组出错。

三 划分子网和构成超网

1.划分子网

分类的IP地址不够合理主要体现在以下几个方面:
(1)IP空间的利用率,例如10base-T以太网规定的最大节点数只有1024个,如果申请C类地址(254)个不够用,申请B类地址(65534)太过浪费。
(2)为每一个物理网络分配网络号会使路由表太大从而使网络性能变坏。
(3)两级IP地址不够灵活,如果一个公司想要开通新的网络,必须要去因特网管理机构申请新的网络。
为了解决上述的问题,IP地址将分类的IP地址中的主机号划分为子网号+主机号,对内不管有多少个子网,对外仍然是一个网络,划分子网后的IP地址定义为:{<网络号>,<子网号>,<主机号>}。
举例:
计算机网络学习笔记-网络层(一)

图3.1

说明:
B类地址145.13.0.0为网络号,主机中的前8位为子网号。

  1. 凡是从其他网络发送给本网络(145.13.0.0)某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 145.13.0.0,先找到连接在本网络上的路由器R1
  2. 然后此路由器在收到 IP 数据报后,再按目的网络号 145.13.0.0 和子网号 145.13.3.0、 145.13.21.0、 145.13.7.0找到目的子网。
  3. 最后就将 IP 数据报直接交付目的主机。

假定数据报的目的地址是:145.13.3.10已经到达R1,如何转发到子网145.13.3.0,这就需要子网掩码了,具体见下图,可以得出(IP地址)AND(子网掩码)=网络地址。
计算机网络学习笔记-网络层(一)

图3.2


当不划分子网时,A类地址默认子网掩码是255.0.0.0,B类地址默认子网掩码255.255.0.0,C类地址默认子网掩码255.255.255.0。

2.使用子网分组的转发

  • 路由器和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
  • 路由器的路由表中的每一个项目,除了目的网络地址外,还必须同时给出对应的子网掩码。
    举例:见下图
    计算机网络学习笔记-网络层(一)
    图3.3
  • 源主机H1先将本子网的子网掩码与目的地址128.30.22.138相与得出子网地址128.30.33.128不等于H1所在的网络地址,所以交付给R1
  • 路由器 R1收到分组后就用路由表中逐行进行子网掩码相与并找到相匹配的网络地址(第二行)。
  • 找到目的网络后(子网2),R1把分组从接口1交付到主机H2

划分子网的路由转发分组算法:
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付(需借助ARP)。否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。

3.构成超网(CIDR)

划分子网后依然存在的问题:

  • B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!
  • 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
  • 整个 IPv4 的地址空间最终将全部耗尽。
          最后一个问题通过成立IPv6进行解决,前两个问题通过CIDR(Classless Inter-Domain Routing)无分类域间路由选择解决。 CIDR将IP地址定义为{<网络前缀>,<主机号>}or x.x.x.x/y(y表示网络前缀,x.x.x.x表示IP地址) 。
          举例:128.14.35.7/20=10000000 00001110 0010(网络前缀) /0011 00000111(主机号), 地址所在的地址块:从10000000 00001110 0010/0000 00000000~10000000 00001110 0010/1111 11111111,
    CIDR特点:
  • CIDR不再有A类,B类,C类地址和划分子网的概念,通过灵活的网络前缀解决IP地址问题。但是仍然可以指定若干位子网号,在本单位内部根据需要划分一些子网。
  • CIDR把网络前缀相同的连续IP组成一个“CIDR地址块”,只要知道CIDR块中的任何一个地址,就可以知道该地址块的起始和终止地址,以及地址块中的地址数。
  • 一个CIDR地址块可以表示传统分类的许多个地址,使得路由表中的一个项目可以表示传统分类地址的很多个路由。路由聚合也称构成超网。
CIDR前缀长度 点分10进制 包含的地址数 相当于分类的网络数
/13 255.248.0.0 219=512K 23=8个B类,23×28=2048个C类
/14 255.252.0.0 256K 22=4个B类,22×28=1024个C类
/27 255.255.255.224 32 1/8个C类

可以看出CIDR含可以包含多个分类的B类或C类地址,而分类的地址中只能用8/、16/、24/划分很不灵活。
举例:
计算机网络学习笔记-网络层(一)
可以看出ISP中含有64个C类地址,现在地址聚合路由表只有一个地址的信息。
最长前缀匹配
      路由表中只含有下一跳地址和网络前缀,匹配解决选择具有最长网络前缀的路由。
举例:
收到的分组的目的地址 D = 206.0.71.128
路由表中的项目:206.0.68.0/22 (ISP)
206.0.71.128/25 (四系)
与22位和25位个1相与后都匹配,以25位的为主。
二叉线索查找路由表
寻找最长匹配的方法,使得路由表查找复杂,查找一个B类地址要16次,因此采用了二叉线索查找路由表,在路由表中存放一种层次的数据结构,如下图。
计算机网络学习笔记-网络层(一)
通过唯一前缀,构造二叉线索,再查找时与唯一前缀匹配就行了,同时将寻找匹配的目的地址(唯一前缀)与该叶节点的子网掩码相与,看是否与对应的网络前缀相同。相同就转发,不相同则丢弃。
二叉树节点提供了一种可以快速在路由表找到匹配的叶节点机制,但是否和网络前缀匹配,还要和子网掩码进行一次逻辑与运算。
为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

四 ICMP

网际控制报文协议ICMP(Internet Control Message Protocol)是IP协议,使用ICMP的原因:

  • 为了更有效转发IP数据报,提高交付成功的机会。
  • ICMP报文作为IP层数据包的数据,加上数据报的首部,组成IP数据报发送出去。
  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

1. ICMP报文格式

ICMP报文分为 ICMP差错报文ICMP询问报文,他们前四个字节都为类型、代码和检验和(检验和字段用来检验整个ICMP报文,因为IP数据报的首部检验不能检验IP数据报的内容),其格式如下图。
计算机网络学习笔记-网络层(一)
ICMP差错报文:

  • 终点不可达
        路由器或主机无法交付IP数据报向源点发送终点不可达报文。
  • 源点抑制
        路由器或主机由于拥塞而丢弃IP数据报时,向源点发送源点抑制报文。
  • 时间超过
        当路由器收到生存时间为0的IP数据报时,丢弃数据报并向源点发送时间超过报文;当终点在预先规定的时间内不能接收到一个数据报的全部数据报片时,就将已收到的数据报片全丢弃向源点发送时间超过报文。
  • 参数问题
        路由器或主机收到数据报首部有的字段值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  • 改变路由
        路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。

具体的格式如下:
计算机网络学习笔记-网络层(一)
注意:
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
对具有多播地址的数据报都不发送 ICMP 差错报告报文。
对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP询问报文:

  • 回送请求和回答
        ICMP回送请求报文是主机或路由器向特定的目的主机发出的询问。收到此报文的主机发送ICMP回送回答报文。用于测试目的站是否可达以及了解其有关状态。
  • 时间戳请求和回答
        ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。用于进行时钟同步和测量时间。

2. ICMP应用举例

PING:全称Packet InterNet Groper,分组网间探测,测试两个主机之间的连通性,应用层直接使用网络层ICMP回送请求和回送回答报文。
计算机网络学习笔记-网络层(一)
可以看出发送了4个回送请求报文,丢失一个,返回3个。

tracert:原理是源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。
第一个数据报P1生存时间TTL设置为1。当P1达到路径的第一个路由器时,路由器R1把它收下,把TTL的值减1,R1把P1丢弃并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去,当达到最后的目的主机时,数据报TTL为1。主机不转发数据报,也不把TTL减1,但是因为主机不能接受该UDP用户数据报,因此需要向源主机发送ICMP终点不可达差错报告报文。
计算机网络学习笔记-网络层(一)
三个时间表示源主机要发送三次同样的IP数据报。

五 因特网路由选择协议

1. 路由选择的几个概念

理想的路由算法

  • 算法必须是完整正确的。正确——沿着路由表的指引一定能达到目的网络和目的路由。
  • 算法在计算机上运行简单。不使网络增加过多的额外开销。
  • 算法能适应通信量和网络拓扑变化。能根据通信量的变化,自适应均衡负载链路,当节点、链路故障时或修理好后,算法能及时改变路由,可称为“自适应性”、“稳健性”。
  • 算法应该具有稳定性,在网络通信量和网络拓扑相对稳定的情况下,算法应收敛一个相对稳定解,而不是一直变化。
  • 算法应该是公平的。
  • 算法应该是最佳的(平均时延小、网络的吞吐量大),所谓的最佳只是相对于某一个特定要求的合理选择,对于某些网络,可靠性更重要。

两种路由选择策略
根据是否能自适应网络的通信量或拓扑变化,分为静态、动态路由选择策略:

  • 静态路由选择策略—— 即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
  • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

分层次的路由选择协议
主要采用自适应的、分层次的路由选择协议。之所以选用分层次的路由选择协议:

  • 因特网的规模非常大,让所有的路由器都知道网络怎么到达,路由表太大造成因特网通信链路饱和。
  • 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议,但同时还希望连接到因特网上

自治系统AS
即autonomous system,在单一的技术管理下的一组路由器,使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由(现在可使用多种内部路由选择和量度),同时用一种单一和一致的路由选择策略以确定分组在 各AS之间的路由。

两大路由选择协议

  • 内部网关协议 IGP (Interior Gateway Protocol) 一个自治系统内部使用的路由选择协议,也叫域内路由选择协议(interdomain routing protocol)。如RIP和OSPF。
  • 外部网关协议EGP (External Gateway Protocol) 自制系统之间使用的路由协议,也叫域间路由选择协议(intradomain routing protocol) 。如BGP-4。
    计算机网络学习笔记-网络层(一)

2. 内部网关协议

RIP

工作原理:RIP 是一种分布式的基于距离向量的路由选择协议,维护网路中每一个路由到其他每一个目的路由的距离记录。
说明:

  • 距离=跳数(hop count),从一路由器到直接连接的网络的距离定义为 1,从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
  • RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。
  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个最小路由跳数,哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP三要点

  • 仅和相邻路由器交换信息。
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  • 按固定的时间间隔交换路由信息,例如,每隔 30 秒。

路由表建立

  • (1)路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
  • (2)每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
  • (3)经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。

该过程收敛(convergence)较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。

距离向量算法
它的基础是Bellman-ford算法(ford-fulkerson算法)要点是:把最短路径A→B(X为其中的节点),拆为A→X和B→X,他们也为最短路径。

  • (1)收到相邻路由器(其地址为 X)的一个 RIP 报文,先修改此 RIP 报文中的所有项目:把“下一跳”字段中的路由器地址都改为 X,并把所有的“距离”字段的值加 1(本路由的更新的前提)。设修改后项目的目的网络N,距离d,下一跳路由器地址X。
  • (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
    if(路由表没有目的网络N):把该项目添加到路由表(新的目的网络所以加入路由
    else:查看路由表的下一跳地址
         if(路由表下一跳路由地址是X):收到的项目替换原路由的项目(到目的网络最新消息所以更新
         else
             if(收到项目中的距离小于路由表中的距离):更新(路由距离更短,所以更新
             else :不更新(路由距离更长,更新没好处,所以不更新
  • (3)若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(表示不可达)。
  • (4)return。

RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。

RIP报文
以下为RIP2的报文,它是支持变长子网掩码和无分类域间路由选择协议,由首部和路由部分组成。
计算机网络学习笔记-网络层(一)

  • RIP2首部占4个字节,其中命令字段指出报文的意义。
  • RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议(可以采用非TCP/IP协议)。
  • 路由标记填入自治系统的号码(ASN),这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离

RIP协议的优缺点
优点:RIP 协议最大的优点就是实现简单,开销较小。
缺点:

  • (1)当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。(坏消息传的慢)
    正常时:
    计算机网络学习笔记-网络层(一)

计算机网络学习笔记-网络层(一)
出错误时:
计算机网络学习笔记-网络层(一)
计算机网络学习笔记-网络层(一)
计算机网络学习笔记-网络层(一)
计算机网络学习笔记-网络层(一)

  • (2)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)
  • (3)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加

OSPF
为了克服RIP的缺点,开发了OSPF(Open Shortest Path First)——开放最短路径优先协议。最重要的特点是使用了链路状态优先协议而不是RIP的那样的距离向量协议:

  • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。RIP仅仅是向自己相邻的几个路由器发送信息。
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。“度量”表示费用、距离、时延、带宽,这个度量也称为代价。对于RIP协议发送的信息是到所有网络的距离和下一跳路由器。
  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。 RIP无论网络拓扑有无发生变化,路由器之间都要定期更换路由表信息。

链路状态数据库(link-state database)

  • 各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
  • OSPF每一个路由器都知道全网有多少个路由器,记忆哪些路由器时相连的,其代价是多少,用链路状态数据库构造出自己的路由表。RIP的路由器只有经过一条又一条的路由器才能知道全网的拓扑结构。
  • OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。

OSPF区域

  • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过 200 个。
  • 划分区域的好处就是将利用洪泛法交换链路状态信息的范围限制在区域内,一个区域内的路由只知道本区域网络拓扑情况,而不知道其他区域的。
  • OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。

    主干路由器:在主干区域的路由器:R3、R4、R5、R6、R7;其中主干区域中的R6负责和本自治系统外的其他系统交换路由,称为自治系统边界路由器
    计算机网络学习笔记-网络层(一)
    区域边界路由器:在主干区域和其他区域交集的路由器:R3、R4、R7
    计算机网络学习笔记-网络层(一)

采用分层次划分区域的方法交换信息增多,协议更加复杂,但是每一个区域信息的通信量大大减小,更适用于规模大的自治系统。

OSPF报文
OSPF 不用 UDP 而是直接用 IP 数据报传送。OSPF 构成的数据报很短。这样做可减少路由信息的通信量;可不必将长的数据报分片传送。

计算机网络学习笔记-网络层(一)
OSPF的特点:

  • (1)OSPF允许管理员给每条路由指派不同的代价。根据不同类型的业务计算出不同的路由,具有RIP所没有的灵活性。
  • (2)如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。RIP则只有一条路径
  • (3)所有在 OSPF 路由器之间交换的分组都具有鉴别的功能,保证只在可信赖的路由器之间交换链路状态信息。
  • (4)支持可变长度的子网划分和无分类编址 CIDR。
  • (5)每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。

    OSPF的五种类型:

  • (1)问候(Hello)分组,用来发现和维持邻站的可达性。

  • (2)数据库描述(Database Description)分组,向邻站给出自己的链路状态数据库中所有链路状态的摘要信息。
  • (3)链路状态请求(Link State Request)分组,向对方请求发送某些链路状态项目的详细信息。
  • (4)链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
  • (5)链路状态确认(Link State Acknowledgment)分组,对链路更新分组的确认。
    问候分组:路由器每隔10S更换一次分组,能确知哪些邻站是可达的,可达邻站的链路状态信息才能存入链路状态数据库。40S没有收到相邻路由器发来的问候分组,认为不可达,立即修改链路状态库,重新计算路由表。OSPF分组在网络中绝大部分是问候分组。
    其他四个分组:主要用于链路状态数据库同步。同步是指让相连的路由器的链路状态数据库内容是一样的。

OSPF工作模式
当一个路由器开始工作时,它通过问候分组得知它相邻的路由器在工作,以及数据发送到相邻路由器的代价。如果所有的路由器都把自己的本地链路状态信息进行全网广播,只有将这些链路状态信息综合起来才得出链路状态数据库,这样的代价太高。
OSPF采取的办法:

  • (1)每一个路由器用数据库描述分组和相邻路由器交换本地数据库已有的链路摘要信息(哪些路由器的链路信息已经写入链路数据库了)。
  • (2)交换数据描述分组后,路由器使用链路状态请求分组,向对方请求发送自己缺少的某些链路状态项目的详细信息。
  • (3)通过一系列的分组交换,全网的同步链路数据库就建立了。
    计算机网络学习笔记-网络层(一)
    洪泛法更新分组
    只要有一个路由器的链路状态发生了变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。
  • t1→t3时刻,由R开始依次发出链路状态更新分组,要将其上有路由器除外。t4时刻发送确认分组。
    计算机网络学习笔记-网络层(一)
    OSPF 的其他特点

  • OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。

  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
  • OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

3. 外部网关协议

BGP 是不同自治系统的路由器之间交换路由信息的协议。 BGP使用环境与内部网关协议大不相同:

  • 因特网的规模太大,使得自治系统之间路由选择非常困难。因特网的主干路由器中,一个路由表早已经超过5万网络前缀,使用链路状态协议,要维持很大的链路状态数据库,用dijkstra算法计算最短路径时间过长。当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。比较合理的做法是在 AS 之间交换“可达性”信息。
  • 自治系统之间的路由选择必须考虑有关策略。

    因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。采用了路径向量路由选择协议。

BGP发言人
BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
计算机网络学习笔记-网络层(一)
BGP发言人要运行BGP协议和内部网关协议。
AS连通图
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
计算机网络学习笔记-网络层(一)
BGP 发言人交换路径向量
计算机网络学习笔记-网络层(一)
主干网收到这个通知后,就发出通知:“要到达网络 N1, N2, N3 和 N4 可经过 路径AS1 AS2。”
BGP 协议的特点

  • BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。

BGP 四种报文

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

BGP 报文
计算机网络学习笔记-网络层(一)

4. 路由器的构成

路由器的结构

路由器的定义 路由器是具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。从路由器某个输入端口收到分组,按照分组的目的网络,将该分组的某个输出端口转发给下一跳路由器,以此类推直到分组到达目的地。分组转发主要在网络层工作。

转发和路由选择的区别

  • 转发:就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去,在一个路由器内。而转发表是由路由表中得出的,必须包含完成转发功能所须的信息(从到达目的网络到输出端口和某些MAC地址的映射),可以通过硬件完成。
  • 路由选择:按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,从而构造出整个路由表。一般仅包含目的网络到下一跳的映射,总是由软件实现。

计算机网络学习笔记-网络层(一)

  • 路由器选择部分(控制部分): 核心是路由器选择机,它根据路由选择协议构造出路由表,并定期和相邻路由器交换路由信息不断地更新和维护路由表。
  • 交换结构:根据转发表对分组进行处理,分组从输入端口进入后都能够从何时的输出端口转发出去。
  • 输入、输出端口:物理层进行比特接收后,数据链路层按照链路成协议接收传送分组的帧,将帧的首尾剥去后,进入网络层。if(分组为交换路由分组):交给路由选择处理机;else:根据传输来得数据分组的目的地址查找转发表,经过交换结构到达合适的输出端口。输入端口查找和转发功能最重要,为了使交换分散化。将转发表复制到每一个输入端口中,称为“影子副本”。

输入、输出端口收到的分组的处理
计算机网络学习笔记-网络层(一)
数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。

计算机网络学习笔记-网络层(一)
当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
分组丢弃 :
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

交换结构
计算机网络学习笔记-网络层(一)
计算机网络学习笔记-网络层(一)
这里写图片描述

六 IP多播

1. IP多播的基本概念

许多应用需要由一个源点发送到许多个终点,一对多的通信如:软件更新、新闻、交互式会议等。

单播举例:
计算机网络学习笔记-网络层(一)
多播举例:
计算机网络学习笔记-网络层(一)
对比:单播中需要发送90个单播,即同一个视频分组要发送90个副本。多播时将视频分组当做多播数据报发送并且只需要发送一次,路由器R1复制三个副本向R2、R3、R4转发,然后由目的局域网完成硬件多播功能,不需要复制分组。

利用多播方式能够使减轻多网络各种资源的消耗,因特网范围的多播要靠路由器实现,能够运行多播协议的路由器称为多播路由器。

IP多播的特点 :
因特网进行多播叫做IP多播,IP多播所传送的分组需要使用多播IP地址。

  • 多播数据报的IP地址一定不能写入主机的IP地址,因为成千上万个主在同一个多播组中,多播数据报的首部不可能写入这样多的主机IP地址。这就需要一个多播组标识符和多播组成千上万主机的IP地址关联起来。
  • 多播组的标识符就是IP地址中的D类地址,一个D类地址代表一个多播组,其前4位是1110,范围在224.0.0.0到239.255.255.255,一共228个多播组。它也是尽最大努力交付的,D类地址作为目的地址,首部的协议字段为2,只能用于目的地址。
  • IP多播可分为本局域网的硬件多播和因特网范围的多播。

2. 在局域网上进行硬件多播

计算机网络学习笔记-网络层(一)
为什么只是用23位的MAC地址,来表示28位的D类IP地址 ?
MAC组播地址的高24位是固定写为01-00-5E,但是其后的24位中最高位固定为0。原因是:当时研究多播的Steve Deering希望IEEE能够分配16个连续的组织唯一标示符(OUI)作为IP组播MAC地址使用。由于一个OUI包含24bit有价值的地址空间,因此16个连续的OUI=24×224=228个MAC地址空间,这样就可以使得IPv4地址与MAC地址之间形成一一映射。
但不幸的是,当时一个OUI的价格是1000美元,steve的经理Jon Postel不想花16000美元来买这28bit的MAC地址,Jon只愿意花1000美元购买一个OUI,并将其中的一半地址(23bit)给steve研究用。steve只得使用最高位固定为0的地址,这样就只有23bit的IP地址映射为MAC地址。
我们只得IPv4地址是32bit,而组播的IP地址高4位固定写为1110,这样就有228IP地址向223的MAC地址映射,这样就造成了会有32(25)个IP地址映射为一个MAC地址的问题,因此在IP层还需要软件过滤把不是本机的数据报丢弃。

3.网际组管理协议IGMP和多播路由选择协议

IP多播需要两种协议
计算机网络学习笔记-网络层(一)

  • 由图可以看出R1、R2、R3中有多播分组成员,R4中没多播分组成员,需要通过网际组管理协议IGMP知道多播组的成员信息。
  • 但是IGMP只是本地使用局域网范围的多播路由器知道本局域网上是否有主机参加或退出某个多播组,IGMP并非在因特网上进行管理协议,它不知道IP多播组包含的成员数,也不知道成员都分配在哪些网络上。需要局域网多播路由器和因特网的其他多播路由器把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
    计算机网络学习笔记-网络层(一)

  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),如路由器不应当向N3转发多播组1的分组,但是当主机G加入多播组1时,路由器R就必须向网络N3转发多播组1的分组。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。

  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去,例如E向F发送多播数据报时,路由器把这个数据报发送到网络N3,F向E发送多播数据报时,路由器把这个数据报发送到网络N2。路由器R收到主机A的多播数据报时,把多播数据报转发到N2、N3
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。 例如主机G(所在局域网没有任何多播组成员)可以向1、2发送多播数据报,多播数据报所经过的许多网络,也不一定要有多播组成员。

网际组管理协议IGMP
IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。
因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。

多播路由选择协议
一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。多播路由选择实际上就是要找出以源主机为根结点的多播转发树。

  • 洪泛和剪除:这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting)的策略。 路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。
    举例:见下图
    计算机网络学习笔记-网络层(一)
    R1收到源点多播数据报向R2、R3转发

七 v*n与NAT

本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。
10.0.0.0 到 10.255.255.255
172.16.0.0 到 172.31.255.255
192.168.0.0 到 192.168.255.255
这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信,专用地址是可以重复的。
专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

虚拟专用网v*n
针对分散在很远地方的专用网,可以通过电信公司的通信线路,还可以利用因特网作为专用网的通信载体。之所以称为虚拟专用网,“虚拟”表示通过公用的因特网构建效果像是在专网一样,专用要考虑只在机构内部使用,而不用于网络外本机构的主机通信,因特网传输得数据要加密。
利用IP隧道技术实现的虚拟专用网如下:

计算机网络学习笔记-网络层(一)
专网X与Y通信,将X到Y的内部IP数据报进行加密作为因特网IP数据报的数据报进行传输,因特网上经过很多个网络和路由器,但在逻辑上看就像一条直通的链路。
v*n三种模式:

  • 由部门 A 和 B 的内部网络所构成的虚拟专用网 v*n 又称为内联网(intranet)v*n,表示部门 A 和 B 都是在同一个机构的内部。
  • 一个机构和某些外部机构共同建立的虚拟专用网 v*n 又称为外联网(extranet)v*n。
  • 在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 v*n 软件可在员工的 PC 机和公司的主机之间建立 v*n 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络,称为远程接入(remote access v*n)v*n。

网络转换地址NAT
解决内部的本地IP地址(专网使用的专用地址)与因特网上的主机通信问题,再去申请全球IP地址地址所剩不多,所以采用NAT。
需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。

网络地址转换的过程:

  • 内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
  • NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
  • NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG
  • 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX ,转发给最终的内部主机 X。