• 计算机网络协议,IPV4数据报分析


    一、IP数据报结构分析

    1.整体结构

    一个IP数据报由首部数据两部分组成。

    首部的前一部分固定长20字节,这是所有IP数据报必须具有的;在首部的固定部分后面是一些可选字段,其长度是可变的。

    IP数据报的整体格式如下:

    其中首部又可拆分为以下格式:

    2.逐项分析

    ==========================================================================

    版本 ===> 4位;代表IP的版本,分为IPV4和IPV6

    ==========================================================================

    首部长度 ===> 4位;单位为 4byte,即 32bit

    若首部长度为 0101=5,则代表首部的固定长度为4 x 5 = 20(字节),即160(bit)

    ==========================================================================

    区分服务 ===> 8位;旧版叫服务类型,一般不使用,只有在使用区分服务时才被使用

    ==========================================================================

    总长度 ===> 16位;单位为 1byte,即 8bit

    因此最大长度为 2^16 - 1 = 65535(byte)

    ==========================================================================

    标识 ===> 16位;IP计数器。

    每产生一个数据报就加1。但并不是序号。因为IP是无连接服务,只是在数据报超过MTU时必须分片。这样相同序号的分片就会重装成原来的数据

    ==========================================================================

    标志 ===> 3位;

    数据长度占3位,但目前仅2位有意义

    MF = 1 代表后面还有分片

    MF = 0 代表后面没有分片

    DF = 1 代表不能分片

    DF = 0 代表允许分片

    ==========================================================================

    片偏移 ===> 13位;单位为 8 byte 即 64 bit

    用来指出该分片在原数据报中的相对位置

    ==========================================================================

    生存时间 ===> 8位;简称TTL。

    最初TTL以秒为单位,即每经过一个路由器用了多少秒,TTL就减几,若不足1秒就减1;

    后来TTL以跳数为单位。数据报每经过一个路由器TTL值就减1

    ==========================================================================

    协议 ===> 8位;

    用来指出该IP数据报携带何种协议数据报。目的IP主机通过该字段确定将该数据提交给哪个协议层处理

    常见协议及其字段值如下:

    数值

    值描述

    0 保留字段,用于IPv6(跳跃点到跳跃点选项)
    1 Internet控制消息 (ICMP)
    2 Internet组管理 (IGMP)
    3 网关到网关 (GGP)
    4 1P中的IP(封装)  
    5
    6 传输控制 (TCP)
    7 CBT
    8 外部网关协议 (EGP)
    9 任何私有内部网关(Cisco在它的IGRP实现中使用) (IGP)
    10 BBNRCC监视
    11 网络语音协议
    12 PUP
    13 ARGUS
    14 EMCON
    15 网络诊断工具
    16 混乱(Chaos)
    17 用户数据报文 (UDP)
    18 复用
    19 DCN测量子系统
    20 主机监视
    21 包无线测量
    22 XEROXNSIDP
    23 Trunk-1
    24 Trunk-2
    25 leaf-1
    26 1eaf-2
    27 可靠的数据协议
    28 Internet可靠交易
    29 1SO传输协议第四类 (TP4)
    30 大块数据传输协议
    31 MFE网络服务协议
    32 MERIT节点之间协议
    33 序列交换协议
    34 第三方连接协议
    35 域之间策略路由协议
    36 XTP
    37 数据报文传递协议
    38 IDPR控制消息传输协议
    39 TP+ +传输协议
    40 IL传输协议
    41 1Pv6
    42 资源命令路由协议
    43 1Pv6的路由报头
    44 1Pv6的片报头
    45 域之间路由协议
    46 保留协议
    47 通用路由封装
    48 可移动主机路由协议
    49 BNA
    50 1Pv6封装安全有效负载
    51 1Pv6验证报头
    52 集成的网络层安全TUBA
    53 带加密的IP
    54 NBMA地址解析协议
    55 IP可移动性
    56 使用Kryptonet钥匙管理的传输层安全协议
    57 SKIP
    58 1Pv6的ICMP
    59 1Pv6的无下一个报头
    60 IPv6的信宿选项
    61 任何主机内部协议
    62 CFTP
    63 任何本地网络
    64 SATNET和BackroomEXPAK
    65 Kryptolan
    66 MIT远程虚拟磁盘协议
    67 Internet Pluribus包核心
    68 任何分布式文件系统
    69 SATNET监视
    70 VISA协议
    71 Internet包核心工具
    72 计算机协议Network Executive
    73 计算机协议Heart Beat
    74 Wang Span网络
    75 包视频协议
    76 Backroom SATNET监视
    77 SUN ND PROTOCOL—临时
    78 WIDEBAND监视
    79 WIDEBAND EXPAK
    80 ISO Internet协议
    81 VMTP
    82 SECURE—VMTP(安全的VMTP)
    83 VINES
    84 TTP
    85 NSFNET—IGP
    86 不同网关协议
    87 TCF
    88 EIGRP
    89 OSPF IGP
    90 Sprite RPC协议
    9] Locus地址解析协议
    92 多播传输协议
    93 AX.25帧
    94 IP内部的IP封装协议
    95 可移动网络互连控制协议
    96 旗语通讯安全协议
    97 IP中的以太封装
    98 封装报头
    99 任何私有加密方案
    100 GMTP
    101 Ipsilon流量管理协议
    102 PNNI over IP
    103 协议独立多播
    104 ARIS
    105 SCPS
    106 QNX
    107 活动网络
    108 IP有效负载压缩协议
    109 Sitara网络协议
    110 Compaq对等协议
    111 IP中的IPX
    112 虚拟路由器冗余协议
    113 PGM可靠传输协议
    114 任何0跳跃协议
    115 第二层隧道协议
    116 D-II数据交换(DDX)
    117 交互式代理传输协议
    118 日程计划传输协议
    119 SpectraLink无线协议
    120 UTI
    121 简单消息协议
    122 SM
    123 性能透明性协议
    124 ISIS over IPv4
    125 FIRE
    126 Combat无线传输协议
    127 Combat无线用户数据报文
    128 SSCOPMCE
    129 IPLT
    130 安全包防护
    131 IP中的私有IP封装
    132 流控制传输协议
    133~254 未分配
    255 保留

    ==========================================================================

    首部校验和 ===> 16位;

    这个字段只检验数据报的首部,但不检验数据部分。数据报每经过一个路由器,路由器都要重新计算一下首部校验和

    ==========================================================================

    源地址 ===> 数据报发送方

    ==========================================================================

    目的地址 ===> 数据报接收方

    ==========================================================================

    首部的可变部分 ===> 该字段长度可变(1字节到40字节)

    可以用来排错、测量、以及安全等措施。中间不需要分隔符,最后用0填充字段,使其成为4字节的整数倍

    ==========================================================================

  • 相关阅读:
    c++运算符优先级
    C++中宽字符类型(wchar_t)的编码
    标志寄存器综述
    ubuntu 更新源
    windows shell命令相关
    汇编语言-环境搭建(16位)
    linux配置ftp
    ssl协议相关
    boost相关
    ubuntu下编译protobuf
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700453.html
走看看 - 开发者的网上家园