![UDP 和 TCP 有什么区别?](https://linux22.com/image/482565/UDP%20%E5%92%8C%20TCP%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我的路由器有两种协议(以及“两者”选项)可供我在设置端口转发时选择:UDP 和 TCP。这两种协议有什么区别?在端口转发中,何时应该选择其中一种?
答案1
答案2
您可以在这里找到一个很好的总结:
TCP和UDP都工作在传输层TCP/IP模型上,但是用法有很大不同。
最重要的区别是:
- 可靠性:
TCP:面向连接
UDP:无连接 - 有序:
TCP:保证消息接收的顺序
UDP:不保证顺序 - 协议权重:
TCP:重量级,因为存在连接/排序开销
UDP:轻量级,开销很少 - 数据包:
TCP:流式传输,数据以“流”的形式读取,没有区分一个数据包在哪里结束,另一个数据包在哪里开始。每次读取调用可能有多个数据包。UDP
:数据报,每次读取调用一个数据包。
框架结构
当数据通过网络发送时,需要将其封装成所谓的“帧”。根据所使用的协议和拓扑,封装方法有多种。下图显示了 TCP 和 UDP 帧结构的不同之处。
这是TCP帧结构:
这是UDP帧结构,更简单:
使用 TCP 的典型协议有 HTTP、FTP 和 SMTP。使用 UDP 的协议示例有 DNS 和 DHCP。
答案3
CEO级别的解释是:
UDP 是指将纸张扔向垃圾箱的大致方向。
TCP 就是当它丢失时,你会一次又一次地扔掉同一张纸的副本,直到它落入垃圾箱。会有纸张浪费,甚至重新发送 TCP 数据包也会导致网络或系统资源的浪费。
答案4
要回答问题的其他部分,您必须转发应用程序使用的内容。要转发 HTTP 流量,请选择 TCP。要转发 TFTP 流量,请选择 UDP。p2p 程序大多同时使用 tcp 和 udp,因此请转发它们两者。
这完全取决于您使用的协议和程序。