zoukankan      html  css  js  c++  java
  • ip报文

    ip数据包=首部(在ipv4中20-60)+数据部分。长度为20-65535

    ipv4首部的格式;注意使用的单位是位。

    wireshark捕抓的数据包

     

     

     ipv6的头部

     很显然ipv6,比ipv4在分层的时候少了一层【生存时间,协议,首部校验和】。

    但是源目的地址的存储大了4倍。不限制了数据的长度,也就无需分片了。

    对ipv包头的首部详解:

    标识(identification):

    这个16位字段标志了从源主机发出的一个数据报,这样就确定了数据报的唯一性

    这样使得数据报被分片后,在到达终点时终点能根据标识号将同一个数据报的分片重新组装成一个数据报。

    标志(flag):

      D M

     第一位保留(未用),第二位为“不分片(do not fragment)”,第三位位“还有分片(more fragment)”。

    D为1时,不能对数据进行分片;为0可以进行分片。

    M为1时,标识还有分片;为0表示最后一个分片。

    分片偏移:

    这个13位字段表示的是分片在整个数据报中的相对位置。这是数据在原始数据报中的偏移量,以8字节位单位

    注:分片本身还可能进行分片,这种情况下,分片偏移值永远是相对于原始数据报的。

    生存时间:

    这个8位字段用来控制数据报所经过的最大跳数(路由器),每经过一个路由器,这个字段数值都减1,减1后变位0时,路由器就丢弃这个数据报。

    协议:

    这个8位字段定义了使用IPv4服务的高层协议,如TCP,UDP,ICMP,IGMP,OSPF等的数据都将被封装到IP数据报中。这个字段指明数据报必须交付给哪个最终目的协议。

    注:1表示ICMP,2表示IGMP,6表示TCP,17表示UDP,89表示OSPF

    检验和:

    检验IP数据报首部。

  • 相关阅读:
    Qt状态机实例
    <STL> accumulate 与 自定义数据类型
    <STL> 容器混合使用
    散列表(C版)
    Canonical 要将 Qt 应用带入 Ubuntu
    <STL> set随笔
    C++ 文件流
    视频播放的基本原理
    <STL> pair随笔
    c++ 内存存储 解决char*p, char p[]的问题
  • 原文地址:https://www.cnblogs.com/topass123/p/12497405.html
Copyright © 2011-2022 走看看