TCP与UDP简单对比

TCP

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

TCP三次握手

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

四次挥手

Image [4].png

UDP

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

TCP与UDP对比

Image [7].png

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

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

参考资料:
【1】计算机网络Andrew S.TanenBaum David J. WetheraH
【2】www.bilibili.com/video/BV1kV…

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

おすすめ

転載: juejin.im/post/7035493620413104142