- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在发送一些 TCP SYN 数据包以获得 TCP RST 的返回。为了识别每个探测器,我在 TCP 序列字段中包含一个计数器。我注意到以下几点:
12:17:27.181993 IP X.X.X.X.10104 > Y.Y.Y.10114: Flags [S], seq 0, win 8192, length 0 12:17:27.182008 IP Y.Y.Y.Y.10114 > X.X.X.X.10104: Flags [R.], seq 0, ack 1, win 0, length 0 12:17:27.683148 IP X.X.X.X.10104 > Y.Y.Y.Y.10114: Flags [S], seq 1, win 8192, length 0 12:17:27.683156 IP Y.Y.Y.Y.10114 > X.X.X.X.10104: Flags [R.], seq 0, ack 2, win 0, length 0 12:17:28.184140 IP X.X.X.X.10104 > Y.Y.Y.Y.10114: Flags [S], seq 2, win 8192, length 0 12:17:28.184147 IP Y.Y.Y.Y.10114 > X.X.X.X.10104: Flags [R.], seq 0, ack 3, win 0, length 0 12:17:28.684993 IP X.X.X.X.10104 > Y.Y.Y.Y.10114: Flags [S], seq 3, win 8192, length 0 12:17:28.685000 IP Y.Y.Y.Y.10114 > X.X.X.X.10104: Flags [R.], seq 0, ack 4, win 0, length 0
12:11:25.274636 IP X.X.X.X.59150 > Y.Y.Y.Y.59160: Flags [S], seq 299, win 8192, length 0 12:11:25.274649 IP Y.Y.Y.Y.59160 > X.X.X.X.59150: Flags [R.], seq 0, ack 300, win 0, length 0 12:11:25.775218 IP X.X.X.X.59150 > Y.Y.Y.Y.59160: Flags [S], seq 300, win 8192, length 0 12:11:25.775226 IP Y.Y.Y.Y.59160 > X.X.X.X.59150: Flags [R.], seq 0, ack 2, win 0, length 0 12:11:26.276324 IP X.X.X.X.59150 > Y.Y.Y.Y.59160: Flags [S], seq 301, win 8192, length 0 12:11:26.276332 IP Y.Y.Y.Y.59160 > X.X.X.X.59150: Flags [R.], seq 0, ack 3, win 0, length 0 12:11:26.776940 IP X.X.X.X.59150 > Y.Y.Y.Y.59160: Flags [S], seq 302, win 8192, length 0 12:11:26.776948 IP Y.Y.Y.Y.59160 > X.X.X.X.59150: Flags [R.], seq 0, ack 4, win 0, length 0
这是预期的行为吗?
最佳答案
TCP session 的每一端都以(相对)零序号开始。
同样,确认数也为零,因为还没有对话的补充方要确认。
服务器以序列号 0 响应客户端,因为这是该 TCP session 中的第一个数据包,相对确认号 1。
确认号设置为 1 表示在数据包中收到客户端的 SYN 标志。
现在你的情况:
序列号有双重作用:
If the SYN flag is set (1), then this is the initial sequence number.The sequence number of the actual first data byte and the acknowledgednumber in the corresponding ACK are then this sequence number plus 1.
If the SYN flag is clear (0), then this is the accumulated sequencenumber of the first data byte of this segment for the current session.
从 Wikipedia 复制的 block 引用部分.
所以,你的 SYN 标志可能是 0。
如果是这样,那就是默认行为。
关于TCP SYN 和 TCP RST 的 TCP 序列和确认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811075/
除了这一行,我的代码有效 .FindFirst "[DONOR_CONTACT_ID] = strTemp2" 我希望我的代码检查是否有记录,其中存在特定的 DONOR_CONTACT_ID,因为有多
[FIN, ACK]、[RST]和[RST, ACK]是什么原因,如何避免? 是否是由于 SO 的 TCP 参数之间存在某种不匹配?服务器在 TCP/IP 连接中回复 [FIN, ACK] 是什么意思
我有简单的“echo”客户端-服务器代码,并通过tcpdump监视tcp流,客户端在发送274之后始终发送RST。总是。但是我不知道如何找到问题所在。客户端: //FILE to read from
当应用程序从套接字接收数据时,它将按照数据发送的正确顺序接收数据。 TCP 将知道如何根据每个数据包 header 中包含的序列号对数据重新排序。 但是 RST 数据包呢,例如:如果另一方发送了一些数
我正在尝试调试一个场景,为此我希望 http 服务器通过 RST 关闭连接。现在它正在使用 fin/ack 进行优雅的关闭。 有什么方法可以手动发送 RST 数据包以关闭连接作为当前流的一部分?可能是
为什么 TCP RST 数据包不需要确认?是不是因为RST的发送端每次收到对方的包都会继续发送RST? 相关说明,有效RST包中的确认号怎么会是0呢? 最佳答案 On a related note,
我真正喜欢 Markdown 的地方在于我可以执行以下操作: 写```回车 粘贴我剪贴板中的所有垃圾 编写``` 我现在有一个工作代码块 在 RST 中,我必须执行以下操作: 编写.. codeblo
如何获得在 rst 中加粗的代码(等宽)文本(我使用的是 Sphinx)? :: 中的任何内容似乎是按字面呈现的,就像 `` 一样,所以 ``**bold**`` 不起作用。 最佳答案 一般来说,嵌套
我正在使用 Sphinx 来记录返回字典的方法。 def do_stuff(foo, bar): """Do some stuff :param foo: I'm an argumen
我对将图像放入 pelican 的 markdown 语法感到困惑。 当我有了这个,一切正常。 .. image:: /images/Rugby-Tackle.jpg :alt: About
我有一个已连接的套接字,我想中止关闭它,但我不希望将 RST 发送到另一端。这可以吗? 最佳答案 您的问题体现了自相矛盾。 “异常关闭”== RST。 即使实际的中止关闭没有立即发送,TCP 也有义务
使用 shutdown() 关闭套接字连接的写入方向后,所有后续接收到的数据都会导致发送 RST 数据包,并且 read() 返回大小为 0 的数据,表示读取方向的 EOF。即使阅读方向没有关闭,为什
我有一个 RST 树,它的结构是: struct node { int key; node *left, *right; } *root; 我的功能是删除带有“v”键的节点: void
如果我有一个带有连接套接字的进程,并且我终止了这个进程,那么 Windows 将导致发送一个 RST 数据包。 是否保证(是否在某处记录)当进程终止时始终发送 RST 数据包,还是可以发送 FIN 数
我写了一个小命令行工具,想在文档中添加“--help”用法消息。 因为我很懒,所以我希望更新过程尽可能简单。这是我希望更新工作流程的样子: 导致更新使用消息的更新代码。 运行更新文档的脚本:新的用法消
我正在使用 gitlab docker image 来部署服务,Web 端口是主机上的 8080。运行 gitlab 后,我可以看到端口正常: CONTAINER ID IMAGE
我正在开发服务器,客户端消息通过手机发送。服务器和手机通过 Wifi 连接。 客户端向服务器发送 HTTP Post 消息,服务器应该回复 200 ok。它适用于大多数系统,但在某些系统中,服务器收到
在收到一个 TCP RST 数据包后,主机是否会丢弃接收缓冲区中已被远程主机确认但未被使用套接字的应用进程读取的所有剩余数据? 我想知道一旦我对其他主机所说的不再感兴趣(例如,为了节省资源)就关闭套接
我有一个客户端和服务器运行在同一台服务器(Linux 机器)上,它们之间有 TCP 连接。我观察到,当我杀死客户端时,内核/操作系统会在客户端被杀死 2 秒后发送 RST 数据包。我的问题是哪个内核参
Windows socket close(closesocket)函数生成RST。 在 Linux 上,当我调用 close 函数关闭一个 tcp 套接字时,它会通过来自客户端服务器的 fin/ack
我是一名优秀的程序员,十分优秀!