概述
概述
-
网络层向上只提供简单的、无连接的、尽最大努力交付的数据报服务,不保证可靠通信负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
-
虚拟互联网络
- 互联网互联的设备
中间设备又称为中间系统或中继(relay)系统。- ->物理层中继系统:转发器(repeater),有点像集线器。
- ->数据链路层中继系统:网桥或桥接器(bridge)。
- ->网络层中继系统:路由器(router)。
- ->传输层/应用层中继系统:网关(gateway)器。
- 网关就是路由器接口的地址。一般是本网段第一个地址。
- 虚拟网络把复杂的Internet看成一个网络,化简问题。虚拟互联网络就是逻辑互联网络,他的意思就是互联起来的各种物理网络的异构性本来就是客观存在的, 但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,而不用考虑具体的网络异构细节。
- 互联网互联的设备
3. 与 IP 协议配套使用的还有三个协议
1. 地址解析协议 ARP(Address Resolution Protocol)
2. 网际控制报文协议 ICMP(Internet Control Message Protocol)
3. 网际组管理协议 IGMP(Internet Group Management Protocol)
4. 传输过程
发送端(封装):
- 应用层准备要传输的数据;
- 传输层把文件进行分段并编号;(数据段)
- 网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
- 数据链路层把每个数据加上MAC地址;两种情况:(数据帧)
使用自己的子网掩码,判断自己和目标地址分别在哪个网段,若在同一个网段(不过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧;如果子网掩码不是一个网段(用与运算),通过ARP协议广播的方式得到路由器(网关)的MAC地址,然后把数据通过交换机发送到路由器M2,因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF。 - 物理层把数据帧变成数字信号(bit流)
接收端(解封):
- 交换机Hub0接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的,要去哪。
- 路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容。
- 路由器M2到M3是点对点通信,遵守PPP协议。
- PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来。
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
ARP协议:为IP协议服务
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播(不过路由)的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
四种使用情况:
- 发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
- 发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
- 发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
- 发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
逆地址解析协议RARP:
只知道自己MAC地址就能获得其IP地址。
ICMP协议
-
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议。
-
ICMP报文为IP层数据报的数据加上数据报的首部,组成IP数据报发送出去。
-
ICMP差错报告报文封装过程
-
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
-
ICMP 报文分为差错报告报文和询问报文。
-
不发送ICMP差错报告报文的情况:
- 对ICMP差错报告报文,不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文
- 对具有多播地址的数据报,都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不发生ICMP差错报告报文
Ping
- Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
- Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
- TTL是数据报的生存时间每过一个路由器就会减1,作用是防止数据报在网络中循环。TTL默认初始值如下:
Linux 64
Windows 128
Unix 256 - ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择
Traceroute
- Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
- Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。
- 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;
- 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。
- 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
- 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。
IGMP协议
- 点到点通信:
- 广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。
- 组播=多播:分组广播,可以跨网段。
- 访问多播视频节目
- 使用多播一般用于直播,网络会议,能够节省带宽。
- IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
IP数据报格式
- 版本 : 表示TCP/IP协议的版本,有 4(IPv4)和 6(IPv6)两个值;
- 首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- 区分服务 : 占8位,用来获得更好的服务,一般情况下不使用。
- 总长度 : 占16位,包括首部长度和数据部分长度。IP数据报封装为MAC帧时受限于MAC帧的长度上限,所以IP数据报还存在 “分片” 操作,即将IP数据报分为多片,封装进多个MAC帧。因此IP数据报最大长度
2
16
−
1
=
65535
2^{16}-1=65535
216−1=65535字节
- 注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节,是不一样的。所以说,一旦超过数据链路层的最大要求时**(网络层数据部分超过1480字节)**,数据包会分片。最大传输单元MTU:Maximum Transmission Unit。
- 数据包分片:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(泪滴攻击就是利用目标机发送破坏的IP包(重叠的包货过大的包负荷)可以通过TCP/IP协议来瘫痪各种不同的操作系统)。所以需要编号。
- 标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
- 标志: 占3位,目前只有前两位有意义,最低位为MF(More Fragment),若MF=1则说明该数据报后面“还有分片”。中间一位为DF(Don’t Fragment),若DF=1则不能分片,只有DF=0才可以分片
- 片偏移 : 占13位,和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节,每个分片一定是8字节的整倍数。
- 生存时间 : TTL,占8位,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
- 协议 : 指出携带的数据应该上交给哪个协议进行处理
- ICMP协议号:1;
- IGMP协议号:2;
- TCP协议号:6;
- UDP协议号:17;域名解析
- IPv6协议号:41;
- OSPF协议号:89;
- 首部检验和 : 因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
- 源地址
- 目的地址
- 可变部分:长度为1~40字节,IP地址中的可变部分可用于支持很多操作,但很多情况都用不上,而且会增加路由器处理分组的开销,所以IPv6中的数据报首部做成了固定长度。
IP地址编址方式
分类的IP地址:是最基本的编址方法
由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。
一个IP地址再整个互联网范围内是唯一的。
IP地址的记法:点分十进制记法
IP 地址 ::= {< 网络号 >, < 主机号 >}
常用的三类IP地址:
-
A类:
- 最大可指派网络数:126(2^7-2) 8位除去1个固定位剩7位,减2因为要除去全0和全1位
- 第一个可指派的网络号:1
- 最后一个可指派的网络号:126
- 每个网络中最大主机数:16777214(2^24-2(网络地址+广播地址))
-
B类:
- 最大可指派网络数:16383(2^14-1) 16位除去2个固定位,减1因为有两个固定位为10,所以不存在全0或全1,但规定128.0.0.0不使用,所以减去
- 第一个可指派的网络号:128.1
- 最后一个可指派的网络号:191.255
- 每个网络中最大主机数:65534(2^16-2(网络地址+广播地址))
-
C类:
- 最大可指派网络数:2097151(2^21-1) 24位除去3个固定位,减1同B类,192.0.0.0规定不使用
- 第一个可指派的网络号:192.0.1
- 最后一个可指派的网络号:223.255.255
- 每个网络中最大主机数:254(2^8-2(网络地址+广播地址))
一般不使用的特殊IP地址:
IP地址的重要特点:
- 每一个IP地址都由网络号和主机号两部分组成,是一种分等级的地址结构
- 实际上IP地址是标志一个主机或(路由器)和一条链路的接口
- 用转发器或网桥连接起来的若干给局域网仍为一个网络,因为这些局域网都具有同样的网络号net-id
- 所有分配到网络号的网络都是平等的
网络上的IP地址:
- 同一局域网上的各IP地址的网络号都是相同的
- 用网桥互连的网段仍是一个局域网,只有一个网络号
- 一个路由器有多个接口,每个接口对应的网络号不同
- 两路由器直接相连时,可以不给两端接口分配IP,这样的特殊网络也叫无编号网络或无名网络
子网的划分:对最基本编址方法的改进
**划分子网的基本思路:**借用主机号若干位作为子网地址
划分子网后的IP地址:| 网络号 | (子网) | 主机号 |
子网数:2^k-2,k表示子网号的位数,减去全0和全1,就是可用子网数,虽然现在全0和全1地址也可以使用,但不推荐
子网划分方法:
固定长度划分:所划分的所有子网的子网掩码都是相同的,取所用最大的主机数进行划分
变长划分:根据需求灵活划分
子网掩码
- 作用:用来找出IP地址中的子网部分,长度为32位,原IP中网络号和子网部分置为1,主机号部分置为0
- ( I P 地 址 ) a n d ( 子 网 掩 码 ) = 网 络 地 址 (IP地址)and(子网掩码)=网络地址 (IP地址)and(子网掩码)=网络地址
- 默认子网掩码:在不进行子网划分时,也要给出子网掩码,就用默认子网掩码
- 要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
- 注意,外部网络看不到子网的存在。
- 子网数:2^k-2,k表示子网号的位数,减去全0和全1,就是可用子网数,虽然现在全0和全1地址也可以使用,但不推荐
子网划分方法:- 固定长度划分:所划分的所有子网的子网掩码都是相同的,取所用最大的主机数进行划分
- 变长划分:根据需求灵活划分
构成超网:比较新的无分类编址方法
-
无分类编址 CIDR (Classless InterDomain Routing)消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。
-
IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
-
CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。
-
CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。
-
一个 CIDR 地址块中有很多地址,一个 CIDR 表示的网络就可以表示原来的很多个网络,并且在路由表中只需要一个路由就可以代替原来的多个路由,减少了路由表项的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 。
-
在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。
-
好处:
- 提高IPv4地址空间分配效率
- 提高路由效率
- 将多个子网聚合为一个较大的子网
- 也就是构造超网,也叫做路由聚合,简化路由表
-
在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。
- 最长前缀匹配:
用收到的目的地址与路由表中的每条掩码依次相与,取最长前缀匹配项的地址作为下一跳
因为前缀越长,其地址块就越小,因而路由就越具体
- 最长前缀匹配:
如果选择较短的前缀匹配,则可能出现黑洞现象,如下图,聚合的子网里缺少了一部分。
虚拟专用网 VPN
-
由于 IP 地址的紧缺,一个机构能申请到的 IP 地址数往往远小于本机构所拥有的主机数。并且一个机构并不需要把所有的主机接入到外部的互联网中,机构内的计算机可以使用仅在本机构有效的 IP 地址(专用地址)。
-
有三个专用地址块:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255 -
VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。
-
VPN的构建:
所有通过互联网传送的数据都必须加密,要构建VPN必须为它的每一个场所配置专门的硬件和软件,使每一个场所的VPN系统都知道其他场所的地址 -
下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。
网络地址转换 NAT
- 专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP,要在路由器上安装NAT软件,装有NAT软件的路由器称为NAT路由器。
- NAT网络转换的过程:
-
在内部主机与外部主机通信时,在NAT路由器上进行了两次转换
离开专用网时:替换源地址,将内部地址替换为全球地址
进入专用网时:替换目的地址,将全球地址替换为内部地址 -
通过NAT路由器的通信必须由专用网内的主机发起,专用网内部的主机不能充当服务器用,因为互联网上的用户无法请求专用网内的服务器提供服务
-
- 可以使多个本地主机共用一个全球IP地址
- NAPT地址转换过程:
NAPT把专用网内不同的源IP地址,都转换为同样的全球IP地址,但对源主机所采用的TCP端口号,则转换为不同的新的端口号,因此,当NAPT路由器收到从互联网发来的应答时,就可以从IP数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从NAPT转换表中找到正确的目的主机
路由器结构
- 路由器:路由器是一种由多个输入端口和多个输出端口的专用计算机
- 路由器从功能上可以划分为:路由选择和分组转发。
- 路由选择部分:路由选择处理机,路由选择协议,路由表
- 分组转发结构由三个部分组成:交换结构、一组输入端口和一组输出端口。
- 转发根据转发表,转发表由路由表而来,路由选择根据路由表,路由表由路由选择协议及相关算法而来
- 分组丢弃:由于没有足够存储空间
每个路由器路由表表项数:每有一个网络就要有一个路由表项
接口所在网络为直连网络,直接交付
特定主机的路由:给特定主机指定路由表,通过指定路线访问目标主机
默认路由:可以减少路由表所占用的空间和搜索路由表所用的时间,将不在路由表中的网络都连向默认路由
路由表:只有目标网络和对应的下一跳地址,并不储存到某个网络的完整路径
路由器分组转发流程
- 从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。
- 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付;
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器;
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
- 报告转发分组出错。
使用子网时的分组转发:
子网划分后的路由表:包含目的网络地址、子网掩码、下一跳地址
子网划分后的路由器转发分组算法:
- 从收到的数据报首部提取目的IP地址D
- 先判断是否为直接交付。对路由器直接相连的网络进行逐个检查:用各网络的子网掩码和D逐位相与,看结果是否和相对应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行(3)。
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由:否则执行(4)。
- 对路由表的每一行,用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(6)。
- 报告转发分组出错。
互联网的路由选择协议
- 互联网采用分层次的路由选择协议,自适应的(动态的)、分布式路由选择协议,能随着网络通信量和拓扑结构的变化而自适应地进行调整。
- 自治系统AS:
在单一技术管理下的一组路由器,在AS内部使用内部网关协议,AS之间使用外部网关协议 - 互联网可以划分为许多较小的自治系统 AS,一个 AS 可以使用一种和别的 AS 不同的路由选择协议。
- 可以把路由选择协议划分为两大类:
自治系统内部的路由选择:RIP 和 OSPF
自治系统间的路由选择:BGP
RIP
-
RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。最多包含15个路由器,最大跳数为15 。距离取值范围为 0 − 15 0-15 0−15,取16时,表示距离无穷大。
-
工作流程:每个路由器每隔一段时间向外广播,每个路由器收到广播后更新自己的路由表
刚开始时只知道直连网络的距离,路由表为空,以后,每个路由器只和数目有限的相邻路由器交互并更新路由信息,经过若干次更新后,所有路由器最终会知道到达本自治系统其他路由器的最短距离和下一跳地址,此时称该网络收敛 -
RIP协议的特点:
-
仅和相邻路由器交换信息,不相邻的路由器不交换信息
-
交换的信息是当前本路由器所知道的全部信息,即其现在的路由表
-
按固定时间间隔交换信息
-
-
距离向量算法:
- 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
- 对修改后的 RIP 报文中的每一个项目,进行以下步骤:
- 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
- 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
- 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。
RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。
OSPF
- 开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。
- 开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。
- OSPF 具有以下特点:
- 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
- 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
- 只有当链路状态发生变化时,路由器才会发送信息。
- 所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。
BGP
-
BGP(Border Gateway Protocol,边界网关协议)
-
AS 之间的路由选择很困难,主要是由于:
- 互联网规模很大;
- 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
- AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。
-
BGP 只能寻找一条比较好的路由,而不是最佳路由,采用路径向量路由选择协议。
-
每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
IPV6
- 最初动机:32为ipv4地址空间分配殆尽
其他动机:改进首部格式 - IPV6数据报格式:
- 固定长度的40字节基本首部
- 不允许分片
- 基本首部
各字段含义:- 版本:占4位。指明协议的版本
- 通信量类:占8位。为了区分不同的IPv6数据报的类别或优先级
- 流标号:占20位。标明数据报所属的流,在流经过的路径上的路由器都保证服务质量
- 有效载荷长度:占16位。指明除基本首部外的字节数,最大值是64KB
- 下一个首部:占8位。相当于IPv4的协议字段或可选字段。当没有扩展首部时,指明首部后面的数据应交付IP上层哪个协议;有扩展首部时,就标识后面第一个扩展首部的类型
- 跳数限制:占8位。防止数据报在网络中无限期存在,最大255跳,每转发一次就-1,为0就将这个数据报丢弃
- 源地址:占128位。是数据报发送端的IP地址
- 目的地址:占128位。是数据报接收端的IP地址
IPv6地址
- 结点与接口:将实现IPv6的主机和路由器均称为结点
- IPv6的表示:
- 冒号16进制记法:用8段,每段4个16进制数组成,允许将数据前的0省略
例:68E6:8C64:FFFF:FFFF:0:1180:FFFF:FFFF - 零压缩:一串连续的零可用一对冒号所代替,在一个地址中只能使用一次,若多次压缩将导致地址无法还原
例:FF05:0:0:0:0:0:0:0:03 => FF05::03 - 点分十进制记法的后缀:可将IPv4地址前添加6组0,使其变成IPv6的地址
例如:0:0:0:0:0:0:128.10.2.1 = ::128.10.2.1
- 冒号16进制记法:用8段,每段4个16进制数组成,允许将数据前的0省略
- 地址前缀:2002:43c:476b::/48
注:ipv6不再使用掩码 - 地址分类
IPV4向IPV6过渡
- 双协议栈:在完全过渡到IPv6前,使一部分主机或路由器装有两个协议栈,使其可与不同网络通信时采用不同的协议,将IPv6数据报报头改为IPv4数据报形式
- 隧道技术:在IPv6协议进入IPv4网络时,更改源地址为隧道起点,目的地址变为隧道终点,建立隧道,使整个原IPv6数据报作为IPv4数据报的数据部分,在出隧道时改回原来的源地址和目的地址,还原为IPv6数据报