要解决IP地址耗尽的问题,可以采用以下三个措施:
(1)采用无分类编址CIDR,使IP地址的分配更加合理。
(2)采用网络地址转换NAT方法,可节省许多全球IP地址。
(3)采用具有更大地址空间的新版本的IP协议,即IPv6。
前两种只能缓解,IPv6才能从根本上解决问题。
IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为 分组 ,而不是 IPv4 的数据报。
IPv6所引进的主要变化如下:
(1)更大的地址空间。 IPv6把地址从IPv4 的 32 位增大到 4倍,即增大到128位,使地址空间增大了2倍。这样大的地址空间在可预见的将来是不会用完的。
(2)扩展的地址层次结构。 IPv6由于地址空间很大,因此可以划分为更多的层次。
(3)灵活的首部格式。 IPv6 数据报的首部和 IPv4 的并不兼容。IPv6定义了许多可选的扩展首部,不仅可提供比 IPv4更多的功能,而且还可提高路由器的处理效率,这是因为路由器对扩展首部不进行处理((除逐跳扩展首部外)。
(4)改进的选项。 IPv6 允许数据报包含有选项的控制信息,因而可以包含一些新的选项。IPv4 所规定的选项是固定不变的。
(5)允许协议继续扩充。 因为技术总是在不断地发展(如网络硬件的更新)而新的应用也还会出现。但IPv4的功能是固定不变的。
(6)支持即插即用(即自动配置)。
(7)支持资源的预分配。 IPv6支持实时视像等要求保证一定的带宽和时延的应用。
(8)IPv6首部改为8字节对齐 (即首部长度必须是8字节的整数倍)。IPv4首部是4字节对齐。
IPv6 数据报在 基本首部(base header) 的后面允许有零个或多个 扩展首部(extensionheader) ,再后面是数据。但所有的扩展首部都不属于IPv6 数据报的首部。
所有的扩展首部和数据合起来叫做数据报的 有效载荷(payload) 或 净负荷 。
与 IPv4 相比,IPv6 对首部中的某些字段进行了如下的更改:
1.取消了首部长度字段,因为它的首部长度是固定的(40字节)。
2.取消了服务类型字段,因为优先级和流标号字段合起来实现了服务类型字段的功能。
3.取消了总长度字段,改用有效载荷长度字段。
4.取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中。
5.把TTL字段改称为跳数限制字段,但作用是一样的(名称与作用更加一致)。
6.取消了协议字段,改用下一个首部字段。
7.取消了检验和字段,这样就加快了路由器处理数据报的速度。在数据链路层对检测出有差错的帧就丢弃。在运输层,当使用UDP时,若检测出有差错的用户数据报就丢弃。当使用TCP时,对检测出有差错的报文段就重传,直到正确传送到目的进程为止。因此在网络层的差错检测可以精简掉。
8.取消了选项字段,而用扩展首部来实现选项功能。
IPv6基本首部中各字段的作用
(1)版本(version) 占4位。它指明了协议的版本,对IPv6该字段是6。
(2)通信量类(traffic class) 占8位。这是为了区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
(3)流标号(flow label) 占20 位。IPv6 的一个新的机制是支持资源预分配,并且允许路由器把每一个数据报与一个给定的资源分配相联系。IPv6 提出流(flow)的抽象概念。
所谓“流”就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。因此流标号对实时音频/视频数据的传送特别有用。对于传统的电子邮件或非实时数据,流标号则没有用处,把它置为 0 即可。
(4)有效载荷长度(payload length) 占16位。它指明IPv6数据报除基本首部以外的子节数(所有扩展首部都算在有效载荷之内)。这个字段的最大值是 64 KB (65535字节)。
(5)下一个首部(next header) 占8位。它相当于IPv4的协议字段或可选字段。
当IPv6数据报没有扩展首部时,下一个首部字段的作用和IPv4的协议字段一样,它的值指出了基本首部后面的数据应交付给 IP 上面的哪一个高层协议;
当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型。
(6)跳数限制(hop limit) 占8位。用来防止数据报在网络中无限期地存在。源点在每个数据报发出时即设定某个跳数限制(最大为255跳)。每个路由器在转发数据报时,要先把跳数限制字段中的值减1。当跳数限制的值为零时,就要把这个数据报丢弃。
(7)源地址 占128位。是数据报的发送端的IP地址。
(8)目的地址 占128位。是数据报的接收端的IP地址。
IPv6 把分片限制为由源点来完成。源点可以采用 保证的最小MTU(1280字节),或者在发送数据前完成 路径最大传送单元发现(Path MTU Discovery) ,以确定沿着该路径到终点的最小MTU。当需要分片时,源点在发送数据报前先把数据报分片,保证每个数据报片都小于此路径的MTU。因此,分片是端到端的,路径途中的路由器不允许进行分片。
IPv6 基本首部中不包含用于分片的字段,而是在需要分片时,源点在每一数据报片的基本首部的后边插入一个小的分片扩展首部。
IPv6保留了IPv4分片的大部分特征,其分片扩展首部共有以下几个字段:
(1)下一个首部(8位) 指明紧接着这个扩展首部的下一个首部。
(2)保留(10位) 为今后使用。该字段在第8 ~ 15位和第29 ~ 30位。
(3)片偏移(13位) 指明本数据报片在原来的数据报中的偏移量,以8个字节为表示单位。可见每个数据报片的长度必须是8个字节的整数。
(4) M(1位) M=1表示后面还有数据报片。M=0则表示这已是最后一个数据报片。
(5)标识符(32位) 由源点产生的、用来唯一地标志数据报的一个32位数。每产生一个新数据报,就把这个标识符加1。采用32位的标识符,可使得在源点发送到同样的终点的数据报中,在数据报的生存时间内无相同的标识符(即使是高速网络)。
一般来讲,一个 IPv6 数据报的目的地址可以是以下三种基本类型地址之一:
(1)单播(unicast)
单播就是传统的点对点通信。
(2)多播(multicast)
多播是一点对多点的通信,数据报发送到一组计算机中的每一个。IPv6没有采用广播的术语,而是将广播看作多播的一个特例。
(3)任播(anycast)
这是IPv6增加的一种类型。任播的终点是一组计算机,但数据报只交付给其中的一个,通常是距离最近的一个。
IPv6 把实现 IPv6 的主机和路由器均称为 结点 。由于一个结点可能会使用多条链路与其他的一些结点相连,因此一个结点就可能有多个与链路相连的接口。这样,IPv6 给结点的每一个接口指派一个IP地址。一个结点可以有多个单播地址,而其中的任何一个地址都可以当作到达该结点的目的地址。
在 IPv6 中,每个地址占128位,地址空间大于3.4×10^38。
现在已经被指派的地址仅仅占总地址很少的一部分
全球单播地址:(最前面的几位二进制数字为 001
)占地址空间的份额:1/8 ;
单一本地单播地址:(最前面的几位二进制数字为 1111 110
)占地址空间的份额:1/128 ;
本地链路单播地址:(最前面的几位二进制数字为 1111 1110 10
)占地址空间的份额:1/8 ;
多播地址:(最前面的几位二进制数字为 1111 1111
)占地址空间的份额:1/8 ;
其余的都是 IETF 保留的。。。
(1)未指明地址 这是16字节的全0 地址,可缩写为两个冒号“::
”。这个地址不能用作目的地址,而只能为某个主机当作源地址使用,条件是这个主机还没有配置到一个标准的IP地址。
(2)环回地址 IPv6 的环回地址是0:0:0:0:0:0:0:1(即::1
),作用和IPv4的环回地址一样。
(3)基于IPv4 的地址 前缀为0000 0000保留一小部分地址作为与IPv4兼容的,这是因为必须要考虑到在比较长的时期IPv4和IPv6将会同时存在,而有的结点不支持IPv6。因此数据报在这两类结点之间转发时,就必须进行地址的转换。
上图表示把 IPv4 地址嵌入到 IPv6 地址的方法。这种IPv6地址的前80位都是0,接着的16位是全1,然后是嵌入的IPv4地址。这种地址叫做“IPv4映射的IPv6地址”,它只是把IPv4地址转换为IPv6地址的形式,但IPv6设备并不能识别这种设备。
(4)本地链路单播地址(Link-Local Unicast Address) 有些组织的网络使用TCP/IP协议,但并没有连接到因特网上。这可能是由于担心因特网不很安全,也可能是由于还有一些准备工作需要完成。连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和因特网上的其他主机通信。
(1)全球路由选择前缀(Global Routing Prefix)
这是第一级地址,占48位,分配给各公司和组织,用于因特网中路由器的路由选择。这相当于最初分类的IPv4地址中的网络号字段。现在这类单播地址最前面的三位是 001,因此可以进行分配的地址共有 45 位,是IPv4 全部地址空间的2^13倍(即8192倍)。
(2)子网标识符(Subnet ID)
这是第二级地址,占16位,用于各公司和组织创建自己的子网。对于小公司,可以把这个字段置为全0。
(3)接口标识符(Interface ID)
这是第三级地址,占64位,指明主机或路由器单个的网络接口。实际上这就相当于分类的IPv4地址中的主机号字段。
与 IPv4 不同,IPv6地址的主机号字段有 64 位之多,它足够大,因而可以将各种接口的硬件地址直接进行编码。这样,IPv6 只需把 128 位地址中的最后 64 位提取出就可得到相应的硬件地址,而不需要使用地址解析协议 ARP 进行地址解析。
IPv6使用一个叫做 邻站发现协议(neighbor discovery protocol) 使一个结点能够确定哪些计算机是和它相邻接的(在网际控制报文协议ICMP新版本ICMPv6中使用这个协议)。
双协议栈(dual stack) 是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。因此双协议栈主机(或路由器)既能够和IPv6的系统通信,又能够和IPv4的系统进行通信。
双协议栈的主机(或路由器)记为 IPv6/IPv4,表明它具有两种IP地址:一个 IPv6 地址和一个 IPv4 地址。
双协议栈主机在和 IPv6 主机通信时是采用 IPv6 地址,而和 IPv4 主机通信时就采用 IPv4 地址。
双协议栈主机使用域名系统DNS来查询目的主机是采用哪一种地址:若DNS返回的是IPv4地址,双协议栈的源主机就使用IPv4地址,反之亦然。
在IPv6数据报要进入IPv4网络时,将IPv6数据报封装成为IPv4数据报(整个的IPv6数据报变成了IPv4数据报的数据部分)。然后,IPv6数据报就在IPv4网络的隧道中传输。当IPv4数据报离开IPv4网络中的隧道时再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。
ICMPv6(Internet Control Message Protocol version 6)是IPv6网络中用于进行网络错误和控制消息传递的协议。它承担了与IPv4中的ICMP类似的功能,但在IPv6环境中进行了一些调整和扩展。
ICMPv6 报文的前面是 IPv6 首部和零个或更多的 IPv6 扩展首部。在 ICMPv6 前面的一个首部中的“下一个首部字段”的值应当置为 58。这和IPv4中标志ICMP的值不同,在IPv4中标志ICMP的值是1。
主要内容:
错误报告:
ICMPv6主要用于报告网络错误,例如目标不可达、时间超时等。它在IPv6中的作用与IPv4中的ICMP类似。
邻居发现:
ICMPv6包括一些消息用于邻居发现,其中包括邻居请求(Neighbor Solicitation)和邻居通告(Neighbor Advertisement)。这些消息用于确定一个节点的邻居是否可达。
重定向:
CMPv6的重定向消息用于通知节点其它节点的地址更为适合于特定网络。
路由器广告和路由器请求:
路由器通过发送路由器广告(Router Advertisement)来通知连接到网络上的节点有关路由信息。节点可以发送路由器请求(Router Solicitation)来请求路由器广告。
报文过大报告:
当一个数据包因为过大而无法传输时,节点可能会收到报文过大报告(Packet Too Big),这个消息允许发送节点减小数据包的大小
多协议标记交换(MPLS,Multiprotocol Label Switching)是一种在网络中高效传输数据的技术,它为数据包引入了标签,通过这些标签进行快速的转发。MPLS不依赖于任何特定的网络层协议,因此称为"多协议"。
“多协议”表示在 MPLS 的上面可以采用多种协议。
MPLS具有以下三个方面的特点:
(1)支持面向连接的服务质量。
(2)支持流量工程,平衡网络负载。
(3)有效地支持虚拟专用网VPN。
标签(Label):
MPLS引入了标签的概念,将标签附加到数据包的头部。这个标签用于标识数据包的转发路径。
标签交换:
MPLS路由器使用标签信息进行数据包的转发。当数据包进入MPLS网络时,MPLS路由器检查数据包的目的地址,并为数据包分配一个标签。在整个网络中,数据包的标签信息用于指导路由器将数据包从源到目的地进行转发。
标签交换:
MPLS路由器维护一个标签交换表,用于存储标签与下一跳路由器之间的映射关系。这个表决定了数据包在网络中的路径。
前向等价类(Forwarding Equivalence Class,FEC):
FEC是一组具有相同转发行为的数据包。MPLS使用FEC来决定数据包的处理方式。
MPLS域:
MPLS域是一个由MPLS路由器组成的网络区域,这些路由器使用MPLS技术来传输数据。
(1)MPLS域中的各LSR使用专门的标记分配协议 LDP(Label Distribution Protocol) 交换报文,并找出和特定标记相对应的路径,即 标记交换路径LSP(Label Switched Path) 。
(2)当一个IP数据报进入到MPLS域时,MPLS 入口结点(ingress node) 就给它打上标记(实际上是插入一个MPLS首部),并按照转发表把它转发给下一个LSR。以后的所有LSR都按照标记进行转发。
(3)由于在全网内统一分配全局标记数值是非常困难的,因此 一个标记仅仅在两个标记交换路由器LSR之间才有意义 。分组每经过一个LSR,LSR就要做两件事。一是转发,二是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换(label swapping)。
(4)当IP数据报离开MPLS域时,MPLS 出口结点(egress node) 就把 MPLS的标记去除,把IP数据报交付给非MPLS的主机或路由器,以后就按照普通的转发方法进行转发。
转发等价类FEC (Forwarding Equivalence Class)就是路由器按照同样方式对待的IP数据报的集合。
这里“按照同样方式对待”表示从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。
FEC的例子是是:
(1)目的IP地址与某一个特定IP地址的前缀匹配的IP数据报(这就相当于普通的IP路由器);
(2)所有源地址与目的地址都相同的IP数据报;
(3)具有某种服务质量需求的IP数据报。
划分FEC的方法不受什么限制,这都由网络管理员来控制,因此非常灵活。入口结点并不是给每一个 IP 数据报指派一个不同的标记,而是将属于同样 FEC 的 IP 数据报都指派同样的标记。FEC 和 标记是一一对应的关系。
MPLS首部共包括以下四个字段:
(1)标记值 占20位。
(2)试验 占3位。目前保留用作试验。
(3)栈S 占1位。关于S位的作用见下面关于“标记栈”的介绍。
(4)生存时间TTL 占8位,用来防止 MPLS分组在 MPLS域中兜圈子。
P2P(Peer-to-Peer)文件共享是一种通过直接连接网络中的多个计算机,使它们能够相互共享文件和资源的技术。与传统的客户端-服务器模型不同,P2P允许每个节点既是资源的消费者又是提供者。
节点(Peer):
在P2P网络中,每个计算机都被称为一个节点,可以是文件的提供者和下载者。
索引(Index):
P2P网络通常包含一个分布式的索引系统,用于跟踪可用资源的位置。这些资源可能包括文件、音乐、视频等。
种子(Seed):
在某些P2P网络中,拥有完整文件副本的节点被称为"种子"。其他节点可以从这些种子节点下载文件。
下载和上传:
P2P文件共享允许节点同时充当下载者和上传者。当一个节点下载文件时,它也可以分享已下载的部分,使其他节点能够从它那里获取数据。
分散式体系结构:
P2P网络采用分散式的体系结构,没有中央服务器。每个节点都有对等地位,可以直接与其他节点通信。
谢希仁第五版《计算机网络》学习笔记
计算机网络基础大部分结束了。。。。。用到的时候再继续看吧,这里就是大概了解一下