阅读 185

TCP与UDP简单对比(使用udp相对于tcp有何优点)

TCP

TCP是面向连接的,可靠的流协议 TCP提供可靠性传输,实行“顺序控制”或者“重发控制”,此外还具备“流控制(流量控制)”、“拥塞控制”,提高网络利用率等众多功能。

TCP三次握手

Image [2].png为什么需要三次握手? 为了防止已经失效的请求报文突然又传到服务器引起错误,如果没有客户端第三次发送的第二次ACK确认报文,服务端会认为又建立了一个新的连接,但是客户端并不知道这个连接的存在,造成状态不一致。因此需要需要服务端收到ACK包才算建立连接。所以三次握手就是为了解决网络信道不可靠的问题。为了在不可靠的信道上建立可靠的连接Image [3].png

四次挥手

Image [4].png

UDP

Image [6].pngUDP是不具备可靠性的数据报协议。细微的处理会交给上层的应用去处理。UDP虽然能确定发送消息的大小,但是不能保证消息一定会到达,因此,应用有时会根据自己的需要进行重发处理。

TCP与UDP对比

Image [7].png

可能有人会认为,鉴于TCP是可靠的传输协议,那么它一定优于UDP。 其实不然,TCP与UDP的优缺点无法简单地、绝对地去做比较。那么,对这两种协议 应该如何加以区分使用呢?下面,我就对此问题做一简单说明。

TCP用于在传输层有必要实现可靠传输的情况。由于它是面向有连接并具备顺序控制、重发控制等机制的,所以它可以为应用提供可靠传输; 而在一方面,UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。我们举一个通过IP电话进行通话的例子。如果使用TCP,数据在传送途中如果丢失会被重发,但这样无法流畅地传输通话人的声音,会导致无法进行正常交流。而采用UDP,它不会进行重发处理。从而也就不会有声音大幅度延迟到达的问题。即使有部分数据丢失,也只是会影响某一小部分的通话。 此外,在多播与广播通信中也使用UDP而不是TCP.RIP、DHCP等基于广播的协议也要依赖于UDP。 因此,TCP和UDP应该根据应用的目的按需使用。


作者:ForeverKobe
链接:https://juejin.cn/post/7035493620413104142


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐