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 数据的一样。

计算机网络-网络层(1)IPv4和IPv6的更多相关文章

  1. 计算机网络5.2-5 ipv4&路由协议&ipv6

    子网变址技术 子网掩码 默认子网掩码 子网地址 广播地址 一些计算 CIDR 分配举例 地址不必连续分配 sadsdas 网络设备---路由器 输出结构 直接交付与简介交付 IP分组的转发 分属于不同 ...

  2. IPv4和IPv6简单对比介绍(转载)

    原链接:https://baijiahao.baidu.com/s?id=1570208896149974&wfr=spider&for=pc 在配置计算机网络,特别是内网的时候,有时 ...

  3. ios 兼容IPV4和IPV6网络通信

    前言: 苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 准备工作: 搭建IPV6测试环境:http://blog.csdn.net/potato512/article ...

  4. TCP/IP读书笔记(4) IPv4和IPv6 路由选择

    TCP/IP读书笔记(4) IPv4和IPv6 路由选择 网络层是位于链路层之上,TCP/IP模型中网络层的核心协议是IP协议(Internet protocol). 目前主流的IP协议是IPv4(I ...

  5. 网络类型IPv4和IPv6什么意思?区别?

    在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑 ...

  6. IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信

    1 IPv4和IPv6的差异 1.1 地址空间   IPv6 与 IPv4 比较最显著的一个改动就是使用 128 比特上的地址来代替了 32 比特长的 IPv4 地址. IPv6 中取消了广播地址, ...

  7. IPv4与IPv6数据报格式详解

    摘要: 本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别. 一.IPv4数据报 图1 IPv4数据报格式版本号(version) 不同的IP ...

  8. 一文读懂 IPv4 到 IPv6 的过渡技术

    在介绍 IPv4 到 IPv6 过渡技术之前,我们先来简单了解一下 IPv4 和 IPv6.什么是 IPv4?IPv4 全称为 Internet Protocol version 4,它为互联网上的每 ...

  9. IPV4 VS IPV6 谈谈省级ipv6的必要性

    11月26日,中办.国办印发了<推进互联网协议第六版(IPv6)规模部署行动计划>,提出国内要在 5~10 年的时间形成下一代互联网自主技术体系和产业生态,建成全球最大规模的 IPv6 商 ...

随机推荐

  1. java 心跳机制

    心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...

  2. Java Servlet详解(体系结构+注解配置+生命周期)

    Java Servlet详解(注解配置+生命周期) 什么是Servlet : (Server applet)? 顾名思义:服务端的小程序 Servlet只是一个接口,定义了Java被浏览器访问到(To ...

  3. IDEA去掉Autowired的黄色背景和对象的红线

    Intellij idea @AutoWired注入bean 出现红色波浪线,@autowird下面显示黄色波浪线或者标黄,如下图,解决方法总结一下供大家使用  首先选择File--Settings- ...

  4. Django学习路4_数据库添加元素,读取及显示到网页上

    在 views 中实现对数据库的添加和读取数据库 添加数据 对象 = models 中创建的类名() 对象.列名 = '字段值' 对象.save() 进行保存 return HttpResponse( ...

  5. 将BX中的数以二进制形式在屏幕上显示出来。

    问题 将BX中的数以二进制形式在屏幕上显示出来. 代码 code segment assume cs:code main proc far start: mov bx,011001100110b ;假 ...

  6. 5.10 省选模拟赛 拍卖 博弈 dp

    LINK:拍卖 比赛的时候 前面时间浪费的有点多 写这道题的时候 没剩多少时间了. 随便设了一个状态 就开始做了. 果然需要认真的思考.其实 从我的状态的状态转移中可以看出所有的结论. 这里 就不再赘 ...

  7. docker 常用命令备忘录

    基础命令 docker version docker info docker --help   镜像命令 查看 docker images   其中: REPOSITORY:表示镜像的仓库源 TAG: ...

  8. Efficient Knowledge Graph Accuracy Evaluation 论文笔记

    前言 这篇论文主要讲的是知识图谱正确率的评估,将知识图谱的正确率定义为知识图谱中三元组表述正确的比例.如果要计算知识图谱的正确率,可以用人力一一标注是否正确,计算比例.但是实际上,知识图谱往往很大,不 ...

  9. Android布局——单复选框(今天上课的内容总结下)

    怎么感觉最近补充的都是监听器的内容,今天学长提了一个新的监听器,看起来很牛批(因为很长) // 添加文本更改的监听器, TextWatcher是监听器的回调接口 text.addTextChanged ...

  10. Git本地仓库基本操作

    目录 设置姓名和邮箱 创建仓库 提交本地代码 .gitignore git add git commit git status git diff 查看提交记录 撤销未提交的修改 版本回退 设置姓名和邮 ...