- 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/
从数据包捕获文件(pcap)中,在 TCP 握手期间观察以下内容 Client向Server发送SYN请求,服务器响应SYN包而不是SYN+ACK,客户端响应 Out of Order 数据包消息,服
我遇到过这种情况: 我已经阻止了所有入站端口,除了(tcp 53 和 udp 53 - DNS、2 个内部 ip 类和 ICMP),我尝试连接到 google 但没有成功,这很好。但是,使用数据包捕获
我正在编写以下程序(虽然我不认为这是问题所在): #include #include #include #include #include #include int main() {
如果发送方第一次发送SYN,但发送方在超时时间内没有收到SYN/ACK。 (Q1)当发送方再次重传SYN时,重传的SYN是否与之前的SYN相同? (Q2) 它们的序列号是否相同? 最佳答案 是的,但您
我正在试验 Rust 过程宏。 我希望能够创建一个用于生成 JNI 调用样板的宏。有点像 jni_method!{com.purplefrog.rust_callable.Widget, fn ech
我正在向同一网络中的网络服务器发送 TCP SYN 数据包(无负载)。我正在使用sniffex.c用于捕获数据包。 问题是,在我发送 SYN 数据包后,我没有收到来自服务器的 SYN/ACK 数据包。
我对原始套接字以及如何创建它们感到好奇,并且想实现我自己的 TCP 机制。我已经阅读了一些示例,并成功地发送了带有我自己编写的 IP header 的自定义 TCP 数据包和 UDP 数据包(当然受到
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
如果您正在编写一个基本的 python TCP 服务器和客户端,您需要自己添加 SYN、SYN ACK 和 ACK 响应,还是由套接字模块处理? 如果需要自己写,会这么简单吗? 客户: #set up
我目前正在开发 TCP/IP 堆栈;我在 Linux 下运行,我使用 libnet(用于传输)和 libpcap(用于捕获以太网帧)来模拟链路层。 我已经开始研究 TCP,更具体地说是主动打开连接。基
使用 hping,我发送 SYN 数据包,第二个对等方正在监听并回复 SYN/ACK,但是 hping(我猜是 linux 内核这样做)在收到 SYN/ACK 后发送 RST。 无论如何我可以在收到
我试图让 Vim 以语法高亮任何以扩展名 .Rtex 结尾的文件,方法如下: 所有顶级文本都突出显示为 TeX 异常(exception):包含在 \begin{python}...\end{pyth
我有 TCP 客户端和服务器套接字,并且在客户端和服务器套接字上设置了具有不同值的套接字选项 IP_TOS(例如 Client dscp = 0x21 和 Server Dscp = 0x38)。现在
我正在解析一个 PCAP 文件,我只需要提取 TCP 标志 (SYN) 来检测 SYN 泛洪攻击。我使用 Python 和 scapy。 主要目标是检测 SYN 洪水攻击的方法!我需要为每个 IP 地
这可能是一个微不足道的问题。这是关于 Syn Cookie 的。为什么只有半打开的连接才被视为DOS攻击。客户端可能完成握手(SYN、SYN-ACK、ACK)后就不再回复。这也会占用系统资源。 那么,
如果我的服务器实现了 SYN Cookies 来避免 DoS 攻击,但攻击者知道服务器使用 SYN Cookies,他们是否可以通过发送 ACK 来创建半/全打开连接? 我知道 SYN Cookies
我正在尝试使用 syn从 Rust 文件创建 AST,然后使用 quote把它写给另一个。但是,当我编写它时,它在所有内容之间放置了额外的空间。 请注意,下面的示例只是为了演示我遇到的最小可重现问题。
我正在 Objective C 和 C 中实现 TCP。当我向服务器发送 Syn 数据包时,我没有得到答复。数据包的 pcap 文件可以在这里找到: Tcp-Syn.pcap 数据包是否格式错误,或者
我正在为将通过以太网发送一些数据的微芯片编写软件,但我遇到了一个问题。我正在发送一个 TCP SYN 段,但没有收到服务器的答复。 一切看起来都很好,获得答案的数据包与我的数据包之间的唯一区别是我的数
我正在使用的 Mac OSX 网络客户端有时无法连接到 HTTPS 端口。查看网络跟踪,我们看到了这一点: T0.0 client:port -> server:443 SYN T0.1 server
我是一名优秀的程序员,十分优秀!