ch04 network layer-01.md

目录

Tch04 Network Layer-01

网络层提供的两种服务

电信网:虚电路服务

因特网:数据报服务

网际协议 IP

一,虚拟互联网

  • 虚拟互联网的意义:

    使用IP协议将不同异构网络(数据链路层上的一个个小网络)进行连接的逻辑上的互联网

    Ø 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

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

    Ø 使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。

  • 与网际协议 IP配套使用的四个协议:

    §地址解析协议 ARP (Address Resolution Protocol)

    IP地址到硬件地址

    §逆地址解析协议 RARP (Reverse Address Resolution Protocol)

    硬件地址到IP地址

    §网际控制报文协议 ICMP (Internet Control Message Protocol)

    ping

    §网际组管理协议 IGMP (Internet Group Management Protocol)

    对组的管理

二,IP地址

1.IP地址的一些基本概念

IP地址是什么:

Ø如果我们把整个因特网看成为一个单一的、抽象的网络。那么IP 地址就是给每个连接在因特网上的主机(或路由器)的每一个接口的标识符

这个标识符在全世界范围是唯一的

IP地址的编址方法

§阶段1 分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。

A,B,C,D类网

§阶段2 子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。

§阶段3 构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

2.阶段1 分类的 IP 地址(以IPv4为例)

IPv4:32位,4byte

每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。

两级的 IP 地址可以记为:

\[IP 地址 ::= \{ <网络号>, <主机号>\} \]

4-1

A 类地址的网络号字段 net-id 为 1 字节,host-id 为 3 字节

B 类地址的网络号字段 net-id 为 2 字节,host-id 为 2 字节

C 类地址的网络号字段 net-id 为 3 字节,host-id 为 1 字节

D 类地址是多播地址

E 类地址保留为今后使用

2.1 点分十进制记法

4-2

2.2 技巧:由点分十进制的第一组判断A,B,C,D类网络

4-5

这些边界对于区间而言是左闭右开的(编程中的政治正确)

边界记忆方式:

\[128=(255+1)* \frac12 \]

\[192=(255+1)* \frac34 \]

\[224=(255+1)* \frac78 \]

\[240=(255+1)* \frac {15}{16} \]

点分10进制和冒号16进制有所区别

点分10进制:

只有1个点或者没有点直接表示

写法1(10进制):10.50.186.141

写法2(16进制):C2.2F.14.81

写法3(2进制):10000001000010110000101111101111

冒号十六进制记法:

关键在于

2.3 一些特殊的IP地址

网络地址:表示网络本身,host-id全零

IP地址 网络地址
192.168.0.3 192.168.0.0

广播地址:又称为直接广播地址host-id全1,给网络192.168.0.0的所有主机发消息

IP地址 网络地址
192.168.0.255 192.168.0.255

单播地址:给网络192.168.0.0的某一台主机发消息,比如给192.168.0.3发消息

本网络上的本主机:32位全为0

0.0.0.0

TCP/IP网络的广播地址:32位全1,实际使用时由于路由器对广播域的隔离,255.255.255.255等效为本网络的广播地址

255.255.255.255

注:对于任何一种网络,其实际可以使用的IP地址应该减去2,因为这个网络的广播地址(全1),网络地址(全0)无法作为主机或者路由器的地址

2.4 常用的三种类别的 IP 地址

4-3

\[A类网络的最大主机数: 2^{24}-2 \\[2ex] B类网络的最大主机数: 2^{16}-2 \\[2ex] C类网络的最大主机数: 2^{8}-2 \\[2ex] \]

2.5 IP地址的重要特点:

IP 地址是一种分等级的地址结构。分两个等级的好处是:

  1. IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

  2. 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

IP 地址标志一个主机(或路由器)和一条链路的接口

  1. 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。
  2. 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

图例:

4-4

  1. 同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-id
  2. 路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。

3. IP地址具有以下一些重要特点:

(1)每一个IP地址都由网络号和主机号两部分组成。

从这个意义上说,IP地址是一种分等级的地址结构。

(2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。换言之,IP地址并不仅仅指明一个主机,同时还指明了主机所连接到的网络。

(3)按照互联网的观点,一个网络是指具有相同网络号net-id的主机的集合

因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号。

具有不同网络号的局域网必须使用路由器进行互连。

(4)在IP地址中,所有分配到网络号的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。

三,IP 地址与硬件地址

4-6

1. 为什么不直接使用硬件地址进行通信

Ø由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。

Ø连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。

2. 路由转发实例

4-7

  1. IP数据报传输过程中一直没有变
  2. MAC帧的源MAC地址和目的MAC地址一直在发生变化

3. ARP协议

中文:

地址解析协议

英文:

Address Resolution Protocol

含义:

是根据IP地址获取物理地址的一个TCP/IP协议

发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;

收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

注:地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP代理ARPNDP用于在IPv6中代替地址解析协议。

示例图:

4-8

四,IP数据报格式

1. 示意图:

4-9

2. IP数据报的格式

4-10

IP数据报首部固定部分中的各字段 :

  1. 版本——占 4 位,指 IP 协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)

  2. 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。

  3. 标志(flag) —— 占 3 位,目前只有前两位有意义。

    标志字段的最低位是 MF (More Fragment)

    MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。

    **标志字段中间的一位是 DF (Don't Fragment) **

    只有当 DF = 0 时才允许分片。

  4. 片偏移 —— 13 位,指较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。

  5. 生存时间 —— 8 位,记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值。

  6. 协议 —— 8 位,字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程

    4-12

  7. 源地址和目的地址都各占 4 字节

3. IP数据报分片

4-11

\[片偏移: \frac{0}{8} \\[2ex] 片偏移: \frac{1400}{8} \\[2ex] 片偏移: \frac{1800}{8} \\[2ex] \]

4. IP转发分组的流程

4.1 路由表

4-13

根据目的网络地址就能确定下一跳路由器:

  1. IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)
  2. 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
  3. 分组转发过程中,IP数据报始终没有发生改变,网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
4.2 分组转发算法

分组转发中的一些特殊项:

  1. 特定主机路
  2. 默认路由(default route)

算法流程

(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。

(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。

(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。

(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。

(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。

(6) 报告转发分组出错。

graph TD 若网络N与此路由器是否直接相连-->路由表中是否有目的地址为D的特定主机路由; 路由表中是否有目的地址为D的特定主机路由-->路由表中是否有到达网络N的路由; 路由表中是否有到达网络N的路由-->路由表中是否有默认路由; 路由表中是否有默认路由-->报告转发分组出错;

阶段2:划分子网

一,划分子网的由来

1. 为什么要划分子网

阶段一中 “分类的IP 地址” 的设计确实不够合理:

  1. IP 地址空间的利用率有时很低。
  2. 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
  3. 两级的 IP 地址不够灵活。

解决的办法:从两级IP变成三级IP,也就是划分子网(subnetting)

  1. 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
  2. 这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。

2. 划分子网的基本思路

划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络

\[IP地址 ::= \{<网络号>, <子网号>, <主机号>\} \]

简单来说就是阶段一“分类的IP地址”中的host-id被分为host-id +subnet-id

host-idold=subnet-id + host-idnew

Ø当没有划分子网时,IP 地址是两级结构。

Ø划分子网后 IP 地址就变成了三级结构。

Ø划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。

4-14

一个未划分子网的 B 类网络145.13.0.0,划分为三个子网后对外仍是一个网络

二,子网掩码

子网掩码的一些重要特性:

Ø路由器在和相邻路由器交换路由信息时,会把自己所在网络(或子网)的IP和子网掩码告诉相邻路由器。

Ø路由器的路由表中的每一个项目,在给出目的网络地址的同时,也给出该网络的子网掩码。

Ø若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

1. 为什么要子网掩码:

使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分

2. 子网的网络地址= (IP地址) AND (子网掩码)

3. 默认子网掩码

4-15

三,等长子网划分

4-16

四,变长子网划分

4-17

五,子网划分阶段的分组转发算法

和之前没有划分子网的情况相比,区别就在于判断目标ip是否属于路由表中的某个网络的方法不一样

之前:直接看路由表中的net-id 和目标ip的net-id是否相同(阶段一分类的IP地址时期)

现在:把ip数据报里的目的ip与路由表里的子网掩码进行与操作,将所得结果与子网掩码对应的目的网络地址进行比较,若一致则该网络即为ip数据报的目的网络,反之则不是

下面给出划分子网阶段的路由表:

4-17

划分子网下的分组转发算法:

(1) 从收到的分组的首部提取目的 IP 地址 D

(2) 先判断是否可以直接交付。先用各直连网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。

否则就是间接交付,执行(3)。

(3) 若路由表中有目的地址为 D特定主机路由,则将 分组传送给指明的下一跳路由器;

否则,执行(4)。

(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;

否则,执行(5)。

(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;

否则,执行(6)。

(6) 报告转发分组出错。

阶段3:构造超网

一,无分类编址 (CIDR)

1. 无分类编址简介

全称:无分类域间路由选择

英文:CIDR (Classless Inter-Domain Routing)。

背景(这里给出的两个问题在这节末尾会给出答案)

划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,这就是:

  • B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!

    整个 IPv4 的地址空间最终将全部耗尽。

  • 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。

解决办法
  • 变长子网划分

    1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。

  • 变长子网划分(VLSM)的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

特点
  1. CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
  2. CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  3. IP 地址从三级编址(使用子网掩码)又回到了两级编址。

2. 无分类编址下IP地址的记法

\[IP地址 ::= \{<网络前缀>, <主机号>\} \]

注:

  • CIDR 还使用“斜线记法”(slash notation),它又称为CIDR记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。

    比如128.14.32.0/20表示32位的IPv4的地址里:网络前缀占20位,主机号占12位

  • CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。

3. CIDR 地址块(无分类编址地址块)

128.14.32.0/20 表示的地址块共有 212 个地址

(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号(host-id)是 12 位)

  • 128.14.32.0/20 地址块的最小地址:128.14.32.0

  • 128.14.32.0/20 地址块的最大地址:128.14.47.255

  • 全 0 和全 1 的主机号地址一般不使用(网络地址,广播地址?)

4-18

二,路由聚合[构成超网(supernetting)]

1. 路由聚合的相关概念

路由聚合-->(route aggregation)

路由聚合 == 路由汇总 == 构成超网 == 无分类编址地址块在路由表中只被当作一个网络写为1行

  1. 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。

    路由聚合也称为构成超网(supernetting)。

  2. CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。

    对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。

2.对一,1中背景中的问题作出解答

前文中提到的问题总结一下就是两点:

  1. IP地址不够用
  2. 路由表中项目数目过大

利用无分类编址路由汇总可以解决这两个问题

无分类编址将划分子网中的两个不合理的地方消除了,这两个不合理的地方分别为:

  1. IPv4的32位地址中的高8位被用来区分ABCDE五类网络

    原本可以用来表示16中情况的8位二进制数现在只被用来表示5种情况,过于浪费

  2. ABCDE的netid,hostid限制的过死

    net-id和host-id + subnet-id的数目被ABCDE的网络分类限制的过死,多几位少几位都不可以

当这两个规则被舍弃,也就是使用无分类编址的情况下:

  1. IP的数目大大增加(显而易见)

  2. 路由表规模减小,一个网络前缀可以包含很多个网络(原来A类网络不能包含BCDE类网络,因为他们的前8位不一样)但不分ABCDE后一个网络前缀就可以包含很多个ABCDE类网络

    它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由

图例:

4-19

三,最长前缀匹配(其实就是无分类编址下的分组转发算法的一部分)

最长前缀匹配又称为最长匹配或最佳匹配

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

应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)

理由

网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。

图例

4-20

4-21

4-22

网际控制报文协议 ICMP

ICMP协议

中文:

网际报文控制协议

英文:

Internet Control Message Protocol

含义

它是TCP/IP协议簇的一个子协议,ICMP报文作为IP数据报的数据部分用于在IP主机路由器之间传递控制消息。

控制消息是指差错报告报文和差错询问报文这些网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

因特网的路由选择协议

一,自治系统

自治系统 AS

中文:

自治系统

英文:

autonomous system

含义:

一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。

这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。

二,内部网关协议(IGP)Interior Gateway Protocol

IGP (Interior Gateway Protocol) ,使路由选择信息在自治系统内传播

内部网关协议在一个自治系统内部使用的路由选择协议
目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议

1. RIP路由信息协议(RIP是应用层的协议)

中文:

路由信息协议

英文:

Routing Information Protocol

含义

每隔一段时间和相邻路由器交换自己的路由表

Routing Information Protocol

路由信息协议 RIP 是内部网关协议

RIP 协议的三个特点
  1. 仅和相邻路由器交换信息。

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

  3. 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。

4-28

RIP中“距离”的定义
  • 从一个路由器到直接连接的网络的距离定义为 1。

  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

  • RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

  • 这里的“距离”实际上指的是“最短距离”。

注:

RIP协议使用运输层的用户数据报UDP进行传送(使用UDP的端口520)

因此RIP 的位置应当在应用层,在UDP的上面

  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。

  • RIP 允许一条路径最多只能包含 15 个路由器。

  • “距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。

  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

2. OSPF开放最短路径优先

开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的
OSPF 的原理很简单,但实现起来却较复杂

中文:

开放最短路径优先

英文:

Open Shortest Path First

含义
  • 当链路状态发生变化时路由器使用洪泛法向本自治系统中所有路由器发送与本路由器相邻的所有路由器的链路状态

向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。

发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

直接看PPT

三,外部网关协议(EGP)External Gateway Protocol

EGP (External Gateway Protocol) ,使路由选择信息在自治系统间传播

若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中

这样的协议就是外部网关协议 EGP

BGP边界网关协议

中文:

边界网关协议

英文:

Border Gateway Protocol

含义

BGP 采用路径向量路由选择协议在不同自治系统的路由器之间交换路由信息

IPv6:下一代网际协议

一,IPv6 数据报的一般形式

长度:128位

二,冒号十六进制记法

1. 写法

零压缩的写法总结

零压缩需要注意三点:

\[\Large零压缩的写法 \begin{cases} (1)多0压缩只能用一次\\[2ex] (2)0000 \to 0\\[2ex] (3)00AF \to AF\\[2ex] \end{cases} \\[2ex] \]

1 位 16 进制 == 4 位 2 进制

1位16进制有16种可能的结果,4位2进制也有16种可能的结果

128位= 4hex * 8

比如:

\[68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF \]

2. 零压缩

\[FF05:0:0:0:0:0:0:B3 --> FF05::B3 \]

高位0可以省略,也可以零压缩

\[0:0:0:0:0:0:128.10.2.1 --> ::128.10.2.1 \]

点分10进制:

只有1个点或者没有点直接表示

写法1(10进制):10.50.186.141

写法2(16进制):C2.2F.14.81

写法3(2进制):10000001000010110000101111101111

冒号十六进制记法:

关键在于冒号:

三,点分十进制记法的后缀

CIDR 的斜线表示法仍然可用

60 位的前缀 12AB00000000CD3 可记为(三种写法):

\[12AB:0000:0000:CD30:0000:0000:0000:0000/60 \\[2ex] 12AB::CD30:0:0:0:0/60 \\[2ex] 12AB:0:0:CD30::/60 \\[2ex] \]

零压缩只能用一处,否则会出现歧义

四,IPv4到IPv6的过渡

向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容。也就是IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

由于现在整个互联网上使用IPv4的路由器数量太大

因此

“规定一个日期,从这一天起所有的路由器一律都改用IPv6”,显然是不可行的。

这样,向IPv6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容。这就是说,IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由

下面介绍两种向IPv6过渡的策略,即使用双协议栈和隧道技术:

4-23

1. 双协议栈(IPv6数据报→IPv4数据报【转换过程中存在不可避免的信息损失】)

双协议栈双协议( dual stack)是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有两个协议栈,IPv4和IPv6。因此双协议栈主机(或路由器)既能够和IPv6的系统通信,又能够和IPv4的系统通信。双协议栈的主机(或路由器)记为IPv6/Pv4,表明它具有两种IP地址: 一个IPv6地址,一个IPv4地址。
双协议栈主机在和IPv6主机通信时采用IPv6地址,而和IPv4主机通信时则采用IPv4 地址。

但双协议主机如何知道目的主机是采用哪一种地址的呢?

它是使用域名系统DNS 来查询的。若DNS返回的是IPv4地址,双协议栈的源主机就使用IPv4地址:当DNS返回的是IPv6地址,源主机就使用IPv6地址。

4-30

上图所示的情况是源主机A和目的主机F都使用IPv6,所以A向F发送IPv6数据报,路径是A→B→C→D→E→F。

中间B到E这段路径是IPv4网络,路由器B不能向C 转发IPv6数据报,因为C只使用IPv4协议。

B是Iv6/IPv4路由器,它把IPv6数据报首部转换为IPv4数据报首部后发送给C。C再转发到D。当D转发到IPv4网络的出口路由器E 时(E也是IPv6/Pv4路由器),再恢复成原来的IPv6数据报。

需要注意的是:

IPv6首部中的某些字段却无法恢复

例如,原来IPv6首部中的流标号X在最后恢复出的Pv6数据报中只能变为空缺

这种信息的损失是使用首部转换方法所不可避免的

2. 使用隧道技术(IPv6数据报作为IPv4数据报的数据部分)

将IPv6作为IPv4的数据部分

  1. IPv4数据报的

    源地址:双协议栈路由器B

    目的地址:双协议栈路由器E

要使双协议栈的主机知道IPv4数据报里面封装的数据是一个IPv6数据报,就必须把IPv4首部的协议字段的值设置为41(41表示数据报的数据部分是IPv6数据报)

IP 多播

应用:主要应用在视频服务,多播可明显减少网络中资源的消耗

MPLS

中文:

多协议标签交换

英文:

Multiple protocol Label Switching

含义

MPLS 是利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短的标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。

特点

(1)支持面向连接的服务质量

(2)支持流量工程,平衡网络负载

(3)有效的支持虚拟专用网

本地地址&全球地址

本地地址(内网地址):

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

4-31

全球地址(外网地址):

全球唯一的IP地址,必须向因特网的管理机构申请。

虚拟专用网VPN 【Virtual Private Network】

外网主机访问内网

不在内网,但是想从外网加入到内网

虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。

在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。

简介

VPN属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。

在传统的企业网络配置中,要进行远程访问,传统的方法是租用DDN(数字数据网)专线或帧中继,这样的通讯方案必然导致高昂的网络通讯和维护费用。对于移动用户(移动办公人员)与远端个人用户而言,一般会通过拨号线路(Internet)进入企业的局域网,但这样必然带来安全上的隐患。

让外地员工访问到内网资源,利用VPN的解决方法就是在内网中架设一台VPN服务器。外地员工在当地连上互联网后,通过互联网连接VPN服务器,然后通过VPN服务器进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上VPN使用的是互联网上的公用链路,因此VPN称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN访问内网资源,这就是VPN在企业中应用得如此广泛的原因。

网络地址转换NAT 【Network Address Translation】

一,技术背景

要真正了解NAT就必须先了解现在IP地址的使用情况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下:

A 类:10.0.0.0~10.255.255.255

B 类:172.16.0.0~172.31.255.255

C 类:192.168.0.0~192.168.255.255

上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。

比如我的校园网ip就是一个本地地址:

4-25

随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。

二,技术原理

内网主机访问外网

1. 问题:

在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?

2. 解决:

(1) 再申请一些全球 IP 地址

但这在很多情况下是不容易做到的。

(2)采用网络地址转换 NAT。

这是目前使用得最多的方法。

3. 介绍

网络地址转换 NAT 方法于1994年提出。

需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG

所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。

NAT 路由器的工作原理图:

4-26

4. 网络地址转换的过程

简单叙述NAT还可以细分:静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad

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

5. 变体:网络地址与端口号转换 NAPT

使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)

NAT地址转换表:

4-27

其实质:

flowchart LR; 内部地址+内部端口 <--相互转换--> 外部地址+外部端口

扩展l

NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。NAPT算得上是一种较流行的NAT变体,通过转换TCP或UDP协议端口号以及地址来提供并发性。除了一对源和目的IP地址以外,这个表还包括一对源和目的协议端口号,以及NAT盒使用的一个协议端口号。

NAPT的主要优势在于,能够使用一个全球有效IP地址获得通用性。主要缺点在于其通信仅限于TCP或UDP。当所有通信都采用TCP或UDP,NAPT允许一台内部计算机访问多台外部计算机,并允许多台内部主机访问同一台外部计算机,相互之间不会发生冲突。

posted @ 2021-02-02 08:24  TR_Goldfish  阅读(40)  评论(0编辑  收藏  举报