UDP和TCP的优缺点

在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应该根据应用的目的按需使用.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Linux系统之IP、TCP封包格式

一、IP封包格式说明 前言 IP 协议用 IP 报文头封装传输层报文,IP 报文头包含了如下的信息:这个报文从哪个传输层协议过来,它准备被发送到哪台机器,它从哪...

34740
来自专栏玄魂工作室

Web应用系统介绍-TCP/IP协议

大家先冷静一下上了一天班的大脑先~~~ 然后我们再讲理论~ 以下内容非常枯燥,但是也是非常有用~ 在我们开始CTF的道路之前,希望你们能知道并理解下面基本概念...

35240
来自专栏xingoo, 一个梦想做发明家的程序员

计算机网络基础回顾

对于程序员来说,计算机网络的知识是很重要也很基础的。尤其是做web开发就要对http或者https很熟。有的时候涉及到域名,还会碰到跨域问题。这些其实都是计算...

212100
来自专栏颇忒脱的技术博客

面向程序员的网络基本知识 - 网络模型及网络设备

本系列文章旨在向程序员分享一些网络基本知识,让程序员具备基本的网络常识,以便与网络工程师沟通。本系列文章不会涉及如何配置交换机、路由器等网络设备的内容,所以不适...

9610
来自专栏李家的小酒馆

UDP和TCP的区别

UDP(User Data Protocol,用户数据报协议)   UDP是一个无连接,不保证可靠性的传输层协议,也就是说发送端部关心发送的数据是否到达目标主机...

37300
来自专栏编程之旅

2.25 网络

发送——》接收 应用层 - 会话层 - 数据层 - 传输层 - 网络层 - 数据链路层 - 物理层

9120
来自专栏测试开发架构之路

计算机网络基础知识笔记(一)

TCP/IP体系结构之网络层   本章重要内容是:     1)虚拟互联网络概念     2)IP地址与物理地址的关系     3)IP地址分类和无分类域间路由...

380100
来自专栏大神带我来搬砖

对Nexus私服的作者真是恨铁不成钢

公司需要搭建maven私服,于是打算搭建nexus服务器。原来一直都是用的nexus OSS 2,感觉还不错,于是下载了最新版的OSS 3来安装。

17810
来自专栏Golang语言社区

TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄...

46730
来自专栏互联网杂技

开发人员应该知道的计算机网络知识

前言 作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢,主...

42350

扫码关注云+社区

领取腾讯云代金券