33

IPv4 到 IPv6 过渡的这些知识点,你一定得知道

 4 years ago
source link: https://network.51cto.com/art/201911/606399.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

IPv4 到 IPv6 过渡的这些知识点,你一定得知道

网络是我们工程师的基础技能之一, 毕竟没有网络我们什么也干不了。从各大公司的招聘要求上看,网络也是重点的考核部分。

作者:SPOTO—思科华为培训来源:今日头条|2019-11-21 10:59

 前言

网络是我们工程师的基础技能之一, 毕竟没有网络我们什么也干不了。从各大公司的招聘要求上看,网络也是重点的考核部分。

f7599f973e47378f93b15ebdffa7bf69.jpg-wh_651x-s_3921073279.jpg

理解网络模型

网络的设计大佬们想出了分层的设计,将各个功能分开,交付给不同的层,这样的好处是便于更新和维护(IPv6的到来并没有使整个网络重新设计),也便于我们的学习和理解。

下面是各个版本的网络体系的结构图:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

让我们明确下各层的工作职责(以五层协议为例):

  • 应用层,该层协议主要负责各个应用程序之间交互的规则。如HTTP,DNS,其交互的数据单元可以称为”报文”
  • 运输层,为应用层提供通用的数据传输服务。为上层跑腿的,TCP,UDP均是运输层协议
  • 网络层,为网络中不同的主机提供通信服务。IP协议工作在该层
  • 数据链路层,负责相邻两点的数据传送
  • 物理层,传输比特流, 0 或 1,每一层将数据封装成自己能理解的数据格式交付给下一层,下一层将收到的作为自己的数据再次添加本层的必要数据向下交付,直到链路层,传递到目的地后,每层再将该层的必要数据去掉,交付给上层。
「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

理解IP协议

在理解了网络模型和各层直接的配合之后,下面进入今天的正题,网际协议(IP)。

该节主要理解IP协议给我们提供的功能有哪些,说白了就是它能干嘛。

  • 为网络中的主机(PC或路由或网关)提供身份证
  • 定义了网络主机的基本交流方式,从IP数据报的格式可以看出
  • 为路由寻址提供方便,从路由表结构可以看出。

任何一个协议都可以由语法,语义和同步三部分组成。

  • 语法,交换信息的格式,对于IP协议,就是IP报文的格式
  • 语义,即需要发出何种控制信息,以及接收到信息后如何响应
  • 同步,对事件顺序的详细说明

也就是定义了使用IP协议进行交流的法则。

IPv4

IPv4是IP协议的第4个版本,就是我们现在使用的。下面从多个方面了解下该版本。

IP地址

网络上的主机都需要一个IP地址,这样才能知道彼此的位置。IPv4地址由32bit构成,常使用点分十进制表示(192.168.1.1)。

分类

IP地址的分类就是把所有IP划分为若干类别,每一类都由固定长度的字段组成。分别为网络号和主机号。

下面是各类地址组成示意图:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道
  • A类地址,8位网络号,第一位固定为0。可用的网络号只有126个(2^7-2),网络号从0到127。减去2是因为IP地址全为0表示”本网络”保留;网络号为127作为软件回环测试使用,若主机发出目的地为127.0.0.1的数据时,该数据不会向任何网络上的主机发送。也就是说127开头的地址不能使用。对于A类地址中的每一个网络号,对应的主机号有(2^24-2)个,主机号全0表示,其网络号对应的网络地址,全1表示所有主机的意思。
  • B类地址网络号为16位,但前面2位以固定为1 0。无论怎么取值,无法出现全0或全1的情况。128.0.0.0的网络是不使用的,实际使用的最小B类网络地址为128.1.0.0.所以B类的网络地址有(2^14-1)个。
  • C类的地址有24位的网络号,最前面的3位固定为1 1 0.192.0.0.0的网络地址也是不使用的,最小的C类地址为192.0.1.0 。

总结如下:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

分类的好处:

  • 方便管理,IP地址管理机构只需管理网络号,剩下的可以由下级管理。
  • 路由寻址时根据网络地址转发分组,减小路由表。

数据报格式

先看下IP数据报的基本格式:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

可以看到IP数据报包含了首部和数据部分。其中首部包含固定的20字节和可变的部分。

下面是各部分的解释:

  • 版本,占4位,IP协议的版本号,通信双方需要相同
  • 首部长度,占4位,单位4字节。最大能表示(2^4-1) * 4 = 60字节。当IP分组的首部长度不是4的整数倍时,需要使用填充字段填充
  • 区分服务,占8位,表示服务类型未使用;
  • 总长度,占16位,表示首部和数据部分的总长度(单位字节)。因此数据报的最大总长度为(2^16-1 = 65535)字节
  • 标识(identification),占16位,当数据报长度超过下层的MTU时,需要分片, 被分片的数据报的标识一样,这样可以进行重组
  • 标志(Flag), 占3位,目前只有2位有意义
  • 最低位,MF(More Fragment) = 1 表示后面还有分片。MF = 0 表示分片中的最后一个
  • 中间一位,DF(Don’t Fragment),不要分片,只有当DF=0才允许分片
  • 片偏移, 占13位,较长的分组在分片后,某片在原分组的相对位置必须是8字节的整数倍。
  • 生存时间,占8位,Time To Live(TTL),开始指生存的秒数,后来变为经过路由的跳数,每经过一个路由TTL减小1,当为0时丢弃该数据。显然最大跳数为255,为1时就只能在局域网中传播了。
  • 协议, 占8位,支出该数据报的数据是使用何种协议, 以便目的主机IP层知道将数据交付给哪个协议处理。

常用的协议及对应数值:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

  • 首部校验和, 占16位,数据报的首部校验和,不包括数据部分
  • 源地址, 目的地址, 各占32位。

IPV6

IPv6的出现是解决IPv4资源枯竭的问题。其仍然支持无连接的传送,但传送的是PDU分组,而不是IPv4的数据报。

IP地址

IPv6的地址是128bit,在可预见的未来是够用的。但和IPv4版本并不兼容, 若使用IPv4版本的主机A和使用IPv6版本的主机B之间通信是需要特殊处理的,在后面会介绍方法。

IPv6的地址表示

IPv6的地址采用冒号十六进制记法 , 8组4个16进制数字,中间使用冒号隔开。

6845:8C64:FFFF:FFFF:0:1180:9000:FFFF

  • 若一组中全是0,可以省略三个
  • 若存在连续多组0,可以使用冒号取代,但只能压缩一次 FF05:0:0:0:0:0:0:B3 可以压缩为 FF05::B3 1090:0:0:0:8:800:200C:417A 可以压缩为 1090::8:800:200C:417A 全零可记为 ::
  • 最后的2组可以使用IPv4的点分十进制表示 0:0:0:0:0:0:128.10.2.1 可表示为 ::128.10.2.1 。

数据报格式

IPv6数据报由两大部分组成,基本首部和有效载荷。有效载荷运行有0个或多个扩展首部。

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

可以看到IPv6的首部是固定的40字节,和IPv4不同;在组成上也有很大区别,下面看下各部分的意思。

  • 版本,占4位,协议的版本通信双方需要相同
  • 通信量类,占8位,区分不同的IPv6的数据报或优先级
  • 流标号,占20位,IPv6一个新机制就是支持资源预分配,运行路由把每个数据报与特定的资源分配和联系。IPv6提出流的概念指互联网上从特定源点到特定终点的一系列数据报(如实时的音频或视频传输),在这个流经过的路径上路由都保证指明的服务质量。所有属于同一个流的数据报具有相同的流标号。赋值为0即为关闭
  • 有效载荷长度,占16位,指明除基本首部以外的字节数。最大64KB;
  • 下一首部,占8位,相当于IPv4的协议字段或可选字段。
  • 当IPv6没有扩展首部时,该字段和IPv4的协议字段一样;
  • 有扩展首部时,表示第一个扩展首部的类型
  • 跳数限制,和IPv4的TTL一样
  • 源地址,目的地址,各占128位。

从IPv4向IPv6过渡

网络如此庞大,从IPv4向IPv6的变换不可能一蹴而就。若要在两个版本的协议下通信,有下面的2个方法。

简单的说就是一个主机能够理解两个版本的内容,这样主机也要有2个版本对应的IP地址。具有双协议栈的主机,可以通过DNS系统知道目的主机使用的协议版本了。

下面是两台使用IPv6的主机通信示意图,它们之间需要通过IPv4网络,在必要的时候经过双协议栈的主机进行协议的转换,当然转换的时候有些信息可能丢失,这也是不可避免的。

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

使用隧道技术

隧道技术的原理是,在IPv6的数据需要进入IPv4网络时,将IPv6的数据报(准确的说是PDU)当成IPv4数据报的数据部分,使用IPv4版本传输,在离开IPv4网络时在此组装成IPv6的数据,发往目的地。

下面是一个示意图:

「干货」IPv4 到 IPv6 过渡的这些知识点,你一定得知道

【编辑推荐】

【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0
大家都在看猜你喜欢

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK