计算机网络Chap4-网络层

1. 网络层的几个重要概念

1.1 网络层提供的两种服务

【背景】:在计算机网络领域,网络层应该向传输层提供怎样的服务(面向连接还是无连接)曾引起长期的争论,其中争论的焦点的实质就是:在计算机通信中,可靠交付应当交给谁来负责?是网络还是端系统?

  • 虚电路服务:(想让网络负责可靠传输观点)认为计算机网络应该模仿电信网络,使用面向连接的通信方式。在通信之前先建立虚电路以保证双方通信所需的一切网络资源;再使用可靠传输的网络协议就可以可靠传输

    虚电路服务

    但是,虚电路是指一条逻辑上的连接,分组只是都按照这条逻辑连接按照存储转发的方式传送,而不是真正的建立一条物理连接。

  • 数据报服务.:(想让端系统来负责可靠传输的观点)认为网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每一个分组独立发送且网络层不提供服务质量的承诺,这就让网络的造价大大降低,运行方式灵活能够适应多种应用。

    数据报服务

2. 网际协议IP

网际协议IP(Internet Protocol)是TCP/IP体系中最主要的协议之一,也是互联网标准协议之一

与协议IP配套使用的还有三个协议:

  • 地址解析协议ARP:Address Resolution Protocol
  • 网际控制报文协议ICMP:Internet Control Message Protocol
  • 网际组管理协议IGMP:Internet Group Management Protocol

这三个协议和网际协议IP的关系如图:

网络层IP协议与配套协议

ARP在最下面表示IP协议经常用它;ICMP和IGMP在上面表示他们要使用IP协议。

2.1 网络互联的设备

中间设备:又称中间系统或者中继系统。

  • 物理层中继系统:转发器

  • 数据链路层中继系统:网桥或桥接器

  • 网络层中继系统:路由器

  • 网络层以上中继系统:网关

2.2 网络互联的问题

互联在一起的网络要进行通信会遇到很多问题:

1.不同的寻址方案

2.不同的最大分组长度

3.不同的网络接入机制

4.不同的超时控制

5.不同的差错恢复方法

6.不同的状态报告方法

7.不同的路由选择技术

8.不同的用户接入控制

9.不同的服务(面向连接服务和无连接服务)

10.不同的管理与控制方式等

所以,没有一种单一的网络可以适应所有用户的需求

2.3 互连网络和虚拟互连网络

互连网络和虚拟互连网络

由于参加互连的计算机网络(a)都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成(b)所示的虚拟互连网络

虚拟互连网络也就是逻辑互连,互连起来的各种物理网络的异构性本来是客观存在的,但是利用协议IP就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络

使用协议IP的虚拟互连网络可以简称为IP网

在IP网上的主机进行通信的时候就好像在一个单个网络上通信一样,它们看不到互连的各个网络的具体异构细节(2.2提到的)。

如果在这种覆盖全球的IP网的上层使用TCP协议,就是现在的互联网

2.4 IP地址

在TCP/IP体系中,IP地址使一个最基本的概念,一个连接在互联网上的设备如果没有IP地址就无法和网上的其他设备进行通信。

2.4.1 IP地址及其表示方法

整个互联网就是一个单一的、抽象的网络,IP地址就是给连接到互联网上的每一台主机(或路由器)的每一个接口,分配一个全球范围内唯一的32位的标识符,就可以方便我们在互联网上寻址。

IP地址现在由互联网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。

IP地址举例如图:

IP地址

对于主机(或者路由器),IP地址使32位的二进制代码

为了提高可读性,我们常常把32位的IP地址每隔8位插入一个空格

为了便于人们书写和记忆,常用等效的十进制数字表示并且在每段数字中间加上一个小数点,这就是点分十进制法


上述的IP地址不但标志了这个主机(或路由器)还标志了此接口所连接的网络。所以32位的IP地址采用两级结构,由两个字段组成:

IP地址中的网络号和主机号字段

  • 第一个字段是网络号:标志主机或者路由器所连接到的网络,n位
  • 第二个字段是主机号:标志主机或路由器,剩下的(32-n)位

那么很关键的问题是:当我们看到一个IP地址时我们怎么知道网络号的位数n是多少

2.4.2 分类的IP地址

在互联网发展早期采用的是分类的IP地址,也就是上述问题中n是固定的几个数之一。32位的IP地址空间总有2^32(约43亿)个地址。

分类的IP地址

  • A类地址(n = 8):A类地址空间有2^31个地址(除了第一位是0固定),占整个IP地址空间的50%。
    • A类地址范围:1.0.0.1 - 126.255.255.254
    • A类地址中的私有地址:10.0.0.0到10.255.255.255,不在互联上使用,在局域网中的地址
    • A类地址中的保留地址:127.0.0.0 - 127.255.255.255,做循环测试用的
  • B类地址(n = 16):B类地址空间有2^30个地址(除了前两位是10固定),占整个IP地址空间的25%
    • B类地址范围:128.0.0.1 - 191.255.255.254
    • B类地址中的私有地址:172.16.0.0 - 172.31.255.255
    • B类地址中的保留地址:169.254.0.0 - 169.254.255.255
  • C类地址(n = 24):C类地址空间有2^29个地址(除了前三位是110固定),占整个IP地址空间的12.5%
    • C类地址范围:192.0.0.1 - 223.255.255.254
    • C类地址中的私有地址:192.168.0.0 - 192.168.255.255
  • D类地址(多播地址):C类地址空间有2^28个地址(除了前四位是1110固定),占整个IP地址空间的6.25%
  • E类地址(保留地址):D类地址空间有2^28个地址(除了前四位是1111固定),占整个IP地址空间的6.25%

常用的三种类别的IP地址

IP地址的指派范围

2.4.3 子网划分和子网掩码

使用2.4.2中的分类的IP地址的空间利用率有时很低,且两级的IP地址不够灵活,故在1985年IP地址中又增加了一个“子网号字段“,**使得两级的IP地址变成为三级的IP地址。这种做法叫划分子网

三级IP地址

子网号是从主机号中借用若干位,从而主机号就会相应减少若干位。

问题:从一个IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分。

引出一个概念:子网掩码,使用子网掩码就可以找出IP地址中的网络和子网部分。

子网掩码的规则

  • 子网掩码的长度为32位
  • 子网掩码左边部分的一连串1:对应网络号和子网号
  • 子网掩码右边部分的一连串0:对应主机号

子网掩码的作用: 二进制地址和二进制子网掩码做与运算,就可以得到网络地址。

子网掩码练习题


我们知道在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事情。

但是在划分子网的情况下,IP地址不能唯一的得出网络地址,其取决于网络采用的子网掩码,但是数据报的首部并没有提供子网掩码的信息,所以分组转发的算法也做了相应的调整。

划分子网下路由器转发分组算法

2.4.3 无分类编址CIDR

虽然划分子网的方法在一定程度上减少了些地址资源的浪费,但是对于IP地址枯竭的问题,还是不够。

下面是普遍采用的无分类编址,虽然也无法解决IP地址枯竭的问题,但是可以推迟这一天的到来。

无分类域间路由选择CIDR:Classless Inter-Domain Routing,取消了分类地址和划分子网的概念,可以更有效的分配IPv4的地址空间。

CIDR使用各种长度的网络前缀来代替分类地址中的网络号和子网号,所以IP地址又变回两级编址:网络前缀 + 主机号

CIDR使用斜线记法/CIDR记法,后面跟的数字代表网络前缀的位数(相当于三级编址中子网掩码中1的个数)

使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配

网络前缀越长,其地址块就越小,因而路由就越具体。最长前缀匹配又称为最长匹配最佳匹配

2.4.4 IP地址的特点

  • IP地址是一种分等级的地址结构。这样的好处是:
    • IP地址管理机构在分配IP地址时只分配网络号即可,方便IP地址的管理
    • 路由器仅根据目的主机所连接的网络号来转发分组,而不用考虑主机号,这样就可以大幅减少路由表中的项目数,减小路由表所占的存储空间
  • 实际上IP地址是标志一个主机(或路由器)和一条链路的接口
    • 当一个主机同时连接两个网络上时就必须又两个相应的IP地址
    • 由于路由器至少应当连接到两个网络及以上(这样才能把IP数据报从一个网络转发到另一个网络),故路由器至少应当有两个IP地址
  • 用转发器或网桥连接起来的若干局域网仍为一个网络,这些局域网都具有同样的网络号

2.4.5 IP地址与MAC硬件地址

首先明确,IP地址和MAC地址是不同的地址!

IP地址与硬件地址

  • 从层次的角度看
    • 硬件地址(物理地址)是数据链路层和物理层使用的地址
    • IP地址是网络层和以上各层使用的地址,是一种逻辑地址
  • 从添加的位置来看
    • IP地址是放在IP数据报的首部
    • 硬件地址则放在MAC数据帧的首部
  • 从在通信过程中的作用来看
    • IP地址决定数据包的起点和终点
    • MAC地址决定数据帧的下一跳是哪个设备接收

【梳理一下通信的过程】:

在发送数据时,数据从高层到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给数据链路层,就会被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是MAC地址,且这两个MAC地址都写在MAC帧的首部中。

连接在通信链路上的设备收到MAC帧时,根据MAC帧的首部中的MAC地址决定丢弃或收下。只有在剥去MAC帧首部和尾部把MAC层数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。

2.5 地址解析协议ARP

从上述2.4.5中我们知道了在通信时,会涉及到两个地址:网络层地址 - IP地址和数据链路层地址 - MAC地址。

问题:在实际应用中,无论网络层使用的什么协议,在实际网络的链路上传输数据帧时,最终还是必须使用硬件地址,那么已知一个机器(主机或者路由器)的IP地址,如何找到其相应的MAC地址?

地址解析协议ARP就是来解决这个问题滴~~~

ARP协议的作用

2.5.1 ARP协议的要点

  • 每一个主机都设有一个ARP高速缓存, 里面有所在的局域网上各个主机和路由器的IP地址到硬件地址的映射表。

  • 且ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除。

  • 当主机A想向本局域网上的主机B发送IP数据报时,就现在其ARP告诉缓存中查看有无B的IP地址

  • 若有:就查出其对应的MAC地址,将该硬件地址写入MAC帧中,通过局域网将该MAC帧发往此硬件地址

  • 若无:ARP就在本局域网上广播发送一个ARP请求分组。收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存

  • ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题

    那么如果目的主机和源主机不在一个局域网上呢?

需要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后将分组发送给这个路由器,再由路由器将分组转发给下一个网络,以此类推直到找到目的主机。

由于全世界存在着各种各样的网络,他们使用不同的MAC地址,要使这些异构网络能够相互通信就必须进行非常复杂的MAC地址转换,由用户或者主机来完成是不可能的。

但IP编址使得连接到互联网的主机只需要各自拥有一个IP地址,就使得通信像是连接在同一个网络上那样简单方便。即使需要多次调用ARP来找到MAC地址,但这个过程都是计算机软件自动进行的,对用户是看不到的

2.6 IP数据报的格式

IP数据报

一个IP数据报由两部分组成

  • 首部:首部的前一部分长度固定为20字节(一行表示32位=4字节,五行一共20字节),是所有IP数据报必须有的。后面是一些可选字段,长度可变。

    • 版本:4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。这里讨论的版本是4(IPv4)

    • 首部长度:4位,来指明首部有多长(固定+可变部分),最小是5个单位(5 * 4字节)=20字节,这就全是固定部分;最大是15个单位(15*4字节)=60字节,因为2进制的4位最大只能表示15啦~~

    • 区分服务:8位,用来说明数据报是不是很紧急很优先

    • 总长度:16位,这里是首部+数据的总长度,所以最大是2^16-1=65535字节。

      总长度必须不超过最大传送单元MTU

    • 标识:16位,是一个计数器,用来产生IP数据报的标识。如果数据报长度超过MTU需要分片,那么标识字段就被复制到所有的数据报片的标识字段中,使得最后能被正确的重装为原来的数据报。

    • 标志:3位,只有前两位有意义。最低位位MF(more fragment):MF=1表示后面还有分片;MF=0表示最后一片;中间位是DF(don’t fragment): DF=0时才能分片。

    • 片偏移:13位,指出较长的分组在分片后,某片在原分组中的相对位置,且以8个字节为偏移单位

      偏移举例

    • 生存时间:8位,TTL(Time To Live), 表示数据报在网络中可通过的路由器数的最大值

      本来单位是秒,但随着路由器处理数据报的时间逐渐缩短到小于1s,单位就改为“跳数”

    • 协议:8位,指出此数据报携带的数据使用哪种协议,方便使目的主机的IP层直到应该将数据部分上交给哪个协议进行处理

    • 首部校验和:16位,只检验数据报的首部,不包括数据部分

    • 源地址:32位,发送IP数据报的主机的IP地址

    • 目的地址:32位,接收IP数据报的主机的IP地址

  • 数据

3. IP层转发分组的过程

  • 基于终点的转发:分组在互联网上传送和转发是基于分组首部的目的地址的,所以分组每到一个路由器,路由器就会根据分组中的目的地址(终点)查找转发表。

    问题: 分组的首部也没有地方指明下一跳路由器的IP地址呀,那分组怎么找到下一跳路由器呢?

    ans: 当路由器接收到一个待转发的分组,在从转发表得出下一跳路由器的IP地址后,不是把这个地址写入分组的首部,而是送交数据链路层的网络接口软件,它来负责使用ARP将路由器的IP地址转换成MAC地址,并将MAC地址放在链路层的MAC帧的首部,最后利用MAC地址传送给下一跳的路由器的链路层~~

  • 特定主机路由:虽然互联网所有的分组转发都是基于目的主机所在的网络,但是也允许有特例,为特定的目的主机指定一个路由。

  • 默认路由:路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间,

4. 网际控制报文协议ICMP

为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用忘记控制报协议ICMP。

ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。

ICMP报文装在IP数据报的数据部分

4.1 ICMP报文的格式

ICMP报文格式

ICMP报文的前四个字节是统一的格式:类型、代码、检验和。

接着4字节与ICMP的类型有关

4.2 ICMP报文的种类

  • ICMP差错报告报文:

    • 终点不可到达 - 3
    • 时间超过 - 11
    • 参数问题 - 12
    • 改变路由(重定向) - 5

    ICMP差错报告报文

  • ICMP询问报文:

    • 回送请求或回送回答 - 8或0
    • 时间戳请求或时间戳回答 - 13或14

4.3 ICMP报文的应用

PING: 用来测试两个主机之间的连通性

PING使用了ICMP回送请求与回送回答报文。且直接使用网络层ICMP,没有通过运输层的TCP或UDP。

5. 互联网的路由选择协议

这是用来解决转发表中的路由是怎样得出的

5.1 有关路由选择协议的几个基本概念

5.1.1 分层次的路由选择协议

互联网采用的是分层次的路由选择协议,原因:

  • 互联网规模巨大,若想让所有路由器知道所有的网络如何到达,路由表将巨大
  • 许多单位不愿意外界了解自己单位网络的布局细节和采用的路由选择协议,但还想连接互联网

所以,使用分层次的路由选择方法,可以将整个互联网或分为许多自治系统AS(autonomous system)。

自治系统:在单一的技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。一个AS对其他的AS表现出的是一个单一的和一致的路由选择策略

这样,互联网就把路由选择协议划分为两大类:

  • 内部网关协议IGP:Interior Gateway Protocol,在一个自治系统内部使用的路由选择协议。目前使用的最多的是RIP(小规模网络)和OSPF协议(大规模网络)。这种在自治系统内部的路由选择叫做域内路由选择
  • 外部网关协议EGP:External Gateway Protocol,在不同的自治系统之间的路由选择协议。目前使用的最多的BGP-4。这种在自治系统之间的路由选择叫做域间路由选择

路由选择协议

5.2 内部网关协议 - RIP

5.2.1 RIP协议的工作原理

路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议。

RIP是一种分布式的、基于距离向量路由选择协议。

RIP协议要求网络中的每一个路由器都要维护从自己到其他每一个网络的距离记录。所以最大的特点就是简单。

  • 基于距离向量的:距离跳数,也就是经过路由器的个数,且指最短距离(最小跳数)。RIP允许一条路径最多只能包含15个路由器。

  • 分布式的:(分布式的特点就是各个路由器可以通过相互间的信息交互来完成路由信息的获取和更新)。所以我们会在意一下三个问题:

    • 和哪些路由器交换信息?

      RIP规定仅和相邻路由器交换信息

    • 交换什么信息?

      RIP规定路由器交换的信息是当前路由器所知道的全部信息,也就是自己现在的路由表,翻译一下就是”我到这个自治系统中所有网络的(最短)距离,以及到每个网络应该经过的下一跳路由器。

    • 在什么时候交换信息?

      RIP规定按固定的时间间隔交换路由信息,比如30s

5.2.2 RIP使用的距离向量算法

距离向量算法


距离向量算法举例

5.2.3 RIP协议的特点

  • 优点:实现简单,开销小
  • 缺点:
    • RIP限制网络规模,最大距离为15
    • 随着网络规模的扩大,开销增加,因为交换的路由信息是完整的路由表
    • 坏消息传播得慢,使得更新过程的收敛时间过长

5.3 内部网关协议 - OSPF

为了克服上述RIP的缺点,开放最短路径优先OSPF(Open Shortest Path First)营运而生。

5.3.1 OSPF协议的基本特点

OSPF也是分布式的,我们也关心三个最基本的问题:

  • 和哪些路由器交换信息?

    OSPF规定向本自治系统中所有路由器发送信息,这就是洪泛法

  • 交换什么信息?

    OSPF协议规定乐发送与本路由器相邻的所有路由器的链路状态,这只是路由器的部分信息

    链路状态:说明本路由器和那些路由器相邻,以及该链路的度量。

  • 在什么时候交换信息?

    OSPF规定当链路状态变化时交换路由信息或者隔一段时间(如30分钟)

5.3.2 OSPF的区域area

为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域

5.4 外部网关协议 - BGP

在外部网关协议BGP中,现在使用的是第四个版本BGP-4。如果没有BGP,那么每一个自治系统AS都是一个孤岛,BGP使得他们可以连接成一个完整的互联网。

BGP力求能选择出一条能够到达目的网络前缀且比较好的路由,而不是计算出最佳路由。

BGP采用了路径向量路由选择协议距离向量协议(如RIP)链路状态协议(如OSPF)有很大的区别

5.4.1 BGP路由

在一个自治系统中,有两种不同功能的路由器:

  • 边界路由器(边界网关)
  • 内部路由器

一个AS至少有一个边界路由器和相邻AS的边界路由器直接相连。正式有了边界路由器,AS之间才能利用BGP协议交换可达性路由信息。

那么两个边界路由器是如何进行路由信息的交换的呢?

首先,要先建立TCP连接,在此基础上上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息

6.虚拟专用网VPN

由于IP地址的紧缺,一个机构能申请到的IP地址数往往远远小于本机构所拥有的主机数,且考虑到互联网并不安全,一个机构内也并不需要把所有的主机接入到外部的互联网。

假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上来讲,对于仅在机构内部使用的计算机就可以由本机构自行分配IP地址

6.1 本地地址与全球地址

  • 本地地址:仅在机构内部使用的IP地址,可以由本机构自行分配而不需要向互联网的管理机构申请
  • 全球地址:全球唯一的IP地址,必须向互联网的管理机构申请

问题:如果任意选择Ip地址作为机构内部使用的本地地址,那么很有可能和互联网中的某个IP重合。这就出现了地址的二义性问题

为了解决上述问题,RFC专门指明了一些专用地址专用地址只能用作本地地址而不能用作全球地址,在互联网中的所有路由器,对目的地址是专有地址的数据报一律不进行转发

专用IP地址块

6.2 专用网与虚拟专用网

  • 专用网: 采用专用IP地址进行互连的网络叫做专用互联网(或本地互联网),简称专用网。

    全世界可能很多专用互连网络的具有相同的IP地址,但是并不会引起任何问题,故专用IP地址也称为可重用地址。

如果一个很大的机构的很多部门分布范围很广泛,且这些部门经常需要交换信息,则可以:

  • 虚拟专用网VPN:Virtual Private Network, 利用公用的互联网作为本机构各专用之间的通信载体,这样的专用网又称为虚拟专用网。
    • “专用网”:因为这种网络是为本机构的主机在本机构内部的通信
    • “虚拟”:并没有使用真正的通信专线(租金太高啦),但是在效果上和真正的专用网一样。

6.3 使用IP隧道技术实现虚拟专用网VPN

背景:某个机构在两个相隔很远的场所建立了专用网A和B,现在需要通过公用的互联网构成一个VPN。

  • 如果专用网不同网点之间的通信必须经过公用的互联网,但是又有保密的要求,那么所有通过互联网传送的数据必须加密
  • 一个机构要构建自己的VPN,就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN系统都知道其他场所的地址。

IP隧道技术实现VPN

首先,每一个场所至少要有一个路由器具有合法的全球IP地址(R1,R2),他们与互联网的接口地址是合法的全球IP地址,在专用网内部网络的接口地址就是专用网的本地地址

其次,在每一个场所A或者B内部的通信都是不经过互联网的。

现在场所A的主机X要和另一个场所B的主机Y进行通信,则需要经过路由器R1和R2。

  • 主机X向主机Y发送的IP数据报的源地址是10.1.0.1,目的地址是10.2.0.3(本地地址)
  • 数据报先作为机构内部数据报从X发送到与互联网连接的路由器R1
  • R1收到内部数据报后发现需要经过互联网才能到达,就把整个的内部数据报进行加密,再重新加上数据报的首部,封装成在互联网发送的外部数据报,此时,源地址是125.1.2.3,目的地址是194.4.5.6(全球地址
  • R2收到数据报后将数据部分取出进行解密,恢复出原来的内部数据报(目的地址10.2.0.3),交付主机Y

虽然外部数据报从R1到R2可能要经过互联网上许多个网络和路由器,但是从逻辑上看,R1到R2之间好像是一条直通的点对点的链路,故叫“IP隧道技术”。

6.4 内联网intranet和外联网extranet

上述例子中的,由场所A和B的内部网络所构成的虚拟专用网VPN称为内联网(intranet或intranetVPN),表示场所A和B属于一个机构。

有时一个机构的VPN需要有些外部机构参加进来,这样的VPN称为外联网(extranent或extranetVPN)。

内联网和外联网都采用了互联网技术,都是基于TCP/IP协议的。

6.5 远程接入VPN

在外地的员工通过拨号接入互联网,驻留在员工个人电脑中的VPN软件可以在员工个人电脑和公司主机之间建立VPN隧道且通信内容是保密的,感觉就像使用公司内部的本地网络一样。

7.网络地址转换NAT

问题:在专用网内部的一些主机本来已经分配到了本地IP地址,但是现在又想和互联网上的主机进行通信(且不需要加密),怎么办呢?

最简单的办法就是再申请全球IP地址,但是这很难做到!!

目前使用的最多的就是网络地址转换

7.1 网络地址转换NAT简介

网络地址转换NAT:Network Address Translation, 需要再专用网连接到互联网上的路由器安装NAT软件。装有NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全球IP地址。

那么所有本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接。

7.2 网络地址转换的过程

NAT过程

  • 主机A用本地地址IPA和互联网上的主机B通信所发的数据报必须经过NAT路由器
  • NAT路由器将数据报的源地址IPA转换成全球地址IPGA,改写到数据报的首部作为新的源地址,并将转换的结果记录到NAT地址转换表中。将新的数据报转发出去。
  • 主机B收到IP数据报后返回应答。源地址就是自己的地址IPGB,目的地址是刚才收到的数据报的源地址IPGA。此时B并不知道A的专用地址,且就算知道了也不能使用(互联网上的路由器不能转发目的地址为任何专用地址的IP数据报!)。
  • NAT路由器收到主机B返回的IP数据报时,再次进行地址的转换,通过NAT转换表将收到的IP地址IPGA转换为专用网内部的目的地址IPA,将最后的数据报发送给A。

7.3 网络地址与端口号转换NAPT

那么我们还能不能更有效的利用NAT路由器上的全球IP地址呢?

现在常用的NAT转换表把运输层的端口号也利用上

这样,就可以使多个拥有本地地址的主机,公用NAT路由器上的一个全球IP地址,因而可以同时和互联网上的不用主机进行通信!!!

使用端口号的NAT也叫做网络地址与端口号转换NAPT(Network Address and Port Translation)。

不使用端口号的NAT就叫做传统的NAT


计算机网络Chap4-网络层
http://example.com/2023/07/25/计算机网络Chap4-网络层/
Author
John Doe
Posted on
July 25, 2023
Licensed under