|
|
51CTO旗下网站
|
|
移动端

IPv4 过渡到 IPv6 ,这些知识点一定要知道

网络是工程师的基础技能之一,毕竟没有网络我们什么也干不了!从各大公司的招聘要求上看,网络也是重点的考核部分。今天就和大家一起复习下(还)大学里的课程(欠下的债)!TCP/IP协议簇的IP协议。

作者:twt社区来源:twt企业IT社区|2020-05-09 08:31

网络是工程师的基础技能之一,毕竟没有网络我们什么也干不了!从各大公司的招聘要求上看,网络也是重点的考核部分。今天就和大家一起复习下(还)大学里的课程(欠下的债)!TCP/IP协议簇的IP协议。

理解网络模型

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

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

应用层,该层协议主要负责各个应用程序之间交互的规则,如HTTP、DNS,其交互的数据单元可以称为”报文”。

运输层,为应用层提供通用的数据传输服务,为上层跑腿的。TCP、UDP均是运输层协议。

网络层,为网络中不同的主机提供通信服务,IP协议工作在该层。

数据链路层,负责相邻两点的数据传送。

物理层,传输比特流,0 或 1。每一层将数据封装成自己能理解的数据格式,交付给下一层,下一层将收到的作为自己的数据再次添加本层的必要数据,向下交付,直到链路层,传递到目的地后,每层再将该层的必要数据去掉,交付给上层。如下图:

理解IP协议

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

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

为网络中的主机(PC或路由或网关)提供身份证。

定义了网络主机的基本交流方式,从IP数据报的格式可以看出。

为路由寻址提供方便,从路由表结构可以看出。

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

语法,交换信息的格式,对于IP协议,就是IP报文的格式。

语义,即需要发出何种控制信息,以及接收到信息后如何响应。

同步,对事件顺序的详细说明。

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

IPv4

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

IP地址

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

分类

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

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。

总结如下:

分类的好处:

方便管理,IP地址管理机构只需管理网络号,剩下的可以由下级管理。

路由寻址时根据网络地址转发分组,减小路由表。

数据报格式

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

可以看到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层知道将数据交付给哪个协议处理,常用的协议及对应数值:

首部校验和, 占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个或多个扩展首部。

可以看到,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网络,在必要的时候经过双协议栈的主机进行协议的转换,当然转换的时候有些信息可能丢失,这也是不可避免的。

使用隧道技术

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

本文来源自网络,著作权归原作者所有

【编辑推荐】

  1. 7种优秀开源网络监控工具
  2. Linux下3种常用的网络测速工具
  3. 蜂窝网络是如何为物联网服务的?
  4. 网络现代化之路,从现在开始
  5. 中国网络将走向自主化,再也不受限于美国
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

从头解锁Python运维

从头解锁Python运维

多维度详解
共19章 | 叱诧少帅

264人订阅学习

Active Directory 架构规划实战

Active Directory 架构规划实战

4类AD架构规划
共15章 | wx5918591c0084b

320人订阅学习

庖丁解牛Ceph分布式存储

庖丁解牛Ceph分布式存储

云计算存储的基石
共5章 | Happy云实验室

189人订阅学习

视频课程+更多

Linux C++

Linux C++

讲师:王健伟50734人学习过

项目管理实战-如何启动项目

项目管理实战-如何启动项目

讲师:陈志文335人学习过

架构之路 - JAVA之设计模式精讲

架构之路 - JAVA之设计模式精讲

讲师:王军伟28355人学习过

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微