tcp协议(tcp)和udp协议(udp)的区别

有两种类型的互联网协议(IP)流量。它们是TCP或传输控制协议和UDP或用户数据报协议。TCP是面向连接的–一旦建立了连接,数据就可以双向发送。UDP是一种简单的、无连接的Internet协议。使用UDP将多个消息作为数据包分块发送。...

有两种类型的互联网协议(IP)流量。它们是TCP或传输控制协议和UDP或用户数据报协议。TCP是面向连接的–一旦建立了连接,数据就可以双向发送。UDP是一种简单的、无连接的Internet协议。使用UDP将多个消息作为数据包分块发送。

对比图

tcp与udp比较图
tcp协议 udp协议
缩写 传输控制协议 用户数据报协议或通用数据报协议
连接 传输控制协议是一种面向连接的协议。 用户数据报协议是一种无连接协议。
功能 当信息从一台电脑传到另一台电脑时。这是基于连接的。 udp协议也是一种用于消息传输或传输的协议。这不是基于连接的,这意味着一个程序可以向另一个程序发送数据包,这将是关系的结束。
使用 tcp协议适合于要求高可靠性的应用,并且传输时间相对不太重要。 udp协议适用于需要快速、高效传输的应用程序,如游戏。udp协议的无状态特性对于回答来自大量客户机的小查询的服务器也很有用。
其他协议使用 http、https、ftp、**tp、telnet dns、dhcp、tftp、snmp、rip、voip
数据包排序 tcp协议按照指定的顺序重新排列数据包。 udp协议没有固有的顺序,因为所有的数据包都是相互独立的。如果需要排序,则必须由应用层管理。
传输速度 tcp协议的速度比udp协议慢。 udp协议更快,因为没有尝试错误恢复。这是一个“尽力而为”的协议。
可靠性 绝对保证传输的数据保持完整,并以发送时的相同顺序到达。 根本无法保证发送的消息或数据包能够到达。
标题大小 tcp协议头大小为20字节 udp协议标头大小为8.字节。
公共标题字段 源端口,目标端口,校验和 源端口,目标端口,校验和
数据流 数据以字节流的形式读取,不向信号消息(段)边界传输任何区别指示。 数据包是单独发送的,只有在到达时才检查其完整性。数据包有明确的边界,在接收时会得到遵守,这意味着在接收套接字上的读取操作将产生一个与最初发送的消息相同的完整消息。
重量 tcp协议很重。tcp协议需要三个数据包来建立套接字连接,然后才能发送任何用户数据。tcp协议处理可靠性和拥塞控制。 udp协议是轻量级的。没有消息的排序,没有跟踪连接等。它是一个设计在知识产权之上的小型传输层。
数据流控制 tcp协议不进行流控制。tcp协议需要三个数据包来建立套接字连接,然后才能发送任何用户数据。tcp协议处理可靠性和拥塞控制。 udp协议没有用于流控制的选项
错误检查 tcp协议进行错误检查和错误恢复。错误的数据包从源重新传输到目的地。 udp协议进行错误检查,但只是丢弃错误的数据包。未尝试错误恢复。
领域 1.序列号,2.确认号,3.数据偏移,4.保留,5.控制位,6.窗口,7.紧急指针8.选项,9填充,10校验和,11源端口,12目标端口 1.长度,2.源端口,3.目的端口,4.校验和
确认 确认段 不承认
握手 同步,同步确认确认 无握手(无连接协议)

数据传输特性的差异

TCP确保了字节流从用户到服务器的可靠有序传递,反之亦然。UDP不专用于端到端连接,并且通信不检查接收器的就绪性。

可靠性

TCP更可靠,因为它管理消息确认和丢失部分时的重传。因此,绝对没有缺失的数据。由于不存在确认、超时和重传的概念,UDP不能确保通信已到达接收器。

订购

TCP传输是按顺序发送的,它们是按相同的顺序接收的。在数据段以错误的顺序到达的情况下,TCP重新排序并交付应用程序。在UDP的情况下,当发送的消息序列到达接收应用程序时,它可能不会被维护。绝对没有办法预测消息的接收顺序。

连接

TCP是一种重连接,一个套接字连接需要三个数据包,它处理拥塞控制和可靠性。UDP是一个轻量级的传输层,设计在IP之上。没有跟踪连接或消息排序。

转让方式

TCP以字节流的形式读取数据,并将消息传输到段边界。UDP消息是单独发送并在到达时检查其完整性的数据包。数据包有定义的边界,而数据流没有。

错误检测

UDP是在“尽力而为”的基础上工作的。该协议支持通过校验和进行错误检测,但当检测到错误时,数据包将被丢弃。不尝试重新传输数据包以从该错误中恢复。这是因为UDP通常用于游戏或语音传输等对时间敏感的应用程序。从错误中恢复将是毫无意义的,因为当重新传输的数据包被接收时,它将没有任何用处。

TCP同时使用错误检测和错误恢复。错误是通过校验和来检测的,如果一个数据包是错误的,那么它就不会被接收方确认,从而触发发送方的重新传输。这种操作机制称为带重传的肯定确认(PAR)。

tcp和udp的工作原理

TCP连接是通过三方握手建立的,这是一个启动和确认连接的过程。一旦建立了连接,就可以开始数据传输。传输后,通过关闭所有已建立的虚拟电路来终止连接。

UDP使用简单的传输模型,没有隐含的握手对话,以保证可靠性、顺序或数据完整性。因此,UDP提供了一个不可靠的服务,数据报可能会无序到达,出现重复,或者在没有通知的情况下丢失。UDP假设错误检查和更正不是必需的,或者是在应用程序中执行的,从而避免了在网络接口级别进行此类处理的开销。与TCP不同,UDP与包广播(发送到本地网络上的所有用户)和多播(发送到所有用户)兼容。

tcp和udp的不同应用

Web浏览、电子邮件和文件传输是使用TCP的常见应用程序。TCP用于控制网段大小、数据交换速率、流量控制和网络拥塞。在网络接口层需要纠错设施的情况下,TCP是首选。UDP主要用于对时间敏感的应用程序以及回答来自大量客户端的小查询的服务器。UDP与包广播(发送到网络上的所有用户)和多播(发送到所有用户)兼容。UDP协议广泛应用于域名系统、IP语音、普通文件传输协议和网络游戏中。

游戏服务器的tcp与udp

对于大型多人在线(MMO)游戏,开发人员通常必须在使用UDP或TCP持久连接之间做出架构选择。TCP的优点是持久的连接、可靠性和能够使用任意大小的数据包。在这种情况下,TCP的最大问题是其拥塞控制算法,它将数据包丢失视为带宽限制的标志,并自动限制数据包的发送。在3G或Wi-Fi网络上,这可能会导致显著的延迟。

经验丰富的开发人员Christoff Lernö 权衡利弊,并推荐以下标准来选择在游戏中使用TCP还是UDP:

  • 使用HTTP over TCP进行偶尔的、由客户端发起的无状态查询,只要偶尔有延迟就可以了。
  • 如果客户机和服务器都独立发送数据包,但偶尔有延迟也可以(例如在线扑克、许多MMO),则使用持久的普通TCP套接字。
  • 如果客户端和服务器都可以独立发送数据包,并且偶尔出现延迟,则使用UDP(例如,大多数多人动作游戏、某些mmo)。

参考文献

  • 维基百科:传输控制协议
  • 维基百科:用户数据报协议
  • 游戏服务器的UDP与TCP
  • 传输控制协议

  • 发表于 2021-07-04 16:36
  • 阅读 ( 133 )
  • 分类:IT

你可能感兴趣的文章

封装(encapsulation)和脱胶囊(decapsulation)的区别

...两种常见的网络模型是国际标准化组织(OSI)和传输控制协议/因特网协议(TCP/IP)。TCP/IP是一种新的网络模型,它替代了OSI模型。这些模型包含层。数据经过数据通信层。封装和去封装是与通过每一层传递数据有关的两个术语...

  • 发布于 2020-10-19 15:30
  • 阅读 ( 485 )

如何在windows防火墙上打开端口?

...下一个屏幕上,您必须选择要打开的端口是使用传输控制协议(TCP)还是用户数据报协议(UDP)。不幸的是,由于不同的应用程序使用不同的协议,我们无法具体告诉您要使用哪个。端口号的范围从0到65535,最多1023个端口是为...

  • 发布于 2021-04-04 05:39
  • 阅读 ( 180 )

互联网是如何工作的?

...有另一条路可以走。沿着路径的路由器使用称为边界网关协议(Border Gateway Protocol,简称BGP)的东西来传递有关网络是否关闭以及数据传输的最佳路径的信息。 创建这个互联网络(或因特网)不仅仅是把每个网络一个接一个地连...

  • 发布于 2021-04-06 17:58
  • 阅读 ( 256 )

tcp和udp有什么区别?

...配置防火墙软件时,您可能见过对TCP和UDP的引用。这两个协议用于不同类型的数据。 TCP/IP是设备通过Internet和大多数本地网络进行通信的一组协议。它是以两种原始协议——传输控制协议(TCP)和Internet协议(IP)命名的。TCP提...

  • 发布于 2021-04-07 17:46
  • 阅读 ( 178 )

如何使用windows防火墙日志跟踪防火墙活动

...志可以提供有价值的信息,如源和目标IP地址、端口号和协议。您还可以使用Windows防火墙日志文件监视TCP和UDP连接以及被防火墙阻止的数据包。 为什么以及何时防火墙日志记录有用 验证新添加的防火墙规则是否正常工作,或...

  • 发布于 2021-04-10 10:18
  • 阅读 ( 266 )

22个常见网络术语解释

... ip地址 相关报道:什么是IPv6,为什么它很重要? Internet协议地址或IP地址是与网络上的计算机相对应的数字地址。当一台计算机要连接到另一台计算机时,它会连接到该计算机的IP地址。 ipv4和ipv6 常用的IP地址有两种。较旧的IPv...

  • 发布于 2021-04-11 08:51
  • 阅读 ( 207 )

如何在linux上使用ss命令

...他计算机、网络和服务通信的详细信息。 ss显示传输控制协议(TCP)、用户数据报协议(UDP)、Unix(进程间)和原始套接字的统计信息。原始套接字在网络OSI级别运行,这意味着TCP和UDP头必须由应用程序软件处理,而不是由传...

  • 发布于 2021-04-14 18:48
  • 阅读 ( 166 )

如何在linux上使用netstat

...们的进程的信息宝库。学习如何使用它。 端口、进程和协议 可以连接网络套接字,也可以等待连接。连接使用网络协议,如传输控制协议(TCP)或用户数据报协议UDP。他们使用互联网协议地址和网络端口建立连接。 sockets一词...

  • 发布于 2021-04-14 19:17
  • 阅读 ( 175 )

tcp协议(tcp)和udp协议(udp)的区别

...据。 UDP是无连接的,而TCP是面向连接的,这要求后一种协议在接收方和发送方之间建立完全连接。传输完成后,需要关闭连接以释放协议正在使用的系统资源。UDP不需要授权,可以自由浮动地分发数据。 
 ...

  • 发布于 2021-06-22 10:50
  • 阅读 ( 206 )

pptp公司(pptp)和l2tp型(l2tp)的区别

PPTP与L2TP 隧道协议用于在不兼容的传送网络上承载有效负载。它还可用于通过网络提供受保护的路径。在其基本描述中,它是一种通信协议,用于封装在对等级别或更低级别。 隧道协议也是多种协议的传输工具。它们是加密VPN...

  • 发布于 2021-06-23 04:05
  • 阅读 ( 183 )
cqdgdn
cqdgdn

0 篇文章

相关推荐