惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Archives - TechRepublic
MongoDB | Blog
MongoDB | Blog
量子位
博客园 - 叶小钗
罗磊的独立博客
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
MyScale Blog
MyScale Blog
GbyAI
GbyAI
Help Net Security
Help Net Security
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
Hacker News - Newest:
Hacker News - Newest: "LLM"
Latest news
Latest news
H
Hacker News: Front Page
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
S
Schneier on Security
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
Security @ Cisco Blogs
Recorded Future
Recorded Future
S
Securelist
博客园 - Franky
Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
About on SuperTechFans
N
News and Events Feed by Topic
AI
AI
T
Tenable Blog
N
News | PayPal Newsroom
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX - 技术
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
Webroot Blog
Webroot Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 三生石上(FineUI控件)
C
Comments on: Blog
G
GRAHAM CLULEY

博客园 - levin

如何读取内存的数据?(转) ECC 6.0 安装之后的配置(转) 网络管理之数据包的解释与结构分析(转) SAP BDC 技术的分类(转) Delphi中建议使用的语句 Delphi面向对象编程的20条规则 Delphi取整函数 ECC 6.0 New GL Functionality and General FAQ - levin Delphi中的容器类 BDC教程(转) - levin - 博客园 SAP BDC批量导入数据(转) - levin - 博客园 Master data-Customer 如何快速从BSEG读取数据(转) Rules for Better SQL Programming 刷新ALV定位到当前记录行 - levin - 博客园 双击ALV调用事务代码并传入参数 如何查找系统屏幕参数 一些常用的系统变量(SYST) ABAP内表(internal table)有关的系统变量 ABAP字符串比较操作中空格的影响
网络分析中数据包结构的定义
levin · 2009-08-17 · via 博客园 - levin

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数据报结构

1632bit
Source portDestination port
LengthChecksum
Data

  Source Port — 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。

  Destination Port — 16位。目标端口在特殊因特网目标地址的情况下具有意义。

  Length — 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。

  Checksum — 16位。IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。