关注我们

UDP和TCP的优缺点

安云安云 黑帽艺术 2018-06-12 25896 0

在TCP/IP中能实现传输层功能的,具有代表性的协议是TCP和UDP.


TCP:


        TCP是面向连接的,可靠的流协议.流就是指不间断的数据结构,你可以把它想象成排水管道中的水流,当应用程序采用TCP发生消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端.


        TCP为提供可靠性传输,实行"顺序控制"或"重发控制"机制.此外还具备"流量控制","拥塞控制",提高网络利用率等众多功能.


例如: 在发送端应用程序发送了10次100字节的消息,那么在接收端,应用程序有可能会收到一个1000字节连续不间断的数据.因此,在TCP通信中,发送端应用可以在自己所要发送的消息中设置一个表示长度或者间隔的字段信息.


UDP:


        UDP是不具有可靠性的数据报协议.细微的处理它会交给上层的应用去完成.在UDP的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会达到.因此,应用有时会根据自己的需要进行重发处理.


例如: 发送端应用程序发送了一个100字节的消息,那么接收端应用程序也会以100字节为长度接收数据.UDP中,消息长度的数据也会发送到接收端,因此在发送的消息中不需要设置一个表示消息长度或间隔的字段信息.然而,UDP不具备可靠传输.所以,发送端发出去的消息在网络传输途中一旦丢失,接收端将接收不到这个消息.


区分


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


        TCP用于传输层有必要实现可靠传输的情况.由于它是面向有连接并具备顺序控制,重发控制等机制的,所以,它可以为应用提供可靠传输.


        而在一方面,UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信.我们举一个通过IP电话进行通话的例子.如果使用TCP,数据在传送途中如果丢失会被重发,但这样无法流畅的传输通话人的声音,也就导致无法进行正常交流.而采用UDP,它就不会进行重发处理.从而也就不会有声音大幅度延迟到达的问题.即使数据有丢失,也只是会影响某一小部分通话.此外,在多播和广播通信中也使用UDP而不是TCP.RIP,DHCP等基于广播的协议也要依赖于UDP.


       所以,TCP和UDP应该根据应用的目的按需使用.

版权声明

本文仅代表作者观点,不代表黑白网立场。
如文章侵犯了您的权利,请通过邮箱联系我们删除
E-Mail:server@heibai.org
黑白网官群:238921584

喜欢0