`
keke8614
  • 浏览: 45374 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

IP报文头解析

阅读更多

__________________

数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。
下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。


 
版本:占4位(bit),指IP协议的版本号。目前的主要版本为IPV4,即第4版本号,也有一些教育网和科研机构在使用IPV6。在进行通信时,通信双方的IP协议版本号必须一致,否则无法直接通信。
首部长度:占4位(bit),指IP报文头的长度。最大的长度(即4个bit都为1时)为15个长度单位,每个长度单位为4字节(TCP/IP标准,DoubleWord),所以IP协议报文头的最大长度为60个字节,最短为上图所示的20个字节。
服务类型:占8位(bit),用来获得更好的服务。其中的前3位表示报文的优先级,后面的几位分别表示要求更低时延、更高的吞吐量、更高的可靠性、更低的路由代价等。对应位为1即有相应要求,为0则不要求。
总长度:16位(bit),指报文的总长度。注意这里的单位为字节,而不是4字节,所以一个IP报文的的最大长度为65535个字节。
标识(identification):该字段标记当前分片为第几个分片,在数据报重组时很有用。
标志(flag):该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否是最后一个分片)。
片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。
生存时间:TTL(Time to Live)。该字段表明当前报文还能生存多久。每经过1ms或者一个网关,TTL的值自动减1,当生存时间为0时,报文将被认为目的主机不可到达而丢弃。使用过Ping命令的用户应该有印象,在windows中输入ping命令,在返回的结果中即有TTL的数值。
协议:该字段指出在上层(网络7层结构或TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。
首部校验和:用于检验IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被污染或修改了。
源IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。
目的IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。
由于Delphi里面没有位域这个概念,所以定义结构的时候只能整字节了,挺怀恋C++或者Erlang的,有位域定义出来和使用起来都很方便了
//IP包
  TIPHeader = packed record
    iph_verlen: byte;           // 版本和长度
    iph_tos: byte;              // 服务类型
    iph_length: word;           // 总长度,2个无符号字节所以只能65535
    iph_id: word;               // 标识
    iph_offset: word;           // 标志和片偏移
    iph_ttl: byte;              // 生存时间
    iph_protocol: byte;         // 协议
    iph_xsum: word;             // 头校验和
    iph_src: longword;          // 源地址
    iph_dest: longword;         // 目的地址
  end;

  • 大小: 87.4 KB
分享到:
评论

相关推荐

    网路岗7-IP报文分析工具_IP分析工具_

    IP报文分析工具,分析TCP IP协议,实现协议解析,协议监听

    网路岗7-IP报文分析工具

    2、通过将IP包回放到网卡上,模拟原始IP包在网络上传输情况,也可供同类捕包软件捕获分析。 通讯协议分析 捕包准备 捕包分析工具条: 开始捕包前,用户需先进行过滤设置,选项内容包括: 选网卡 如果您有多块网卡,...

    IP报文在一个简单网络中的变化过程

    从数据帧结构和组装来解析“IP报文在一个简单网络中的变化过程”。

    http报文头解析1

    2、TCP协议的三次握手在聊HTTP协议之前,我们先简单的聊一下TCP三次握手的过程,在后面的博客中我们将会对TCP和IP协议进行详述,本篇博客就先简单的聊一下

    tcp/IP调试工具

    tcp调试工具 , 双向调试。比较简单的tcp/ip协议分析工具

    报文分析文件

    网路岗7-IP报文分析工具,支持抓包获取解析报文的工具,可以看到TCPIP包头内部的内容

    Ethereal分析数据报文

    Ethereal_分析数据报文,详细地介绍了数据报文分析的过程

    基于winsock原始套接字的IP数据包的捕获与解析

    本文使用windows sockets 的原始套接字实现IP数据包的捕获与解析,有详细的设计过程,并附有源代码,源代码中有注释。

    ip数据报程序网络包采集与分析

    1.利用原始套接字实现简单的TCP\IP协议分析器。...2.3 对TCP报文段进行分析以获得其首部详细信息; 2.4 显示分析结果 3 建议使用VC++ 4 基于WinPcap开发库实现上述功能也可以。 ,之前我费了好多心血才找到的~

    TCP-IP技术大全

    本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议...

    TCP/IP协议

    TCP/IP协议的分析与说明,数据包的分析与解析,tcp报文头部的内容分析,与校验和的计算。

    TCP/IP技术大全

    10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 ...

    TCP/IP教程TCP/IP基础

    10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 ...

    Pktlib的报构造器以及使用说明

    (6) CIp类:提供IP协议的头部结构以及IP报文的构造。 (7) CIcmp类:提供ICMP协议的头部结构以及IP报文的构造。 (8) CUdp类:提供UDP协议的头部结构以及IP报文的构造。 (9) CTcp类:提供TCP协议的头部结构以及IP报文...

    TCP/IP技术大全(中文PDF非扫描版)

    本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议...

    GetLocalPortBuff

    本代码示例了如何使用Windows API截获TCP/IP报文的方式。详细展示了TCP报文头、IP包结构的解析。代码包含完整的项目,可以在VS 2005下直接编译使用。

    HCIA数通(RS)路由交换理论课程视频已完结.zip

    14 IP网关以及IP头部解析 15 IP报头 16 ICMP协议基础 17 ARP协议基础 18 传输层基础和SSH实施 19 传输层报文头部基础 20 FTP基础实施 21 TFTP和FTP在真实设备应用 22 网络操作系统基础. 23 熟悉网络操作系统命令行 ...

    TCP_IP详解卷1

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    TCP/IP详解

    10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 ...

Global site tag (gtag.js) - Google Analytics