TCP与UDP - 什么是TCP连接?

Che*_*ese 53 udp tcp network-protocols

什么是TCP连接?我知道从客户端到服务器没有物理连接.这个连接只是客户端的套接字与三次握手后服务器创建的新套接字相关联吗?此后,一旦建立"连接",连接两端的套接字就会知道将数据包发送到何处.

这与UDP初始与TCP的握手之外的其他方式有什么不同?是每个服务器套接字只有一个客户端将数据包发送到该特定套接字?

在主机之间建立专用连接有哪些可能的优势?我对TCP和UDP的理解仍然非常基础,因此广泛的概括就足够了.

Ker*_* SB 46

让我们把它分解成几部分.首先,网络基于IP,这是一种为每个网络节点分配地址的协议,允许您从一个节点向另一个节点发送少量数据(通常高达64kB,但通常只有1500B).

这本身并不值得,因为我们不能对数据实际到达进行任何检查,并且它以正确的顺序到达.如果我们想要一个抽象机制来传输任意数量的数据并确保它们到达,我们需要在网络顶部处理这种"传输"的另一个协议.这就是TCP的目的.

但是,与TCP并行,还有另一种"传输"协议,根本不进行任何检查,并且没有可靠性,UDP.UDP只是原始IP数据包的一个薄包装,它增加了一点元数据(如端口号).

然而,UDP仍然是有用的,因为在许多情况下数据完整性已经传递到更高的协议,因此不需要复杂的传输协议.例如,这在虚拟网络服务中使用,其中TCP/IP的另一个实例通常 UDP信道上运行.(由于重新发送级联,使信道使用像TCP这样的可靠协议实际上会产生灾难性的后果.)

因此术语"TCP连接"指的是TCProtocol的应用.该协议自然是有状态的,并且通常在SYN-ACK-data-FIN序列中进行,或者在拒绝传输的情况下进行SYN/RST; 两个对等体都保持连接状态(握手,建立,关闭,关闭).TCP还引入术语"服务器"和"客户端",服务器是listen()用于传入连接的对等体.

  • 嗯......我正在考虑如何用这句话来达到我所追求的目标.据我所知,TCP增加了额外的功能,可以实现更可靠的数据传输.它还具有处理拥塞控制的功能.我想我想忽略这些功能,只关注实际的"连接".如果我要设计一个UDP客户端和来回发送确认以提高可靠性的服务器,那么它会像TCP中使用的那样"连接"吗? (3认同)
  • 当你搜索`tcp connection`时,你的答案的最后一段出现在Google的顶部.恭喜〜,我想. (2认同)
  • 根据 OP 评论,我认为这个答案(虽然正确)没有回答 OP 问题,也没有回答我的问题。我的问题是:“当我们说在两台主机之间建立了连接时,这意味着什么?如果我能得到一个神奇的显微镜并检查服务器或客户端,然后——啊哈!——找到连接,我会在看什么?操作系统代码分配的一些变量?某种表中的一些条目?它如何以及何时到达那里,以及如何以及何时从那里删除”。 (2认同)