TCP和UDP的工作原理
TCP比UDP更可靠。它将数据包从你的设备传输到网络服务器。UDP 更快更简单,但它不能保证数据包传递的准确性。
两种协议发送数据的过程:
- TCP 为每个数据包分配一个唯一的标识符和一个序列号。让接收方可以识别接收到的数据包以及下一个到达的数据包。
- 一旦接收到数据包,并且如果它的顺序正确,接收方就会向发送方发送一个确认,发送方现在可以发送另一个数据包。
- 如果数据包丢失或以错误的顺序发送,则接收方保持沉默,表示需要重新发送相同的数据包。
因为数据是按顺序发送的,它有助于数据排队和流量控制,并且更容易发现和修复任何错误。这也意味着通过TCP 发送的数据更有可能完整地到达目的地。但是,它有一个缺点。两方之间有很多来回通信,因此建立连接和交换数据需要更长的时间。
UDP 无需唯一标识符或序列号即可完成相同的工作。它以流的形式发送数据,并且只有一个校验和来确保数据未损坏。UDP几乎没有纠错,也不关心丢包。它更容易出错,但它发送数据的速度比TCP快得多。
一般的防火墙只允许部分UDP通信,虽然保护TCP更容易,但UDP连接并没有完全不受保护。用户可以为特定应用程序使用代理或在远程用户和公司内部网络之间建立隧道连接。
TCP和UDP之间的主要区别
UDP比TCP快,因为用户不必允许或确认接收到要重新发送的数据。这使UDP可以更快地建立连接并更快地传输数据。但是,这也引起了人们对UDP实际安全性的一些担忧。就UDP与TCP VPN的争论而言,OpenVPN在UDP端口上效果最好。
以下是它们的差异:
TCP | UDP | |
---|---|---|
可靠性 | 高 | 低 |
速度 | 低 | 高 |
转移方式 | 数据包按顺序传送 | 数据包以流的形式传递 |
错误检测和纠正 | 是 | 不 |
拥塞控制 | 是 | 不 |
校验 | 是 | 只有校验和 |
UDP和TCP都会将数据分成更小的单元,称为数据包。包括发送方和接收方的 IP、各种配置、正在发送的实际数据和指示数据包结束的数据。
使用UDP还是TCP,完全取决于使用它们的目的。如果需要快速且持续的数据传输以使应用程序正常工作,则必须使用UDP。TCP是一种稳定可靠的数据传输协议,并且在传输过程中不会丢失任何数据。
UDP 比 TCP 快,但也更容易出错。原因是 UDP 没有像 TCP 那样对数据包进行严格的检查,而是采用了更连续的数据流。TCP 按顺序发送其数据,因此它使用更多的流量控制。它使连接更安全,更顺畅,但由于发送方和接收方之间的大量来回通信而降低了速度。
OpenVPN如何选用协议
UDP和TCP协议都可以在OpenVPN中使用,OpenVPN 是一种开源VPN 协议,被众多 VPN提供商使用。OpenVPN可以在两种网络协议上运行,它们都提供隐私和安全性。选择哪一个取决于你使用VPN 的目的。
如果以玩游戏、流媒体或VoIP服务为主,那应该使用UDP协议。它可能会丢失一两个数据包,但不会对整体连接产生较大影响。使用TCP则可能会导致延迟,影响使用的体验。如果使用OpenVPN只是用于电子邮件、网页浏览和文件传输等静态用途,则建议使用TCP协议。