TCP/IP网络接口抓包分析

TCP + IP 数据包格式:

应用层->TCP->IP->网络接口层

TCP层数据包结构:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)

 

1TCP包头内存占用24byte:

源主机端口号     (2bytes)

目标主机端口号    (2bytes)

              (4bytes)

确认序号          (4bytes)

数据偏移          (4bits)

保留             (6bits)

URG/ACK/PSH/

RST/SYN/FIN      (6bits)

窗口              (2bytes)

校验和            (2bytes)

紧急指针          (2bytes)

选项             (3bytes)

 

IP层数据包结构 IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)

 

2IP包头内存占用(20-24bytes):

版本号             (4bits)      IPv4-0100 IPv6-0110

IP包头长度       (4bits)      4字节为单位  总长度=包头长度*4

服务类型           (1byte)

IP包总长           (2bytes)   

标识符             (2bytes)   

标记               (3bits)

分段序号           (13bits)

生存时间           (1byte)    

协议               (1byte)

头部校验           (2bytes)

源主机IP地址       (4bytes)   

目标IP地址        (4bytes)

可选项         

 

网络接口层  :帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)

3.内存占用:

源主机MAC地址         (6bytes)

目标主机MAC地址      (6bytes)

类型                 (2bytes)        

 

协议名

协议号

   

IP

0

互连网协议

ICMP

1

互连网消息协议

GGP

3

网关——网关协议

TCP

6

传输控制协议

EGP

8

外部网关协议

UDP

17

用户数据报协议

Xns_IDP

22

Xerox NS IDP

rdp

27

可靠数据流协议

rvd

66

MIT远程虚拟磁盘

1:常见的TCP/IP协议号 

 

 

端口号

关键字

   

7

Echo

回波

9

Discard

丢弃

11

Users

活动的用户

13

Daytime

日期

15

Netstat

网络状态

20

ftp

Port方式

21

ftp

文件传输协议

23

Telnet

远程登录

25

SMTP

电子邮件

37

Time

时间

43

Nicname

别名查询

69

TFTP

普通文件传送协议

79

Finger

用户信息查询

80

HTTP

超文本传输协议

101

Hostname

NIC主机名服务

110

POP3

邮局协议离线协议标准

2:专用程序端口号

 

例一:访问192.168.1.51截下的一下握手包

0000  00 24 81 0d f3 30 4a 42 08 00 00 00 08 00 45 00

0010  00 3c 1c 60 40 00 40 06 99 fc c0 a8 01 dc c0 a8

0020  01 33 0a c5 00 50 07 2d af f0 00 00 00 00 a0 02

0030  16 d0 37 13 00 00 02 04 05 b4 04 02 08 0a ff ff

0040  b3 90 00 00 00 00 01 03 03 01

帧头:

目标主机 Mac:     00 24 81 0d f3 30

源主机Mac:       4a 42 08 00 00 00

处理类型:        IP协议(ETHERNET V2)

IP(20字节):

版本号            4  IPV为4

IP包头长度        5  IP包头为20字节

IP包总长         60 IP包(包头)+TCP包为60字节

标识符           0x1c60

标记             4000>>13  

分段序号         4000&0x1fff

生存时间          0x40

协议              6  上层TCP

头部校验          0x99fc

源主机IP地址      c0 a8 01 dc -  192.168.1.220

目标IP地址       c0 a8 01 33 -  192.168.1.51

TCP(24):

源主机端口号       0x0ac5

目标主机端口号     0x0050

序号              0x072daff0 发送的第一字节的序号

确认序号          0x00000000

数据偏移          0xa002>>12 = 0xa 数据区偏移40字节同时得到选项长度                0xa002>>6&0x3f = 0x0

URG/ACK/PSH/ 

RST/SYN/FIN        0xa002&0x3f = 0x2

窗口               0x16d0

校验和             0x3713

紧急指针           0x0000  

选项              可变长度 IP总长度-IP包头-20为当前选项和数据的长度

 例二:访问192.168.1.51截获的一次HTTP请求包

 

0000  00 24 81 0d f3 30 4a 42  08 00 00 00 08 00 45 00 

0010  01 1e 26 df 40 00 40 06  8e 9b c0 a8 01 dc c0 a8 

0020  01 33 0a c7 00 50 06 54  95 42 2b 42 d2 b1 80 18 

0030  0b 68 2b 5e 00 00 01 01  08 0a ff ff b3 9a 00 00 

0040  00 00 47 45 54 20 2f 69  6e 64 65 78 2e 67 69 66 

0050  20 48 54 54 50 2f 31 2e  31 0d 0a 48 6f 73 74 3a 

0060  20 31 39 32 2e 31 36 38  2e 31 2e 35 31 0d 0a 41  

0070  63 63 65 70 74 3a 20 2a  2f 2a 0d 0a 52 65 66 65 

0080  72 65 72 3a 20 68 74 74  70 3a 2f 2f 31 39 32 2e 

0090  31 36 38 2e 31 2e 35 31  0d 0a 55 73 65 72 2d 41 

00a0  67 65 6e 74 3a 20 4d 6f  7a 69 6c 6c 61 2f 34 2e 

00b0  30 20 28 63 6f 6d 70 61  74 69 62 6c 65 3b 20 4d 

00c0  53 49 45 20 36 2e 30 3b  20 45 49 53 20 69 50 61 

00d0  6e 65 6c 20 32 2e 30 20  3b 20 41 52 4d 39 32 36 

00e0  29 0d 0a 41 63 63 65 70  74 2d 45 6e 63 6f 64 69 

00f0  6e 67 3a 20 69 64 65 6e  74 69 74 79 0d 0a 43 6f 

0100  6e 6e 65 63 74 69 6f 6e  3a 20 63 6c 6f 73 65 0d 

0110  0a 50 72 6f 78 79 2d 43  6f 6e 6e 65 63 74 69 6f 

0120  6e 3a 20 63 6c 6f 73 65  0d 0a 0d 0a  

 

帧头:

目标主机 Mac:   00 24 81 0d f3 30

源主机Mac:      4a 42 08 00 00 00

处理类型:       IP协议(ETHERNET V2)

IP(20字节):

版本号          0x45>>4

IP包头长度      0x45&0xf   5*4=20字节

服务类型        0x00

IP包总长        0x011e     IP+数据)

 

标识符          0x26df

标记           4000>>13  

分段序号        4000&0x1fff

生存时间        0x40

协议            6  上层TCP

头部校验        0x8e9b

源主机IP地址    c0 a8 01 dc -  192.168.1.220

目标IP地址      c0 a8 01 33 -  192.168.1.51

TCP(24):

源主机端口号    0x0ac7

目标主机端口号  0x0050

序号            0x06549542

确认序号         0x95422b42

数据偏移         0x8018>>12 = 0x8(数据区偏移为32字节)

保留            0x8018>>6&0x3f = 0x0

URG/ACK/PSH/ 

RST/SYN/FIN     0x8018&0x3f = 0x18

窗口             0x0b68

校验和          0x2b5e

紧急指针        0x0000  

选向            01 01 08 0a ff ff b3 9a 00 00 00 00(32-20)字节

数据区 

47 45 54 20 2f 69  6e 64 65 78 2e 67 69 66 

0050  20 48 54 54 50 2f 31 2e  31 0d 0a 48 6f 73 74 3a 

0060  20 31 39 32 2e 31 36 38  2e 31 2e 35 31 0d 0a 41  

0070  63 63 65 70 74 3a 20 2a  2f 2a 0d 0a 52 65 66 65 

0080  72 65 72 3a 20 68 74 74  70 3a 2f 2f 31 39 32 2e 

0090  31 36 38 2e 31 2e 35 31  0d 0a 55 73 65 72 2d 41 

00a0  67 65 6e 74 3a 20 4d 6f  7a 69 6c 6c 61 2f 34 2e 

00b0  30 20 28 63 6f 6d 70 61  74 69 62 6c 65 3b 20 4d 

00c0  53 49 45 20 36 2e 30 3b  20 45 49 53 20 69 50 61 

00d0  6e 65 6c 20 32 2e 30 20  3b 20 41 52 4d 39 32 36 

00e0  29 0d 0a 41 63 63 65 70  74 2d 45 6e 63 6f 64 69 

00f0  6e 67 3a 20 69 64 65 6e  74 69 74 79 0d 0a 43 6f 

0100  6e 6e 65 63 74 69 6f 6e  3a 20 63 6c 6f 73 65 0d 

0110  0a 50 72 6f 78 79 2d 43  6f 6e 6e 65 63 74 69 6f 

0120  6e 3a 20 63 6c 6f 73 65  0d 0a 0d 0a