TCP和UDP有什么区别?

在路由器上设置端口转发或配置防火墙软件时,您可能已经看到了对TCP和UDP的引用。这两个协议用于不同类型的数据。

TCP / IP是设备用于在Internet和大多数本地网络上进行通信的一组协议。它以两个原始协议命名-传输控制协议(TCP)和Internet协议(IP)。 TCP为应用程序提供了一种通过网络传递(和接收)有序且经过错误检查的信息包流的方法。应用程序使用用户数据报协议(UDP)通过消除错误检查来提供更快的信息流。在配置某些网络硬件或软件时,您可能需要了解不同之处。

他们有什么共同点

有关的:如何查找您的私有和公共IP地址

TCP和UDP都是用于通过Internet发送数据位(称为数据包)的协议。两种协议都建立在IP协议之上。换句话说,无论您是通过TCP还是UDP发送数据包,该数据包都会发送到IP地址。这些数据包的处理方式相似,因为它们是从计算机转发到中间路由器再转发到目的地的。

TCP和UDP并不是唯一可以在IP上运行的协议。但是,它们是使用最广泛的。

TCP如何工作

TCP是Internet上最常用的协议。

当您在浏览器中请求网页时,计算机会将TCP数据包发送到Web服务器的地址,并要求它将网页发送回给您。 Web服务器通过发送TCP数据包流进行响应,您的Web浏览器将这些数据包缝合在一起以形成网页。当您单击链接,登录,发表评论或执行其他任何操作时,Web浏览器将TCP数据包发送到服务器,而服务器将TCP数据包发送回。

TCP的全部意义在于可靠性-跟踪通过TCP发送的数据包,因此在传输过程中不会丢失或破坏任何数据。这就是即使出现网络故障也不会损坏文件下载的原因。当然,如果收件人完全脱机,则您的计算机将放弃,并且您会看到一条错误消息,指出它无法与远程主机通信。

TCP通过两种方式实现这一目标。首先,它通过对数据包编号来对其进行排序。其次,它通过让收件人将响应发送回发给发送者说已收到消息来进行错误检查。如果发件人没有得到正确的答复,它可以重新发送数据包以确保收件人正确接收它们。

有关的:了解流程浏览器

Process Explorer和其他系统实用程序可以显示进程建立的连接类型-在这里我们可以看到具有与各种Web服务器的开放TCP连接的Chrome浏览器。

UDP如何工作

有关的:延迟如何使快速的Internet连接速度变慢

UDP协议的工作方式与TCP相似,但是它丢弃了所有的错误检查内容。所有来回通信都会引入延迟,从而减慢速度。

当应用程序使用UDP时,数据包仅发送到收件人。发件人不会等着确定收件人是否收到了数据包,它只是继续发送下一个数据包。如果收件人在这里和那里缺少一些UDP数据包,他们只是失去了,发件人不会重新发送它们。丢失所有这些开销意味着设备可以更快地进行通信。

在需要速度且不需要纠错的情况下使用UDP。例如,UDP常用于直播和在线游戏。

例如,假设您正在观看实时视频流,该视频流通常使用UDP而不是TCP进行广播。服务器只是向观看的计算机发送恒定的UDP数据包流。如果几秒钟失去连接,视频可能会冻结或跳动一会儿,然后跳到广播的当前位置。如果您遇到小包丢失的情况,则由于视频继续播放而没有丢失数据,因此视频或音频可能会暂时失真。

这在网络游戏中也类似。如果您错过了一些UDP数据包,则当您收到较新的UDP数据包时,播放器角色可能会在地图上传送。如果您错过了旧数据包,就没有必要索要这些数据了,因为如果没有您,游戏将会继续进行。重要的是游戏服务器上正在发生的事情,而不是几秒钟前发生的事情。放弃TCP的错误校正有助于加快游戏连接速度并减少延迟。

所以呢?

有关的:如何使用Wireshark捕获,过滤和检查数据包

应用程序使用TCP还是UDP取决于其开发人员,而选择取决于应用程序需要什么。大多数应用程序需要TCP的纠错和鲁棒性,但是某些应用程序需要UDP的速度和降低的开销。如果您启动了诸如Wireshark之​​类的网络分析工具,则可以看到来回传播的不同类型的数据包。

除非您是网络管理员或软件开发人员,否则这不会对您造成太大影响。如果您要配置路由器或防火墙软件,并且不确定应用程序是使用TCP还是UDP,则通常可以选择“两者”选项,以使路由器或防火墙对TCP和UDP流量应用相同的规则。


$config[zx-auto] not found$config[zx-overlay] not found