解析HTTP-Capture

解析HTTP-Capture

我有以下 HTTP-get 捕获。我正在尝试学习使用协议和数据包数学手动剖析它。并且正在努力解决以下问题。这不是一个评分项目,只是建议我学习的东西。

  1. TCP 报头长度是多少
  2. TCP 报头的起始字节是什么
  3. TCP 报头的结束字节是什么
  4. 发生了多少次 IPv4 对话

    0x0000:  4500 0158 0505 4000 4006 18b1 c0a8 4b76
    0x0010:  174e f87d c0c6 0050 5fa4 6e6c 8b48 e7eb
    0x0020:  8018 001c 1d35 0000 0101 080a 5079 6b75
    0x0030:  26d4 b91a 4745 5420 2f6c 6962 7261 7279
    0x0040:  2f38 2e34 2f64 6170 6d73 6e2e 6a73 2048
    0x0050:  5454 502f 312e 310d 0a48 6f73 743a 2061
    0x0060:  6473 312e 6d73 6164 732e 6e65 740d 0a55
    0x0070:  7365 722d 4167 656e 743a 204d 6f7a 696c
    0x0080:  6c61 2f35 2e30 2028 5831 313b 204c 696e
    0x0090:  7578 2078 3836 5f36 343b 2072 763a 3338
    0x00a0:  2e30 2920 4765 636b 6f2f 3230 3130 3031
    0x00b0:  3031 2046 6972 6566 6f78 2f33 382e 3020
    0x00c0:  4963 6577 6561 7365 6c2f 3338 2e32 2e31
    0x00d0:  0d0a 4163 6365 7074 3a20 2a2f 2a0d 0a41
    0x00e0:  6363 6570 742d 4c61 6e67 7561 6765 3a20
    0x00f0:  656e 2d55 532c 656e 3b71 3d30 2e35 0d0a
    0x0100:  4163 6365 7074 2d45 6e63 6f64 696e 673a
    0x0110:  2067 7a69 702c 2064 6566 6c61 7465 0d0a
    0x0120:  5265 6665 7265 723a 2068 7474 703a 2f2f
    0x0130:  7777 772e 6d73 6e2e 636f 6d2f 0d0a 436f
    0x0140:  6e6e 6563 7469 6f6e 3a20 6b65 6570 2d61
    0x0150:  6c69 7665 0d0a 0d0a
    

答案1

这是理解各种协议如何构造的一个很好的练习。为了充分利用它,您需要了解 IP 和 TCP 标头格式。

首先,阅读 RFC 791 的第 3.1 节 -https://www.rfc-editor.org/rfc/rfc791

其次,阅读 RFC 793 的第 3.1 节 -https://www.rfc-editor.org/rfc/rfc793

第三,利用前两个步骤中学到的知识尝试回答问题。

最后,将您学到的知识与下面的输出进行比较,该输出是各种标题的细分。

4500:      IP Version(4 = IPv4), Header Length (5 = 20 bytes)  and DSCP/ECN
0158:      IP packet length (158 = 344 bytes)
0505:      IP Identification
4000:      IP Flags and Fragment Offset (40 = Do not fragment)
4006:      TTL (40 = 64) and encapsulated protocol version (6 = TCP)
18b1:      IP header checksum
C0a8 4b76: Src IP
174e f87d: Dst IP
C0c6:      Src Port (49350)
0050:      Dst Port (80)
5fa4 6e6c: Seq Number
8b48 e7eb: Ack Number
8018:      Header length (8 = 32) TCP Flags (18 = PSH-ACK)
001c:      TCP Win Size (28) <--don't know scale factor
1d35:      TCP checksum
0000:      Urgent Pointer
0101 080a 5079 6b75 26d4 b91a:  TCP Options 

      0101:    NOP, NOP
      08:      Option Kind (08 = Timestamp)
      0a:      Length of 10 bytes
      50796b75:Timestamp 
      26d4b91a:Timestamp echo reply

4745:      HTTP GET
0d0a:      Last CRLF indicates the end of the HTTP request

相关内容