TCP和UDP有什么区别?

network-switch

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

TCP / IP是设备用于通过Internet和大多数本地网络进行通信的一套协议。 它是以两个原始协议命名的,即传输控制协议(TCP)和互联网协议(IP)。 TCP为应用程序提供了一种通过网络传递(并接收)有序的和错误检查的信息包流的方法。 用户数据报协议(UDP)被应用程序用来通过废除错误检查来提供更快的信息流。 配置某些网络硬件或软件时,可能需要了解其中的差异。

他们有什么共同点

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

router-difference-between-tcp-and-udp

TCP和UDP不是在IP之上工作的唯一协议。 但是,它们是使用最广泛的。

TCP如何工作

TCP是互联网上最常用的协议。

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

TCP全部是关于可靠性的 - 跟踪TCP发送的数据包被跟踪,所以在传输过程中没有数据丢失或损坏。 这就是为什么文件下载即使有网络打嗝也不会损坏。 当然,如果收件人完全离线,您的计算机将放弃,您将看到一条错误消息,指出它无法与远程主机进行通信。

TCP以两种方式实现这一点。 首先,它通过对数据包进行编号来进行排序。 其次,通过让收件人向发件人发送一个回应,说收件人已收到邮件,进行错误检查。 如果发送方没有得到正确的响应,则可以重新发送数据包,以确保接收方正确接收数据包。

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

UDP如何工作

UDP协议的工作方式与TCP相似,但是它抛出了所有错误检查的东西。 所有的来回通信都会引起延迟 ,从而减慢速度。

当应用程序使用UDP时,数据包只发送给收件人。 发送者不会等待确认收件人收到数据包 - 它只是继续发送下一个数据包。 如果收件人错过了几个UDP数据包,他们只是丢失 - 发件人不会重新发送它们。 失去所有这些开销意味着设备可以更快地通信。

当需要速度时使用UDP,并且不需要纠错。 例如,UDP经常用于直播和在线游戏。

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

这在网络游戏中的作用类似。 如果你错过了一些UDP数据包,当你收到较新的UDP数据包时,玩家角色可能会在地图上传送。 如果你错过了这些旧数据包,那就没有意义了,因为没有你,游戏还在继续。 重要的是现在在游戏服务器上发生的事情,而不是几秒钟前发生的事情。 开槽TCP的错误更正有助于加速游戏连接并减少延迟。

pc-game-team-fortress-2-using-udp

所以呢?

应用程序使用TCP还是UDP取决于应用程序的需求。 大多数应用程序需要TCP的纠错和鲁棒性,但是一些应用程序需要UDP的开销和速度。 如果您使用Wireshark等网络分析工具 ,则可以看到不同类型的数据包来回传输

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

TCP和UDP有什么区别?

network-switch

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

这两种协议都用于通过Internet或本地网络发送数据。 配置某些网络硬件或软件时,您可能需要知道差异。

他们有什么共同点

TCP和UDP是用于通过因特网发送数据比特(称为分组)的协议。 他们都建立在互联网协议之上。 换句话说,无论你是通过发送TCP或UDP数据包,该数据包被发送到IP地址 这些数据包被处理类似,因为它们从您的计算机转发到中间路由器和到目的地。

TCP和UDP不是唯一在IP之上工作的协议。 然而,它们是最广泛使用的。 广泛使用的术语“TCP / IP”是指TCP over IP。 IP上的UDP也可以被称为“UDP / IP”,尽管这不是常见的术语。

router-difference-between-tcp-and-udp

如何工作

TCP代表传输控制协议。 它是互联网上最常用的协议。

加载网页时,计算机会将TCP数据包发送到Web服务器的地址,要求它将网页发送给您。 Web服务器通过发送TCP数据包流进行响应,您的Web浏览器将其连接在一起以形成Web页面并显示给您。 当您单击链接,登录,发表评论或做任何其他事情,您的Web浏览器发送TCP数据包到服务器,服务器发送TCP数据包。 TCP不仅仅是单向通信 - 远程系统发送数据包以确认它收到您的数据包。

TCP保证接收者将通过对它们编号来按顺序接收分组。 收件人会向收件人发送回收邮件的消息。 如果发送方没有得到正确的响应,它将重新发送数据包,以确保接收方接收它们。 还检查数据包的错误。 TCP是所有关于这个可靠性 - 跟踪与TCP发送的数据包,所以没有数据丢失或在传输中损坏。 这就是为什么文件下载不会损坏,即使有网络打嗝。 当然,如果收件人完全脱机,您的计算机将会放弃,您会看到一条错误消息,指出它无法与远程主机通信。

进程资源管理等系统实用程序可以显示一个过程,使连接的类型-在这里我们可以看到Chrome浏览器打开的TCP连接到各种网络服务器。

process-explorer-tcp-web-browser

UDP如何工作

UDP代表用户数据报协议 - 数据报与信息包相同。 UDP协议的工作方式类似于TCP,但它抛出所有的错误检查的东西。 所有的往返通信和可交付性保证减慢事情。

当使用UDP时,数据包只是发送到接收者。 发送方不会等待,以确保收件人接收到数据包 - 它只会继续发送下一个数据包。 如果你是收件人,你错过了一些UDP数据包,太糟糕了 - 你不能再要求这些数据包。 不能保证你得到所有的数据包,没有办法再次要求一个数据包,如果你错过它,但失去所有这些开销意味着计算机可以更快地沟通。

当需要速度并且不需要纠错时使用UDP。 例如,UDP经常用于实况广播和在线游戏。

例如,假设您正在观看直播视频流。 实时流通常使用UDP而不是TCP广播。 服务器只是发送一个恒定的UDP数据包流到计算机监视。 如果失去连接几秒钟,视频将冻结一段时间,然后跳到广播的当前位,跳过您错过的位。 如果您遇到轻微丢包,视频或音频可能会失真一会儿,因为视频继续播放没有丢失的数据。

这在网络游戏中的工作方式类似 - 如果你错过了一些UDP数据包,玩家角色可能会在你收到较新的UDP数据包时在地图上传播。 如果你错过了,没有必要请求旧的数据包,因为游戏是没有你继续。 所有重要的是现在发生在游戏服务器 - 而不是几秒钟前发生了什么。 开沟TCP的纠错有助于加快游戏连接,减少等待时间

pc-game-team-fortress-2-using-udp

所以呢?

应用程序是否使用TCP或UDP取决于其开发人员。 这真的取决于应用程序需要什么 - 大多数应用程序想要的纠错和鲁棒性的TCP,但一些应用程序需要的速度和减少的UDP开销。 使用像Wireshark的网络分析工具 ,你会看到不同类型的来回奔波包。

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

wireshark-tcp-udp


ICMP或Internet控制消息协议是互联网上使用的另一种常用协议。 它通常用于路由器和其他网络设备之间的查询和错误消息。 应用程序通常只需使用不使用ICMP,虽然跟踪路由使用ICMP他们的诊断。

赞 (0)
分享到:更多 ()