UDP和TCP有什么区别
发布网友
发布时间:2022-03-24 22:04
我来回答
共1个回答
热心网友
时间:2022-03-24 23:34
"TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立1个TCP连接,之后才可以传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是1个容易的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,可是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立1个连接,且木有超时重发等机制,故而传输速度很快
目前Internet上流行的协议是TCP/IP协议,该协议中对低于1024的端口都有确切的定义,他们对应着Internet上有些常见的服务。这类常见的服务可以分为用TCP端口(面向连接)和用UDP端口(面向无连接)两种。
说到TCP和UDP,首先要明白“连接”和“无连接”的含义,他们的关系可以用1个形象地比喻来说明,就是打电话和写信。2个人假如要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才可以相互传递信息,最后还要断开连接——即挂电话。写信就比较容易了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。从这个分析可以看出,建立连接可以在要痛心地双方建立1个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,并且是在1个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。但也正由于要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是不是传到及断开连接时发出相应的信号等),独占1个通道,在断开连接钱不能建立另1个连接,即两人在通话过程中第三方不能打入电话。而无连接是一开始就发送信息(严格说来,这是木有开始、结束的),只是一次性的传递,是先不要接受方的响应,因而在一定程度上也没方法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
TCP是面向连接的,有比较高的可靠性,
有些要求比较高的服务一般用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,用这个协议的常见服务有DNS、SNMP、QQ等。对于QQ必须另外说明一下,QQ2003之前是只用UDP协议的,其服务器用8000端口,侦听是不是有信息传来,客户端用4000端口,向外发送信息(这也就不难理解在一般的显IP的QQ版本中显示好友的IP地址信息中端口常为4000或其后续端口的原因了),即QQ程序既接受服务又提供服务,在以后的QQ版本中也支持用TCP协议了。"