IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 《计算机网络》学习总结——IPv6、IP多播、虚拟专用网与 NAT -> 正文阅读

[网络协议]《计算机网络》学习总结——IPv6、IP多播、虚拟专用网与 NAT

第四章 网络层

4.6 IPv6

IP 协议是互联网的核心协议,而IPv4地址已经耗尽。解决 IP 地址耗尽的根本措施就是采用具有更大地址空间的新版本的 IPv6。2017年7月发布了IPv6的正式标准。

4.6.1 IPv6的基本首部

IPv6 仍支持无连接的传送,但带来了更大的地址空间, IPv6 把地址从 IPv4 的32 位增大到 128 位,这样大的地址空间在可预见的将来是不会用完的。 灵活的首部格式,IPv6 数据报的首部是固定的和 IPv4 的并不兼容, IPv6 定义了许多可选的扩展首部(在有效载荷内),可提高路由器的处理效率。允许协议继续扩充,在技术总是在不断地发展(如网络硬件的更新)、新的应用不断出现依旧能用。支持即插即用(即自动配置),故 IPV6不需要使用 DHCP。支持资源的预分配,支持实时视像等要求保证一定的带宽和时延的应用。

IPv6 数据报由两大部分组成, 即基本首部和后面的有效载荷,也称为净负荷。有效载荷允许有零个或多个扩展首部,再后面是数据部分 。大致如下图所示:

image-20220330132234351

IPv6 基本首部中各宇段的作用:

  1. 版本(version) 占4位。指明了协议的版本,对 IPv6 该字段是 6 (0110)。

  2. 通信量类(affic class) 占8位。用于区分不同的 IPv6 数据报的类别或优先级。目前正在性能实验中。

  3. 流标号(flow label) 占 20 位。 用于标识同一个流的数据报。在资源预分配时用到,允许路由器把每个数据报与一个给定的资源分配相联系。

    "流"就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输) ,而在这个"流"所经过的路径上的路由器都保证指明的服务质量流标号对实时音频/视频数据的传送特别有用。

  4. 有效载荷长度(payload length) 占16 位。指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内)。最大值是 64 KB (65535字节)。

  5. 下一个首部(next header) 占 8 位。它相当于 IPv4 的协议字段或可选字段。

    • IPv6 数据报没有扩展首部时,作用和 IPv4 的协议字段一样, 指出了基本首部后面的数据应交付 IP 层上面的哪一个高层协议(例如: 6 或17 分别表示应交付运输层 TCP 或UDP)
    • 当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型,如上图展示。
  6. 跳数限制(hop limit) 占 8 位。和IPv4的TTL类似,用来防止数据报在网络中无限期地存在。源点在每个数据报发出时即设定某个跳数限制(最大为 255 跳)。

  7. 源地址 占128 位。是数据报的发送端的 IP 地址。

  8. 目的地址 占128 位。是数据报的接收端的 IP 地址。可以是单播,多播(发给一组计算机的每一个,广播为多播的一个特例),任播(终点是一组计算机,数据报给由路由算法得出的那个)地址。

IPv6 定义了以下6种扩展首部: (1) 逐跳选项; (2) 路由选择; (3) 分片; (4) 鉴别; (5) 封装安全有效载荷; (6) 目的站选项。

每一个扩展首部都由若干个字段组成,长度也各不同。但所有扩展首部的第一个字段都是 8 位的"下一个首部"字段。此字段的值指出了在该扩展首部后面的拓展是什么。当使用多个扩展首部时,应按以上的先后顺序出现。高层首部总是放在最后面。

4.6.2 IPv6的地址

IPv6 的地址空间大于 3.4 xl038,每个地址占 128 位, 使用冒号十六进制记法,把每个 16 位的值用十六进制值表示,各值之间用冒号分隔,如68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF ,仍然使用CIDR 的斜线表示法。还支持零压缩(每个IP地址只能用一次),即把其中的一串连续的0用一对冒号代替,如12AB:O:0:CD30:0:0:0:ABCD/60 可以记为12AB::CD30:0:0:0:ABCD/6012AB:0:0:CD30::ABCD/60

IPv6 的地址分类如下表:

image-20220330140324027

未指明地址 这是 16 字节的全 0 地址,可缩写为两个冒号" . . "。这个地址不能用作目的地址,而只能为某台主机当作源地址使用,条件是这台主机还没有配置到一个标准的 IP 地址。这类地址仅此一个。

环回地址 地址是 0:0:0:0:0:0:0: 1,缩写为 : : 1。用于本地软件环回测试。这类地址也是仅此一个。

多播地址 功能和 IPv4 的一样,命名了一组应该在这个网络中应用接收到同一个分组的站点。

本地链路单播地址(Link-Local Unicast Address) 这种地址是在单一链路上使用的。当一个节点启用IPv6时就自动生成,(该节点现在并没有连接到某个网络上),当需要把分组发送到单一链路上的设备而不希望该分组被转发到此链路以外范围时,就可以使用这种特殊地址。

全球单播地址 等同于IPv4公网地址

4.6.3 从IPv4向IPv6过渡

由于现在整个互联网 IPv4的规模太大,向 IPv6 过渡只能采用逐步演进的办法,同时, 还必须能向后兼容。即 IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。有以下两种向 IPv6 过渡的策略, 即使用双协议栈和使用隧道技术。

双协议栈是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有双协议栈:一个 IPv4 和一个 IPv6。它同时具有IPv4和IPv6的地址,它使用域名系统 DNS 查询目的主机的IP协议,和IPv6 主机通信时采用 IPv6 地址,而和 IPv4 主机通信时则采用 IPv4 地址。

隧道技术则是在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报(必须把 IPv4 首部的协议字段设置为 41 ,表示数据报的数据部分是 IPv6 数据报)。转发如下图显示:
在这里插入图片描述

补充:ICMPv6

IPv6 使用新版本的 ICMPv6 来反馈一些差错信息,它比 ICMPv4 要复杂得多,地址解析协议 ARP 和网际组管理协议 IGMP 的功能都已被合并到 ICMPv6 中。ICMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。

4.7 IP多播

4.7.1 IP 多播的基本概念

许多应用要将数据要由一个源点发送到许多个终点,即一对多的通信,若采用多播可大大节约网络资源。如下图(a)所示,视频服务器用单播方式向 90 台主机传送同样的视频节目需要发送 90 个单播。如下图(b)所示,视频服务器用多播方式向属于同一个多播组的 90 个成员 传送节目时,只需把视频分组当作多播数据报来发送,并且只需发送一次。 路由器 ,在转发分组时,需要把收到的分组复制成多个副本,分别向其他路由器转发 1 个副本。当分组到达目的局域网时,利用局域网的硬件多播把数据报交付给多播组成员。

image-20220405125645854

能够运行多播协议的路由器称为多播路由器,多播路由器当然也可以转发普通的单播 IP 数据报。在互联网上进行多播就叫做 IP 多播。 IP 多播所传送的分组需要使用多播 IP 地址。多播地址只能用于目的地址,而不能用于源地址

在多播数据报的目的地址写入的是多播组的标识符,即分类IP地址中的D类地址,224.0.0.0到239.255.255.255。多播数据报是"尽最大努力交付",首部中的协议字段值是 2 ,表明使用网际组管理协议 IGMP。

IP多播可以分为两种,一种是只在本局域网上进行硬件多播,以太网MAC地址字段中,第一字节最低位为1为多播地址,但IANA规定了只有223个地址,即01-00-5E-00-00-00到01-00-5E-7F-FF-FF的地址可作为以太网多播地址。多播IP地址与以太网多播MAC地址可能为多对一的映射关系,因此收到多播数据报的主机,还要在 IP 层利用IP数据报首部的IP地址进行过滤,把不是本主机要接收的数据报丢弃。

而另一种则是在互联网的范围进行多播,这种多播方式需要使用多播路由选择协议和ICMP协议。举例如下所示:

image-20220406133308611

由上可以看到,网际组管理协议 IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报)。从概念上讲, IGMP 的工作可分为两个阶段:

  1. 第一阶段:当某台主机加入新的多播组时,应向多播组的多播地址发送一个 IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,利用多播路由选择协议把这种组成员关系转发给互联网上的其他多播路由器。
  2. 第二阶段:本地多播路由器要周期性地探询本地局域网上的主机,以知道这些主机是否还继续是组的成员。在几次探询内,只要有一台主机对某个组响应,那么多播路由器就认为这个组是活跃的。

4.7.2 多播路由选择协议

使用多播路由选择协议让连接在局域网上的多播路由器能和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。举个简单例子如下所示:

image-20220406140919716

因为每一台主机可以随时加入或离开一个多播组,所以多播发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。因为同一多播组可能处于不同的网络中,如主机E和F,他两互相通信和非组内的通信,需要将多播数据报转发的网络不同,即多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。并且,多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络

单播路由选择通常是在网络拓扑发生变化时才需要更新路由。

虽然在 TCP/IP 中 IP 多播协议己成为建议标准,但多播路由选择协议(用来在多播路由器之间传播路由信息)则尚未标准化。

多播路由选择实际上就是要找出以源主机为根节点的多播转发树。在多播转发树上,每一个多播路由器向树的叶节点方向转发收到的多播数据报,但在多播转发树上的路由器不会收到重复的多播数据报。对不同的多播组、不同的源点都对应于不同的多播转发树。

己有了多种实用的多播路由选择协议,它们在转发多播数据报时使用了以下的三种方法:

  1. 洪泛与剪除。适用于较小的邻接局域网的多播组,路由器转发多播数据报使用洪泛的方法(广播)。为了避免兜圈子,采用了反向路径广播RPB,即只接收和转发从源点经最短路径传送来的数据包,最后得到多播转发树,若有多余的节点,即剪除。

  2. 隧道技术,适用于多播组的位置在地理上很分散的情况。在不支持多播的网络之间,对多播数据报进行再次封装,即再加上普通数据报首部,使之成为向单一目的站发送的单播数据报,然后通过"隧道" 发送。如下图所示:

    image-20220406143324938

  3. 基于核心的发现技术,对于多播组的大小在较大范围内变化时都适合。为每个多播组指定一个核心路由器,给出它的 IP 单播地址,核心路由器再创建出对应于多播组的转发树。

目前还没有在整个互联网范围使用的多播路由选择协议。

4.8 虚拟专用网和网络地址转换NAT

4.8.1 虚拟专用网

由于 IP 地址的紧缺,仅在机构内部使用的计算机可以使用由本机构分配并仅在本机构有效的 IP 地址(称为本地地址),而不需要向互联网的管理机构申请全球唯一的 IP 地址(称为全球地址)。互联网标准指定了只能用于一个机构的内部通信的专用IP地址(也叫可重用地址),IPv4的三个专用地址块为:

  1. 10.0.0.0 10 .2 55.255 .2 55 (或记为 10.0.0.0/8 )

  2. 172.16.0.0 172 .31. 255.255 (或记为 172.16.0.0/12 )

  3. 192.168.0.0 192.168.255.255 (或记为 192.168.0.0/16 )

在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。采用这样的专用 IP 地址的互连网络称为专用互联网或本地互联网,或专用网。当机构里的主机分布范围很广,又需要经常互相交换信息,一般利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 V敏感P敏感N (Virtual Private Network),而所有通过互联网传送的数据都必须加密,在效果上和真正的专用网一样。

以下图为例说明如何使用 IP 隧道技术实现虚拟专用网,

image-20220406205752199

由图明显可知,每一个场所至少要有一个路由器具有合法的全球 IP 地址负责与互联网进行通信,如R1和R2。在每一个场所内部的通信都不经过互联网,若需要与其他场所通信,在路由器收到内部数据报后,先把进行加密,然后又加上数据的首部,封装成互联网上的数据报,到达目的路由器再取出解密。

还有一种类型是远程接入虚拟专用网 。在外地的PC接入互联网,而PC的 虚拟专用网的软件在PC和公司的主机之间建立隧道,因而外地员工与公司通信的内容也是保密的,员工们感到好像就是使用公司内部的本地网络。

4.8.2 网络地址转换 NAT

在专用网内使用专用地址的主机需要与互联网上的主机进行通信时,一般采用网络地址转换NAT。在专用网连接到互联网的路由器上安装 NAT 软件,它至少有一个有效的外部全球 IP 地址,所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

NAT 路由器的工作原理如下图所示:

image-20220406211600518

由此可见,当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。但目前为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在(NAPT)常用的 NAT 转换表把运输层的端口号也利用上,如下表所示。可以使多个拥有本地地址的主机,共用一个 全球 IP 地址。

image-20220406211958409

本文参考 计算机网络(第8版) / 谢希仁编著. ----北京:电子工业出版社,2021.6

若能对你有所帮助,请点个赞,欢迎交流。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:53:50  更:2022-04-09 18:56:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/31 4:18:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码