0

我现在正在编写数据包生成器。使用wireshark和VM对其进行测试。我的清单上有一个练习,连续发送 3 个数据包: 1. TCP 在 80 端口上,带有 SYN=1 和 MF=1 标志。2. 135 端口上的 TCP,带有 SYN=1 和 MF=1 标志。3. TCP 在 80 端口,MF = 0 和 offset = 24。

我在 IP 层发送具有相同 ID 字段的所有数据包。所以据我了解,Wireshark 应该尝试重新组装这些数据包。但是它会重新组装来自不同端口的数据包吗?我们应该得到什么作为最终结果?我得到的只是 3 个 IPv4 数据包。

http://cs625124.vk.me/v625124860/10bf5/BQFUbKT7zVs.jpg

另外:我提到过,如果我将最后一个 TCP 数据包的偏移量更改为 16,那么我们会得到一些不同类型的流量。:

我们得到一个 HTTP 或连续数据包。这是错误的校验和。我试图将正确的校验和复制到第一个 TCP 数据包,然后我得到了 RST,所以我认为 WireShark 从第一个数据包解释了 SYN:http: //s28.postimg.org/z3w7ibhjx/image.png

所以你能解释一下,最后的结果是正确的吗?我将不胜感激任何帮助。对不起,如果它是基本的东西。这是我第一次编写 WinForm 应用程序并使用 Pcap.Net 库。在此先感谢!对不起链接,没有声誉(

4

1 回答 1

0

首先,一个 TCP 会话由元组定义:

  1. A方的IP地址。
  2. A侧的端口。
  3. B方的IP地址。
  4. B侧的端口。

如果您有具有不同元组的数据包,它们将不会属于同一个 TCP 会话。

当服务器关闭会话时,您会得到一个 RST。

服务器可能不喜欢从端口 21 (FTP) 获取 SYN 数据包到其端口 80 (HTTP)。

于 2015-01-09T17:56:08.760 回答