TCP 连接到底是什么?
据我所知,从客户端到服务器没有物理连接。此连接是否只是客户端的套接字与服务器在三次握手后创建的新套接字链接?
此后,一旦建立了“连接”,连接两端的套接字就知道将其数据包发送到哪里。
除了与 TCP 的初始握手之外,这与 UDP 的工作方式有何不同?
每个服务器套接字是否只有一个客户端向该特定套接字发送数据包?
在主机之间建立专用连接有哪些可能的优点?我对 TCP 和 UDP 的理解还很基础,所以广泛的概括就足够了。
让我们把它分成几部分。首先,network基于 IP,这是一种为每个网络节点分配地址的协议,它允许您从一个节点向另一个节点发送少量数据(通常最多 64kB,但通常只有 1500B)。
这本身还没有多大价值,因为我们无法检查数据是否实际到达以及是否以正确的顺序到达。如果我们想要一个抽象机制来传输随意的大量数据并确保它们到达,我们需要网络顶部的另一个协议来处理这种“传输”。这就是 TCP 的目的。
然而,与 TCP 并行的还有另一种“传输”协议,它根本不做任何检查并且没有可靠性,即 UDP。 UDP 只是原始 IP 数据包的薄包装,它添加了一点元数据(例如port数字)。
不过,UDP 仍然有用,因为在许多情况下,数据完整性已经移交给更高的协议,因此不需要复杂的传输协议。例如,这用于虚拟网络服务,其中通常运行另一个 TCP/IP 实例overUDP 通道。 (在这种情况下,由于重新发送级联,使通道使用 TCP 等可靠协议实际上可能会产生灾难性后果。)
所以术语“TCP连接”是指TCP协议的应用。该协议自然是有状态的,并且通常以 SYN-ACK-data-FIN 序列进行,或者在传输被拒绝的情况下以 SYN/RST 进行; TCP 还引入了术语“服务器”和“客户端”,服务器是连接的对等方。listen()
s 表示传入连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)