计算机网络-网络层(1)IPv4和IPv6

IPv4数据报格式:
  • 版本号
这4比特规定了数据报的IP 协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。
  • 首部长度
以4字节为单位,没有选项的首部长度为5*4=20字节
  • 服务类型
8bit服务类型(TOS)字段,使不同类型的IP数据报能相互区别开来。
例如一些特别要求低时延、高吞吐量或可靠性的数据报,应用于IP电话应用的实时数据报和应用于FTP应用的非实时流量
一般不用,为0
  • 数据报长度(字节)
IP分组可以封装的最大字节数:65535-20=65515B
  • 16比特标识
一个链路层帧能承载的最大数据量叫做最大传送单元MTU
路由器从某条链路收到一个IP数据报,通过检查转发表确定出链路,并且该出链路的MTU比该IP数据报的长度要小,则将IP数据报中的数据分片成两个或更多个较小的片(fragment)
IP分片到达目的主机后进行重组,缺失分片后会等待一段时间,然后全部丢弃
IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识,配合源IP地址、目的IP地址、协议等进行分组唯一标识
  • 标志位
1位保留
DF =1禁止分片;DF =0允许分片
MF =1非最后一片;MF =0最后一片(或未分片)
  • 片偏移
指定该片应放在初始IP数据报的相对偏移量(以8字节为单位)
  •  生存时间(TTL)
IP分组在网络中可以通过的路由器数(或跳步数)
路由器转发一次分组,TTL减1;如果TTL=0,路由器则丢弃该IP分组
  • 上层协议
指示IP分组封装的是哪个协议的数据包,以实现复用/分解
6为TCP,表示封装的为TCP段;17为UDP,表示封装的是UDP数据报
  • 首部检测和
计算校验和时,该字段置全0
采用反码算数运算求和,和的反码作为首部校验和字段
逐跳计算、逐跳校验
  • 32比特源和目的IP地址
  • 选项
选项字段占长度可变,范围在1~40B之间
携带安全、源选路径、时间戳和路由记录等内容
实际上很少使用
  • 填充
补齐整个首部,符合32位(4字节)对齐
 
IP编址:
接口(interface)是主机/路由器与物理链路的连接,实现网络层功能
路由器通常有多个接口;主机通常只有两个接口 (有线的以太网接口,无线的802.11接口)
A类27-2个网络(0和127不可指派)
B类214-1个网络(128.0不可指派)
C类221-1个网络(192.0.0不可指派)
D类:多播地址
E类:保留为今后使用
特殊IP地址:
私有IP地址:
IP子网:IP地址具有相同网络号的设备接口,不跨越路由器(第三及以上层网络设备)、可以彼此物理连通的接口
通过子网划分,可以区分一个比IP子网更小范围的子网,把网络号、主机号划分为网络号、子网号、主机号
利用子网掩码确定是否划分了子网、利用多少位划分子网
 
无类域间路由(CIDR: Classless InterDomain Routing)网络号+子网号→任意长度网络前缀
消除传统的 A 类、B 类和 C 类地址界限,提高IPv4地址空间分配效率
进行路由聚合,减少了在这些路由器中转发表的长度(缺省路由可以写作目的网络IP地址0.0.0.0,子网掩码0.0.0.0)
将多个子网聚合为一个较大的子网,构造超网(supernetting),提高路由效率
 
IPv6数据报格式:
固定40字节的基本首部:
  • 版本
  • 流量类型
类似IPv4的TOS字段
  • 流标签
标识同一个流中的数据报。该字段可用于“给属于特殊流的分组加上标签,这些特殊流是发送方要求进行特殊处理的流,如一种非默认服务质鼠或需要实时服务的流。
  • 有效载荷长度
最大2^16=64KB
  • 下一个首部
该字段标识数据报中的内容(数据字段)需要交付给哪个协议(如TCP或UDP) 。
该字段使用与IPv4 首部中协议字段相同的值。
  • 跳限制
  • 源地址和目的地址
地址形式为1080:0:FF:0:8:800:200C:417A
0可以用::压缩(不能压缩两次)
IPv4-嵌入形式为0:0:0:0:0:FFFF:13.1.68.3
IPv6不再使用掩码,地址前缀为2002:43c:476b::/48
 
此外:
(1)IPv6 不允许在中间路由器上进行分片与重新组装。这种操作只能在源与目的地上执行。
(2)首部校验和被彻底移除,以减少每跳处理时间
(3)选项字段不再是标准IP首部的一部分,而是可能出现在IPv6 首部中由“下一个首部”指出的位置上。这就是说,就像TCP 或UDP 协议首部能够是IP 分组中的“下一个首部”,选项字段也能是“下一个首部" 。删除选项字段使得IP 首部成为定长的40 字节。
(4)ICMPv6 还增加了新的类型和编码。其中包括“分组太大”类型与“未识别的IPv6选项“错误编码。另外, ICMPv6还包含了因特网组管理协议(IGMP) ,用于管理主机加入和离开多播组,它在IPv4中曾是一个与ICMP分开的独立协议。
 
从IPv4迁移到IPv6的两种双栈方法:
(1)IPv6结点还具有完整的IPv4实现。
这样的结点被称为IPv6/IPv4 结点,它有发送和接收IPv4与IPv6两种数据报的能力。
当与IPv4结点互操作时,IPv6/IPv4结点可使用IPv4数据报;当与IPv6 结点互操作时,它又能使用IPv6 。
IPv6/IPv4结点必须具有IPv6与IPv4两种地址。此外,它们还必须能确定另一个结点是否是IPv6使能的或仅IPv4使能的。
这个间题可使用DNS来解决,若发出DNS请求的结点和要解析的结点名字都是IPv6使能的,则DNS 会返回一个IPv6 地址。
IPv6数据报的数据字段可被复制到IPv4数据报的数据字段中,并且要做适当的地址映射。然而,在执行转换时,一些IPv6特有的字段信息将会丢失。因此,最后到达目的结点的数据报可能并不含有初始结点IPv6数据报中的所有字段。
(2)建隧道。
IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络
隧道接收端的IPv6结点最终收到该IPv4数据报(它是该IPv4数据报的目的地),并确定该IPv4数据报含有一个IPv6 数据报,于
是从中取出IPv6数据报,然后再为该IPv6 数据报提供路由,就好像它是从一个直接相连的IPv6邻居那里接收到该IPv6 数据的一样。
原文地址:https://www.cnblogs.com/yangyuliufeng/p/9285704.html