zoukankan      html  css  js  c++  java
  • 计算机网络-网络层(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 数据的一样。
  • 相关阅读:
    Spring第五篇【cglib、手动实现AOP编程】
    Spring第四篇【Intellij idea环境下、Struts2和Spring整合】
    Spring第三篇【Core模块之对象依赖】
    Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
    Spring第一篇【介绍Spring、引入Spring、Spring六大模块】
    Hibernate第十二篇【二级缓存介绍、缓存策略、查询缓存、集合缓存】
    Exception in thread "main" org.hibernate.MappingException: You may only specify a cache for root
    Hibernate第十一篇【配置C3P0数据库连接池、线程Session】
    Hibernate第十篇【Hibernate查询详解、分页查询】
    Hibernate第九篇【组件映射、继承映射】
  • 原文地址:https://www.cnblogs.com/yangyuliufeng/p/9285704.html
Copyright © 2011-2022 走看看