TCP vs UDP – 什么是TCP连接?
什么是TCP连接? 我知道从客户端到服务器没有物理连接。 这个连接只是客户端的套接字与三次握手后由服务器创build的新套接字链接? 此后,一旦“连接”build立,连接两端的sockets就知道在哪里发送数据包。
除了与TCP初始握手之外,这与UDP的function有什么不同呢? 是每个服务器套接字只有一个客户端发送数据包到特定的套接字?
在主机之间build立专用连接有什么可能的优势? 我对TCP和UDP的理解还是非常基本的,所以广泛的概括就足够了。
让我们把它分解成几部分。 首先, networking基于IP,这是一种为每个networking节点分配一个地址的协议,它允许从一个节点向另一个节点发送less量数据(通常高达64kB,但通常只有1500B)。
这本身并不值钱,因为我们无法对数据实际到达进行检查,并且按正确的顺序到达。 如果我们想要一个抽象的机制来传输任意数量的数据并确保它们到达,那么我们就需要另外一个处理这种“传输”的networking协议。 这就是TCP的目的。
但是,与TCP并行,还有另一个“传输”协议,根本不做任何检查,并且没有可靠性,即UDP。 UDP只是原始IP数据包的薄包装,它添加了一些元数据(如端口号)。
但是,UDP仍然是有用的,因为在很多情况下,数据完整性已经被切换到更高的协议,所以不需要复杂的传输协议。 这例如用在虚拟networking服务中,其中TCP / IP的另一个实例通常在 UDP信道上运行。 (使频道使用像TCP这样可靠的协议,由于重新发送级联,在这种情况下实际上可能会造成灾难性的后果。)
所以术语“TCP连接”是指TCP协议的应用。 该协议自然是有状态的,并且通常以SYN-ACK-data-FIN序列进行,或者在拒绝传输的情况下进行SYN / RST; 两个对等体都保持连接的状态(握手,build立,closures,closures).TCP还引入了“服务器”和“客户机”这两个术语,服务器是listen()
传入连接的对等体。
TCP和UDP套接字之间的主要区别在于UDP是无连接的,并不真正希望确认另一端接收到数据。
“传输控制协议(TCP)是Internet协议套件的核心协议之一,TCP是套件的两个原始组件之一,是互联网协议(IP)的补充,因此整个套件通常被称为TCP / IP TCP是一台计算机上从一个程序中的程序向另一台计算机上的另一个程序提供可靠的,有序的字节stream交付,TCP是诸如万维网,电子邮件,远程pipe理和文件传输依赖于其他应用程序,不需要可靠的数据stream服务,可以使用用户数据报协议(UDP),它提供了一个数据报服务,强调减less可靠性的延迟。 1