`
stephen830
  • 浏览: 3011623 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

网络分析中数据包结构的定义

阅读更多

CODE 协议结构定义
---------------------------------------
#pragma pack(1)    //进入字节对齐方式

typedef struct FramHeader_t
{                      //Pcap捕获的数据帧头
    BYTE DstMAC[6];    //目的MAC地址
    BYTE SrcMAC[6];    //源MAC地址
    WORD FrameType;    //帧类型
} FramHeader_t;

typedef struct IPHeader_t
{                        //IP数据包头
    BYTE Ver_HLen;        //版本+报头长度
    BYTE TOS;            //服务类型
    WORD TotalLen;        //总长度
    WORD ID;            //标识
    WORD Flag_Segment;    //标志+片偏移
    BYTE TTL;            //生存周期
    BYTE Protocol;        //协议类型
    WORD Checksum;        //头部校验和
    DWORD SrcIP;        //源IP地址
    DWORD DstIP;        //目的IP地址
} IPHeader_t;

typedef struct ARPHeader_t
{                         //ARP数据包头
    WORD HeadwareType;    //硬件类型
    WORD ProtocolType;    //协议类型
    BYTE HLen;            //硬件地址长度
    BYTE PLen;            //协议地址长度
    WORD Operation;        //操作类型
    BYTE SrcMAC[6];        //源MAC地址
    DWORD SrcIP;        //源IP地址
    BYTE DstMAC[6];        //目的MAC地址
    DWORD DstIP;        //目的IP地址
} ARPHeader_t;
typedef struct UDPHeader_t
{                    //UDP数据包头
    WORD SrcPort;    //源端口
    WORD DstPort;    //目的端口
    WORD Len;        //总长度
    WORD Checksum;    //校验和
}UDPHeader_t;
typedef struct TCPHeader_t
{                     //TCP数据包头
    WORD SrcPort;     //源端口
    WORD DstPort;     //目的端口
    DWORD SeqNO;      //序号
    DWORD AckNO;      //确认号
    WORD Offset4_Reserved6_Flag6;    //头部长度+保留+标志
    WORD Window;      //窗口大小
    WORD Checksum;    //校验和
    WORD UrgentPointer;    //紧急指针
    DWORD Option_;    //选项+填充
}TCPHeader_t;
#pragma pack()    //恢复默认对齐方式
----------------------------------------------------------------------------

一.IP 数据报结构



 


IP数据包结构分析



 


IP数据报中依次包括以下信息:

  1、Version=4,表示IP协议的版本号为4。该部分占4个BIT位。

  2、Header Length=20 Bytes,表示IP包头的总长度为20个字节。该部分占4个BIT位,单位为4个字节,因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。

  3、Type of Service=00,表示服务类型为0。该部分用二个十六进制值来表示,共占8个BIT。

  8个BIT的含义是:

    000          前三位不用

    0            表示最小时延,如Telnet服务使用该位

    0               表示吞吐量,如FTP服务使用该位

    0               表示可靠性,如SNMP服务使用该位

    0               表示最小代价

    0               不用

  4、Total Length=48Bytes,表示该IP包的总长度为48个字节。该部分占16个BIT,单位为Byte。由此可见,一个IP数据包的最大长度为2的 16次方减1,即:65535个字节。因此,在以太网中能够传输的最大IP数据包为65535个字节。

  5、Identification=363,表示IP包识别号为363。该部分占16个BIT,以十进制数表示。

  6、Flags,表示片标志,占3个BIT。各位含义分别为:第一个“0”不用,第二个“0”为分片标志位,“1”表示分片,“0”表示不分版本。第三个0为是否最后一片标志位,0表示最后一片,1表示还有更多的片。

  7、Fragment Offset=0,表示片偏移为0个Bytes。该部分占13个BIT。

  8、Time to Live=128Secongs/Hops,表示生存时间TTL值为128。该部分占8个BIT。

  9、Proctol=6(TCP),表示协议类型为TCP,协议代码是6。如果是UDP协议,则此处的协议代码应为17。如果是ICMP协议,则此处的协议代码应为1。该部分占8个BIT。

  10、Header Checksun=4035(correct),表示IP包头校验和为4035,括号内的Correct表示此IP数据包是正确的,没有被非法修改过。该部分占16个BIT,用十六进制表示。

  11、Source Address=[76.88.16.104],表示IP数据包源地址为:76.88.16.104。该部分占32个BIT。

  12、Destination Address=[76.88.16.16],表示IP数据包目的地址为:76.88.16.16。该部分占32个BIT。

  13、No Options,表示IP数据包中未使用选项部分。当需要记录路由时才使用该选项。

二.TCP数据报结构



 


TCP数据报结构分析



 

TCP数据报中依次包括以下信息:

  1、Source Port=1038,表示发起连接的源端口为1038。该部分占16个BIT。通过此值,可以看出发起连接的计算机源端口号。

  2、Destination Port=21(FTP-CTRL),表示要连接的目的端口为21。该部分占16个BIT。通过此值,可以看出要登录的目的端口号。21端口表示是FTP服务端口。

  3、Initial Sequence Number=1791872318,表示初始连接的请求号,即SEQ值。该部分占32个BIT,值从1到2的32次方减1。

  4、Next Expected SEQ Number=1791872319,表示对方的应答号应为1791872319,即对方返回的ACK值。该部分占32个BIT,值从1到2的32次方减1。

  5、Data Offset=28 Bytes,表示数据偏移的大小。该部分占4个BIT。

  6、Reserved Bites:保留位,此处不用。该部分占6个BIT。

  7、Flags=02。该值用两个十六进制数来表示。该部分长度为6个BIT,6个标志位的含义分别是:

    0        URG,紧急数据标志,为1表示有紧急数据,应立即进行传递。

    0        ACK,确认标志位,为1表示此数据包为应答数据包

    0        PSH,PUSH标志位,为1表示此数据包应立即进行传递。

    0        RST:复位标志位。如果收到不属于本机的数据包,则返回一个RST

    0        SYN:连接请求标志位。为1表示为发起连接的请求数据包。

    0        FIN:结束连接请求标志位。为1表示是结束连接的请求数据包。

  8、Window=64240,表示窗口是64240。该部分占16个BIT。

  9、CheckSum=92D7(Correct),表示校验和是92D7。该部分占16个BIT,用十六进制表示。

  10、Urgent Pointer=0,表示紧急指针为0。该部分占16个BIT。

  11、Maximum Segment Size=1460,表示最大段大小为1460个字节。

三.UDP数据报结构

16 32bit
Source port Destination port
Length Checksum
Data

 

  • Source Port — 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。
  • Destination Port — 16位。目标端口在特殊因特网目标地址的情况下具有意义。
  • Length — 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。
  • Checksum — 16位。IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。
  • Data — 包含上层数据信息。


PS:
本文部分图片和内容参考
http://www.enet.com.cn/article/2006/0410/A20060410521006_2.shtml
http://www.networkdictionary.cn/protocols/udp.php

  • 大小: 6.6 KB
  • 大小: 18.6 KB
  • 大小: 7.2 KB
  • 大小: 19.9 KB
分享到:
评论

相关推荐

    ip数据包分析.doc

    数据包分类分析是指对网络数据包的分类和分析,数据包分类分析可以对网络数据包进行分类和分析,检测网络中的恶意流量。 数据包发送是指对网络数据包的发送和处理,数据包发送可以对网络数据包进行构造和发送,检测...

    VC_实现基于Winpcap的网络数据包捕获与分析

    在使用VC++进行基于WinPcap的网络数据包捕获时,需要定义几个关键的数据结构,例如描述网络适配器和数据包结构的变量。此外,还需要遵循一定的步骤来实现数据包的捕获: 1. **查找设备**:使用 `PacketGetAdapters`...

    libpcap编程 网络编程 网络数据包获取方法

    `libpcap` 是一个广泛使用的开源库,主要用于在网络层捕获和分析数据包。它是许多网络监控、安全分析和诊断工具的核心组成部分,如 `tcpdump`、`Snort` 和 `Ethereal`。以下是对 `libpcap` 编程和网络数据包获取方法...

    TCP数据包分析 TCP数据包分析 TCP数据包分析

    通过对TCP/IP数据包结构的详细分析,我们可以更深入地理解其工作原理和技术细节。掌握这些知识对于网络工程师、开发人员和安全专家来说至关重要,能够帮助他们更好地诊断网络问题、优化网络性能和保护网络安全。

    抓取网络数据包的实现方法

    网络数据包抓取是网络安全分析、故障排查以及网络性能监控的重要手段。本文将深入探讨如何实现这一过程,主要涉及嗅探器的设计原理和编程实现,以及数据包的基本结构。 首先,嗅探器是一种特殊的网络通信程序,它...

    9.2.1 DNS 数据包结构 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    Wireshark是一款强大的网络封包分析软件,可以帮助我们深入理解网络通信的过程,包括DNS数据包的结构。在《Wireshark 数据包分析实战(第3版)》中,9.2.1章节详细介绍了DNS数据包的组成部分。 DNS数据包的结构与...

    网络数据包分析判断通信双方的操作系统、网络信息流量、经过的路由、数据包的大小

    通过分析数据包的头部信息,可以追踪数据包的路由,识别可能的网络异常或安全威胁。例如,通过TTL值可以推测数据包经过的路由器数量,而协议字段则揭示了数据包的用途,如TCP可能用于建立和维护连接,而UDP常用于无...

    winpcap中分析数据包详解

    ### WinPcap中分析数据包详解 #### 一、WinPcap概述 WinPcap是一款广泛应用于网络数据包捕获与分析的开源软件库。它为开发者提供了强大的接口,能够实时地捕获和注入网络数据包,同时也支持过滤功能。在网络安全、...

    网络数据包协议分析工具的分析与实现

    在实际操作中,网络数据包协议分析工具的应用场景非常广泛: - **网络故障排查**:当网络出现延迟、丢包等问题时,通过抓包分析可以快速定位故障原因。 - **网络安全审计**:监测网络中是否存在异常行为,如DDoS攻击...

    IP数据包分析与解析 程序

    IP 数据包分析是指对 IP 数据包的结构和内容进行分析和解析,以了解数据包的来源、目的地、协议类型、数据内容等信息。该程序使用了一个名为 `tcp_protocol_packet_callback` 的函数来实现 TCP 数据包的分析和解析。...

    13.5 802.11 数据包结构 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    802.11 数据包结构是无线网络通信的核心部分,尤其在Wireshark这样的网络分析工具中,理解这一结构对于故障排查、网络优化和安全分析至关重要。802.11是IEEE定义的一系列无线局域网(WLAN)标准,其中包含了多种...

    解析IP数据包 网络协议分析

    解析 IP 数据包网络协议分析 在计算机网络通信中,IP 协议是一种关键的网络协议,它负责将数据从源设备传输...5.C 语言的应用:C 语言是一种常用的编程语言,在网络协议分析中,它广泛用于实现解析 IP 数据包的程序。

    利用WipCap捕获网络数据包并分析数据包,含源代码和工程文件,学习网络数据包捕获分析以及WinPcap的好程序

    标题中的“利用WipCap捕获网络数据包并分析数据包”是指使用Wireshark的前身,即WipCap工具来收集和解析网络通信的数据包。WipCap是一款开源的网络封包分析软件,它是WinPcap库的一个应用实例,主要用于在网络层捕获...

    TCPIP数据包的分析

    #### 三、IP数据包结构详解 ##### 1. IP头部 - **版本号(Version)**:占4位,用于标识当前使用的IP协议版本。IPv4使用的是4。 - **首部长度(IHL)**:占4位,表示IP头部的长度(以32位为单位),最小值为5(即20...

    网络数据包捕获与系统设计

    网络数据包捕获是网络分析的基础,它允许我们监控网络上的数据传输,以便于故障排查、性能优化或安全审计。常见的数据包捕获工具如Wireshark,就是通过读取网络接口层的数据来获取网络通信的原始信息。 首先,理解...

    基于WinPcap的网络数据包捕获与分析

    项目的文档部分可能会详细解释以上步骤,包括代码实现细节、过滤规则的编写方法、数据包结构解析的过程,以及如何根据捕获的数据进行网络分析。此外,文档可能还会讨论一些高级主题,比如性能优化、并发处理多个接口...

    IP数据包分析在C#中

    总之,IP数据包分析在C#中是一个涉及网络编程、数据解析、过滤和分析的过程,需要理解网络协议、C#语言特性和相关库的使用。通过实践和学习,开发者能够有效地利用这些工具和知识来解决网络问题,优化系统性能,或...

Global site tag (gtag.js) - Google Analytics