TCP/IP 之IP数据报

作者: 六尺帐篷 | 来源:发表于2017-06-01 20:35 被阅读76次

主机、路由器网络层主要功能:

image.png

我们将在这篇文章详细介绍ip数据报的格式
首先,ip数据报分为两部分,首部和数据

image.png

我们详细分析首部各字段的意义

image.png

版本号字段占4位: IP协议的版本号,一般有两个值,如果为4就代表是IPv4,6就代表是IPv6协议。 4→IPv4, 6 → IPv6


首部长度字段占4位: IP分组首部长度,这里是以四个字节为单位,如果值为5,则表示首部长度为20个字节(5×4),从图中也可以看到,ip首部长度最短应该是20个字节,除掉可变部分,固定部分就是20个字节。


服务类型(TOS)字段占8位:指示期望获得哪种类型的服务

  • 1998 年这个字段改名为区分服务
  • 只有在网络提供区分服务(DiffServ)时使用
  • 一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H

总长度字段占16位: IP分组的总字节数(首部+数据)

  • 最大IP分组的总长度: 65535B
  • 最小的IP分组首部: 20B
  • IP分组可以封装的最大数据: 65535-20=65515B

生存时间( TTL) 字段占8位: IP分组在网络中可以通过的路由器数(或跳步数)

  • 路由器转发一次分组, TTL减1
  • 如果TTL=0,路由器则丢弃该IP分组

协议字段占8位: 指示IP分组封装的是哪个协议的数据包

  • 实现复用/分解
  • E.g. 6为TCP,表示封装的为TCP段; 17为UDP, 表示封装的是UDP数据报

首部校验和字段占16位:实现对IP分组首部的差错检测

  • 计算校验和时,该字段置全0
  • 采用反码算数运算求和,和的反码作为首部校验和字段
  • 逐跳计算、逐跳校验

源IP地址、目的IP地址字段各占32位:分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址


选项字段占长度可变,范围在1~40B之间:携带安全、源选路径、时间戳和路由记录等内容 ** 实际上很少被使用 **


填充字段占长度可变,范围在0~3B之间:目的是补齐整个
首部,符合32位对齐,即保证首部长度是4字节的倍数

ip分片

在介绍ip数据报首部字段的时候,我们忽略了第二行字段的介绍,因为这一行的字段涉及到ip数据报的分片,我们将先介绍ip数据报的分片,再来介绍这几个字段的含义。

网络链路存在MTU (最大传输单元)—链路层数据帧可封装数据的上限。** 不同链路的MTU不同 **。

image.png

大IP分组向较小MTU链路转发时, 可以被“分片” (fragmented)

  • 1个IP分组分为多片IP分组
  • IP分片到达目的主机后进行“重组”(reassembled)

IP首部的相关字段用于标识分片以及确定分片的相对顺序

  • 总长度、标识、标志位和片偏移
image.png image.png

标识字段占16位:标识一个IP分组

  • IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识

标志位字段占3位:

  • DF (Don't Fragment)
  • MF (More Fragment)
image.png
  • DF =1:禁止分片;
    DF =0:允许分片
  • MF =1:非最后一片;
    MF =0:最后一片(或未分片)

片偏移字段占13位:一个IP分组分片封装原IP分组数据的
相对偏移量

  • 片偏移字段以8字节为单位

ip分片过程

  • 假设原IP分组总长度为L,待转发链路的MTU为M
  • 若L>M,且DF=0,则可以/需要分片
  • 分片时每个分片的标识复制原IP分组的标识
  • 通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
  • 一个最大分片可封装的数据应该是8的倍数, 因此, 一个最大分片可封装的数据为:


    image.png
  • 需要的总片数为:
image.png image.png image.png

相关文章

  • 计算机网络

    一、tcp/http 1、TCP首部。 IP数据报(IP首部+TCP报文段(TCP首部+TCP数据)) TCP首部...

  • TCP/IP 之IP数据报

    主机、路由器网络层主要功能: 我们将在这篇文章详细介绍ip数据报的格式首先,ip数据报分为两部分,首部和数据 我们...

  • IP 协议

    IP是TCP/IP核心协议,所有的TCP,UDP,ICMP,IGMP数据都以IP数据报传输。IP协议提供不可靠,无...

  • TCP/IP 网络层IP介绍

    IP介绍 1、IP是TCP/IP协议族中最核心的协议,所有的TCP/UDP/ICMP/IGMP数据都以IP数据报格...

  • TCP-IP详解卷1:协议读书笔记_3

    IP:网际协议 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP、IGMP都以IP数据报格...

  • TCP/IP协议三次握手四次挥手

    TCP/IP协议定义了一个在因特网上进行传输的包,称为ip数据报,ip数据报文包含 ip首部和ip数据部分 ip首...

  • 《TCP/IP详解 卷1:协议》第3章 IP:网际协议

    3.1 引言 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报...

  • 第三章: IP:网际协议

    3.1 引言 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报...

  • TCP/IP分层模型和通信

    写在前面需要了解的一些关键词可能会更好的了解TCP/IP。 帧、数据报、IP包、TCP/UDP包、段、消息 帧:数...

  • ip协议

    ip是tcp/ip协议族中最为核心的协议,所有的tcp、udp、icmp、igmp都是以ip数据报格式传输的,但它...

网友评论

    本文标题:TCP/IP 之IP数据报

    本文链接:https://www.haomeiwen.com/subject/iloefxtx.html