zoukankan      html  css  js  c++  java
  • [原创]IPV4分组的格式

    首先IP分组由首部和数据两部分组成。

    首部中相应字段含义:

    其中重要的字段:

    1、首部长度: 占4位,单位是4个字节,也就是说最大值可以表示15*4=60字节,但我们通常首部的长度是20字节;

    2、总长度:  占16位,单位是1个字节,这里总长度是包括了首部长度和数据部分;

    3、标示: 占16位,用来标示分片分别属于那一个ipv4分组,因为如果ip分组大于了数据链路层的最大传输单元长度,那么就得分片,而每一个片的标示字段都为该ip分组的标示字段值,表明这些分片属于该ip分组;

    4、标志:占3位,其中标志字段最低位为MF,MF=1标示该分片不是最后一个分片,MF=0标示该分片是最后一个分片;中间字段是DF,DF=1标示不可以分片,DF=0表示可以分片;

    5、片偏移:占13位,单位是8个字节,该字段的值表示该分片的数据部分在原ip分组数据部分相对于数据部分起点的偏移量;

    6、生存时间TTL占8位,表示数据包在网络中可通过的路由器的最大值,也就是表示分组在网络中的寿命。每经过一个路由器该TTL就会减1,当减为0时,就丢弃分组;

    7、首部校验和:占16位,ip数据报只校验分组的首部,不校验数据部分;

    另外就是不重要的字段:

    8、协议:占8位,表示分组携带的数据是使用的何种协议,在上交数据时,分组的数据部分该交给哪个传输层协议,如:TCP、UDP等。如果该字段值为6表示TCP,17表示UDP;

    9、源地址:占32位;

    10、目的地址:占32位;

    11、版本:占4位,指IP协议的版本;

    12、区分服务:占8位;

    总结规律:

    1、由上可以看出第二层32位的字段主要是关于分片的字段:标示、标志、片偏移。

    2、对于上面总长度、首部长度、片偏移对应的单位,可以这样记忆:不要总(总长度)是那一(1字节)条假首(首部长度)饰(4字节)来骗(片偏移)我吧(8字节);

  • 相关阅读:
    Centos7 JDK8安装配置
    select2
    docker 删除多个退出的容器
    redis 批量删除多个key
    Dockerfile 文件命令
    Docker部署go示例
    php 导入 excel 文件
    rabbitmq安装
    rabbitmq之php客户端使用实例
    k8s
  • 原文地址:https://www.cnblogs.com/lordcheng/p/7468806.html
Copyright © 2011-2022 走看看