TCP和UDP之间的区别

如题所述

TCP和UDP区别

TCP(或传输控制协议)

    UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。ICQ 短消息使用 UDP 协议发送消息。 
    许多程序将使用单独的TCP连接和单独的UDP连接。重要的状态信息随可靠的TCP连接发送,而主数据流通过UDP发送。

 UDP(或用户数据报协议)

    TCP的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接。TCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢复。它通过为其发送的每个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每个数据包视为一个独立的单元,因此,数据包可以沿完全不同的路径发送,即使它们都是同一消息的组成部分。这种路由与网络层处理分段和重新组装数据包的方式非常相似,只是级别更高而已。
    为确保正确地接收数据,TCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。

TCP与UDP的选择

    如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。) 
    很明显,当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-05
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

现在Internet上流行的协议是TCP/IP协议,该协议中对低于1024的端口都有确切的定义,他们对应着Internet上一些常见的服务。这些常见的服务可以分为使用TCP端口(面向连接)和使用UDP端口(面向无连接)两种。

说到TCP和UDP,首先要明白“连接”和“无连接”的含义,他们的关系可以用一个形象地比喻来说明,就是打电话和写信。两个人如果要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接——即挂电话。写信就比较简单了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。从这个分析可以看出,建立连接可以在需要痛心地双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第三方不能打入电话。而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是一次性的传递,是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
TCP是面向连接的,有比较高的可靠性,
一些要求比较高的服务一般使用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。对于QQ必须另外说明一下,QQ2003以前是只使用UDP协议的,其服务器使用8000端口,侦听是否有信息传来,客户端使用4000端口,向外发送信息(这也就不难理解在一般的显IP的QQ版本中显示好友的IP地址信息中端口常为4000或其后续端口的原因了),即QQ程序既接受服务又提供服务,在以后的QQ版本中也支持使用TCP协议了。本回答被网友采纳
第2个回答  2016-11-17
1.面向连接的TCP
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
总之,TCP要建立连接必须经过三次握手。
优点:1、面向连接的传输;2、数据传输稳定可靠;3、端到端的通信;4、全双工方式;5、以字节为单位传输
缺点:传输速度不够快

2.面向无连接的UDP
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
每个数据包的大小限定在64K以内!
优点:1、传输速度快;2、效率高;
缺点:数据包可能会丢失

小结:正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。本回答被网友采纳

UDP和TCP有什么区别
1、连接方面区别 TCP面向连接(如打电话要先拨号建立连接)。UDP是无连接的,即发送数据之前不需要建立连接。2、安全方面的区别 TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。3、传输效率的区别 TCP传输效率相对较低。UDP传输...

简述TCP与UDP之间的相同点和不同点
不同点:1、数据包结构 UDP具有精简包结构。UDP在其标题部分中仅提供源,目标端口,长度,校验和。TCP在包中 有更多字段,因为TCP传输有更多的步骤和控件来进行包传递。TCP有12个头字段。2、复杂程度 TCP绝对比UDP协议更复杂。正如我们在上侧看到的,TCP具有很多传输相关机制的区域。例 如,TCP提供了...

tcp和udp的区别
1、最大的区别就是TCP是面向连接的,而UDP是无连接的。2、TCP是可靠的,安全的;UDP是不可靠的,不安全的,但是传输数据的速率快。3、TCP比UDP更复杂,它具有流量控制和拥塞控制机制。4、TCP面向字节流;UDP是面向报文的。5、TCP对系统资源要求较多,UDP对系统资源要求较少。TCP首部有20个字节,UDP...

简述tcp协议与udp协议的区别有哪些?
定义不同:UDP:用户数据报协议。TCP:传输控制协议 连接方式不同:UDP:无连接 TCP:建立连接 首部长度不同:UDP:8位 TCP:20位 可靠性不同:UDP:不可靠 TCP:全双工通信的的可靠连接协议

tcp和udp协议的区别
TCP(传输控制协议)和UDP(用户数据报协议)主要的区别在于连接的建立方式,数据传输的可靠性和顺序,以及传输速度。1. 连接的建立方式 TCP是一种面向连接的协议,这意味着在数据传输之前,它需要通过“三次握手”过程建立连接。这个过程确保了双方都已准备好进行数据传输。而UDP是无连接的协议,发送数据...

tcp和udp的区别
tcp和udp的区别如下:1、TCP面向连接(如打电话要先拨号建立连接),UDP是无连接的,即发送数据之前不需要建立连接。2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。Tcp通过校验和,重传控制,序号标识,滑动窗口、...

简述TCP协议和UDP协议有什么区别?
tcp 传输控制协议,经过三次握手实现连接。这中间有建立连接-传送数据-释放连接。是面向连接的安全的协议。udp 用户数据报协议。是面向无连接的不安全的协议。适用于少量数据的传输。只把数据发送出去,不考虑对方时候接受和接受是否正确。在针对少量数据传输的时候,要比tcp快,而且实用 ...

tcp和udp协议的区别
TCP(传输控制协议)和UDP(用户数据报协议)在网络通信中扮演着不同的角色,它们的主要差异体现在连接模型、数据传输的可靠性以及传输速度上。1. 连接模型 TCP是一种面向连接的协议,它通过一个称为“三次握手”的过程来建立连接。这一过程确保了数据传输的双向通道已经准备就绪。相反,UDP是一种无连接...

tcpudp区别是什么
tcpudp区别如下:1、连接方面,TCP面向连接,而UDP是无连接的,即发送数据之前不需要建立连接。2、安全方面,TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP会提供服务,但没有TCP可靠。3、传输效率,TCP传输效率相对较低,而UDP传输效率高,适用于对高速传输和实时...

udp和tcp有什么区别
一、TCP与UDP是计算机网络中两种主要的传输层协议。它们的区别主要体现在以下几个方面:1. 连接方式不同 TCP是面向连接的协议。在数据发送前,TCP会在客户端和服务器之间建立一个连接,保证数据传输的可靠性和顺序性。而UDP则是无连接的协议,发送数据前不需要建立连接,每个数据包都是独立的,可能会...

相似回答