Answers:
您可以在此处找到良好的摘要:
TCP和UDP都在传输层TCP / IP模型上工作,但是用法却大不相同。
最重要的区别是:
框架结构
通过网络发送数据时,需要将其封装到所谓的“帧”中。有多种封装方法,具体取决于所使用的协议和拓扑。下图显示了TCP和UDP帧结构如何不同。
这是TCP帧结构:
这个UDP帧结构,简单得多:
使用TCP的典型协议是HTTP,FTP和SMTP。使用UDP的协议示例是DNS和DHCP。
和CEO级别的解释:
UDP是指将纸张扔向垃圾箱的一般方向时的情况。
TCP丢失时,您会一次又一次地扔掉同一张纸的精确副本,直到它落入垃圾箱。可能会浪费纸张,甚至重新发送TCP数据包也会导致网络或系统资源的浪费。
要回答问题的其他部分,您必须转发应用程序使用的内容。要转发HTTP通信,请选择TCP。要转发TFTP流量,请选择UDP。p2p程序大多同时使用tcp和udp,因此将它们都转发。
这完全取决于您使用的协议和程序。
除了到目前为止提到的差异外,TCP还提供了
流量控制。使用窗口机制,接收者可以限制发送者必须等待发送更多数据之前必须从发送者接收多少个八位字节(字节)。接收方可以随着对话的进行更改窗口的大小。这使接收方可以“限制”发送方的数据速率:UDP不允许这样做,并且接收方可以做的就是丢弃无法缓冲或在到达时进行处理的数据。
一些更多的技术功能,例如非连续确认(使用选择性确认,以使发送方仅重新发送丢失的帧,而不是丢失的帧以及接收方已经以常规方式无法确认的后续帧),拥塞处理和自适应重传(调整计时器,该计时器决定在未收到确认时重新发送已发送帧的时间)。这些与UDP不相关,但可以帮助TCP通过UDP提供额外的服务,而不会大大增加相同有效负载量的网络负载。
TCP尽力确保将数据传递给接收方;UDP没有。
协议越广为人知,路径上的路由器介入的协议越多。发送tcp数据包,很有可能接收到的数据包受到了严重破坏。UDP通常不是那么混乱,而其他254个IP Paylod协议通常是完全不受影响的。
用户数据报协议(UDP)
它是Internet协议套件基本协议的一部分。联网计算机上的程序可以发送短消息,有时也称为数据报。UDP不保证任何可靠性(碰巧数据报可能会乱序到达,重复或丢失,恕不另行通知)。事实证明,对于不需要保证传送的应用,UDP不会检查所有数据包是否实际上已被传送,因此它被证明是更快,更有效的。UDP在以下情况下可以找到其用途:
时间敏感的应用程序。避免了由于延迟数据包引起的问题
对于回答来自大量客户端的少量查询的服务器,它也很有用。UDP支持数据包广播(传送给本地网络上的所有用户)和多播(传送给所有订户)。
传输控制协议(TCP)
由于该协议在Internet协议套件中的重要性,通常将其称为TCP / IP。TCP在更高级别上运行,仅与两个终端系统有关(例如,在Web浏览器和Web服务器之间)。TCP提供了从一台计算机上的一个程序到另一台计算机上的另一个程序的可靠,顺序的数据流传递。TCP重组电子邮件支持和文件传输以及Web应用程序的常见用法。在其管理任务中,TCP控制消息大小,消息交换速率以及网络流量拥塞。至于IP,它处理从计算机到计算机的较低级别的传输,作为通过Internet传输的消息。
嗯,这两种网络协议都是建立在称为Internet协议或IP的东西之上的。互联网协议是互联网的主要协议,例如,它使我们能够浏览网络。这就是为什么您经常会看到这些协议写为TCP / IP或UDP / IP的原因。它们实际上是互联网的核心协议。
在这两种情况下,您的数据都分成称为数据包的数据块。TCP确保这些数据包以正确的顺序到达目的地,并且没有任何错误。
另一方面,UDP无法确保数据包甚至会到达。它将仅确保如果确实到达,它将没有错误。
通常,其他协议将在TCP和UDP之上运行,并称为应用程序协议,因为它们在应用程序内而不是在操作系统内运行。您的网络浏览器使用HTTP协议,该协议将使用TCP协议。
域名查询或DNS查询通常使用UDP,但也可以使用TCP。许多流服务在另一个应用程序协议下使用UDP。
我希望能用简单的英语回答您的问题。