UdpClient 与 TcpClient
Posted
技术标签:
【中文标题】UdpClient 与 TcpClient【英文标题】:UdpClient vs TcpClient 【发布时间】:2011-08-01 10:32:06 【问题描述】:UdpClient 和 TcpClient 有什么区别?从软件架构的角度来看,我应该何时使用 Tcp 和何时使用 Udp?我希望我解释得对..
【问题讨论】:
【参考方案1】:TCP 与 UDP 比较 - 用法
TCP 用于非时间关键型应用程序。 UDP 用于需要快速传输数据的游戏或应用程序。 UDP 的无状态特性对于回答来自大量客户端的小型查询的服务器也很有用。TCP 与 UDP 比较 - 功能
当消息通过 Internet 从一台计算机传送到另一台计算机时。这是基于连接的。 UDP 也是一种用于消息传输或传输的协议。这不是基于连接的,这意味着一个程序可以向另一个程序发送大量数据包,这将结束关系。TCP 与 UDP 比较 - 首字母缩略词
传输控制协议 用户数据报协议或通用数据报协议TCP 与 UDP 比较 - 权重
TCP 需要三个数据包来建立一个套接字连接,然后才能发送任何用户数据。 TCP 处理可靠性和拥塞控制。 UDP 是轻量级的。没有消息排序,没有跟踪连接等。它是一个设计在 IP 之上的小型传输层。TCP 与 UDP 比较 - 数据流
数据以字节流的形式读取,没有区别指示传输到信号消息(段)边界。 数据包是单独发送的,只有在它们到达时才会检查其完整性。数据包有明确的边界,在接收时会遵守,这意味着接收方套接字上的读取操作将产生原始发送的完整消息。TCP 与 UDP 比较 - 传输速度
与 UDP 相比,TCP 的速度较慢。 UDP 速度更快,因为不对数据包进行错误检查。TCP 与 UDP 比较 - 示例
HTTP、HTTPS、FTP、SMTP Telnet 等... DNS、DHCP、TFTP、SNMP、RIP、VOIP 等...TCP 与 UDP 比较 - 数据可靠性
绝对保证传输的数据保持完整并按照发送时的顺序到达。 无法保证发送的消息或数据包会到达。TCP 与 UDP 比较 - 连接可靠
双向连接可靠 单向连接可靠TCP 与 UDP 比较 - 排序
TCP 按指定顺序重新排列数据包。 UDP 不对数据包进行排序。如果需要排序,则必须由应用层管理。TCP 与 UDP 比较 - 错误检查
TCP 进行错误检查 UDP 没有错误检查选项。TCP 与 UDP 比较 - 标头大小
TCP 标头大小为 20 字节 UDP 标头大小为 8 个字节。Short compare. Must have book.
【讨论】:
虽然这在理论上可以回答问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。 +1 为这本书,Tanembum 等人。绝对是任何开发人员必备的三本书之一(其他是关于编译器的龙书和关于操作系统的恐龙书)。 @Martinho Fernandes:这是给你的。【参考方案2】:基本上,
UDP 比 TCP 快,因为数据包的发送既不保证传送也不保证顺序 TCP 更安全,因为每个数据包都经过确认和排序您应该阅读这些链接:
UDP vs TCP, how much faster is it? http://www.skullbox.net/tcpudp.php(短) http://www.laynetworks.com/Comparative%20analysis_TCP%20Vs%20UDP.htm(长)【讨论】:
【参考方案3】:UDP 和 TCP 是两个不同的协议。
基本上,您几乎总是想使用 TCP,除非您有非常令人信服的理由不这样做。
UDP 是 IP 协议之上的一个非常基本的协议,仅在数据没有损坏时添加简单的检查。
另一方面,TCP 更复杂,但也更可靠,因为它保证您的数据到达、以正确的顺序到达以及拥塞控制之类的事情。
【讨论】:
【参考方案4】:总结一下你不希望丢失数据的 TCP(重新发送数据)像视频这样的实时直播我们不希望丢失的数据包重新发送它是实时的,所以使用 UDP
【讨论】:
欢迎来到***,尽可能提供更多信息和示例。这样您将获得更多积分。以上是关于UdpClient 与 TcpClient的主要内容,如果未能解决你的问题,请参考以下文章