什么是TCP连接?我知道从客户端到服务器没有物理连接.这个连接只是客户端的套接字与三次握手后服务器创建的新套接字相关联吗?此后,一旦建立"连接",连接两端的套接字就会知道将数据包发送到何处.
这与UDP初始与TCP的握手之外的其他方式有什么不同?是每个服务器套接字只有一个客户端将数据包发送到该特定套接字?
在主机之间建立专用连接有哪些可能的优势?我对TCP和UDP的理解仍然非常基础,因此广泛的概括就足够了.
让我们把它分解成几部分.首先,网络基于IP,这是一种为每个网络节点分配地址的协议,允许您从一个节点向另一个节点发送少量数据(通常高达64kB,但通常只有1500B).
这本身并不值得,因为我们不能对数据实际到达进行任何检查,并且它以正确的顺序到达.如果我们想要一个抽象机制来传输任意数量的数据并确保它们到达,我们需要在网络顶部处理这种"传输"的另一个协议.这就是TCP的目的.
但是,与TCP并行,还有另一种"传输"协议,根本不进行任何检查,并且没有可靠性,UDP.UDP只是原始IP数据包的一个薄包装,它增加了一点元数据(如端口号).
然而,UDP仍然是有用的,因为在许多情况下数据完整性已经传递到更高的协议,因此不需要复杂的传输协议.例如,这在虚拟网络服务中使用,其中TCP/IP的另一个实例通常在 UDP信道上运行.(由于重新发送级联,使信道使用像TCP这样的可靠协议实际上会产生灾难性的后果.)
因此术语"TCP连接"指的是TCProtocol的应用.该协议自然是有状态的,并且通常在SYN-ACK-data-FIN序列中进行,或者在拒绝传输的情况下进行SYN/RST; 两个对等体都保持连接状态(握手,建立,关闭,关闭).TCP还引入术语"服务器"和"客户端",服务器是listen()
用于传入连接的对等体.