当前位置: 首页 > 知识库问答 >
问题:

FIN省略,FIN-ACK已发送

程和蔼
2023-03-14

正如维基百科上所写,关闭TCP连接应该使用FIN数据包-

共有2个答案

益银龙
2023-03-14

您必须已经收到FIN,才能发送FIN/ACK。你是不是因为阅读EOS而关门?

姬寂离
2023-03-14

关闭顺序也可以不同,并且不需要在同一数据包中有FIN ACK:

  • 确认字符只是确认数据的接收(例如,接收到给定序列号的所有内容)
  • 数据包将被重新发送,直到收到一个确认字符
  • FIN只是说发送FIN的一方不会再发送任何数据。如果它仍将接收数据,则不提供任何信息。
  • 像其他包FIN将被重新发送,直到收到确认

像HTTP这样的协议支持单边关闭,例如客户端发送请求数据,然后发送FIN通知服务器,它将不再发送html" target="_blank">数据。但它仍然会接收服务器发送的数据。服务器会像以前处理所有数据一样确认FIN。一旦服务器完成,它将发送自己的FIN,客户端ACK。在这种情况下你有

1. client: FIN  (will not send more) 
2. server: ACK (received the FIN)
.. server: sends more data..., client ACKs these data 
3. server: FIN (will not send more)
4. client: ACK (received the FIN)

请注意,您在步骤#1中看到的数据包也可能包含ACK。但此ACK只确认服务器之前发送的数据。如果服务器没有更多的数据要发送,它可能也会关闭连接。在这种情况下,可以合并步骤2和步骤3,例如,服务器发送FIN ACK,其中ACK确认客户端接收到的FIN。

如果一侧发送鳍,则连接称为半闭合。一旦双方发送他们的FIN并收到FIN的ACK,无论他们是在3个或4个数据包中这样做,它都是完全关闭的。

 类似资料:
  • 我试图使用Apache的Java async HTTP客户端库开发对HTTP请求的代理链接支持。这主要是通过提供一些自定义的SchemeIOSessionStrategy类来完成的。我发现在配置多个代理时,[FIN,ACK]序列和丢失连接重置存在一些问题。 如果没有配置代理,正在开发的代码将独占地使用Apache库。如果配置了多个代理,则自定义SchemeIOSessionStrategy类提供连

  • 我有一个tcp客户端向tcp服务器发送HTTP POST请求。一旦建立连接,数据将从服务器传输到客户端。最后,服务器向客户端发送[FIN,ACK]。客户端发送一个ACK。37秒后,客户机发送[FIN,ACK],但客户机没有从服务器获得ACK,因此客户机继续在指数计时器上重新发送[FIN,ACK]。问题:是否允许客户端以37秒的延迟发送[FIN,ACK]?在这种情况下有没有标准的计时器值?在这种情况

  • 有人能告诉我,为什么我不会得到一个异常,如果远程套接字正在关闭并发送FIN确认字符?Wireshark告诉我,FIN确认字符是由操作系统接收和发送的。 这是我的代码。我真的尝试了一切。 Instream是Socket.getInputStream(),Socket.getOutputStream()的外流。 连接将被我15秒的心跳关闭。

  • 我一直在使用org.apache.commons.net。telnet连接到控制流并向摄像机发送命令。我发送一个数据流请求并打开一个新线程,该线程扫描来自摄像机传感器的图像,并将数据作为原始字节发送给我。我使用的是标准java。io流入和流出以读取。我正在向文件中写入的扩展流……只是原始字节。然而,我在读取套接字发送的数据时陷入了一个无限循环。A 我已经在Wireshark中确认,所有内容都在传递

  • 我正试图为一些服务器端代码编写单元测试,但在确定关机测试用例时遇到了问题。环回TCP连接似乎没有正确处理干净的关机。我在一个示例应用程序中对此进行了重新编程,该应用程序在lockstep中执行以下操作: 创建客户机 步骤4成功无误。我尝试过使用json。编码器和对TCPConn的裸调用。写我和WireShark检查了交通状况。服务器发送了一个FIN数据包,但客户端从未发送(即使是1s睡眠),服务器

  • 在Mac OS X 10.8机器上,我有一台Tomcat 7.0.40服务器和一台客户端,都在本地运行。通过三方握手建立TCP连接,然后立即从服务器发送FIN、ACK和RST。客户端收到“来自服务器的文件结束”或“连接重置”。 TCP序列: 客户端SYN 服务器SYN,确认 客户端确认 服务器[TCP窗口更新]确认字符 服务器FIN,确认字符 客户端确认字符 服务器[TCP Dup确认字符]确认字