TCP 中的连接实际上是什么

问题描述 投票:0回答:2

我想知道TCP中的连接到底是什么

例如,假设客户端位于亚洲,服务器位于美国,当建立连接时,该连接会发生什么?如果连接打开一分钟(例如长轮询)会发生什么。

我的意思是心跳是否会通过中间的路由器定期发送,或者术语

connection
我们只是指在两个主机(客户端和服务器)中专用的东西来保存一些数据?那么我不知道为什么我们说打开连接的成本很高。

提前致谢。

networking tcp cisco
2个回答
0
投票

TCP是一个相当被动的协议,默认情况下,如果你不写入流,它不会发送心跳。

因此应用程序通常会编写自己的“高级”协议,其中有时包括心跳的东西。但如果你确实发送消息,对方会向你发送 ack。

该连接并不是真正的连接,而是你和服务器之间的一些共识。不要忘记还有半开连接。

按照设计,TCP 只涉及服务器和客户端,设备之间不应该关心“连接”。但那是在防火墙或 NAT 出现之前。今天,某些设备可能会检测到您的“连接”处于非活动状态并向您发送重置消息。


0
投票

TCP连接本质上是存储在两端的连接信息。该信息在显式连接关闭信号或超时时被删除。 还有一些保持活动的数据包可以防止超时。

这在rfc9293中有详细定义 https://datatracker.ietf.org/doc/html/rfc9293#name-ending-a-connectionhttps://datatracker.ietf.org/doc/html/rfc9293#name-timeouts

© www.soinside.com 2019 - 2024. All rights reserved.