TCP与UDP - 什么是TCP连接?

时间:2011-11-16 17:49:37

标签: tcp udp network-protocols

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

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

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

2 个答案:

答案 0 :(得分:44)

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

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

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

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

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

答案 1 :(得分:3)

TCP和UDP套接字之间的主要区别在于UDP是无连接的,并且不使用另一端收到数据的任何确认。

  

传输控制协议(TCP)是Internet协议套件的核心协议之一。 TCP是该套件的两个原始组件之一,补充了Internet协议(IP),因此整个套件通常称为TCP / IP。 TCP提供从一台计算机上的程序到另一台计算机上另一程序的可靠,有序的字节流传送。 TCP是主要的互联网应用程序(如万维网,电子邮件,远程管理和文件传输)所依赖的协议。其他不需要可靠数据流服务的应用程序可以使用用户数据报协议(UDP),它提供的数据报服务强调减少延迟而不是可靠性。 1