TCP和UDP的区别是什么

一.TCP

1.tcp的了解
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。相当于打电话 
2. tcp的优缺点
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而
           且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开
           连接用来节约系统资源。
TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会
           消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大
           量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用
           系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些
           也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

二.UDP

1.udp的了解
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 相当于发短息
2. udp的优缺点
UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP
 	   是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP
 	   较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP
 	    Flood攻击等。
 	
UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量
           不好,就会很容易丢包。 基于上面的优缺点,

三.区别

1.TCP面向连接(如打电话要先拨号建立连接);
  UDP是无连接的,即发送数据之前不需要建立连接
2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5.TCP对系统资源要求较多,UDP对系统资源要求较少。

  通俗的说,他们的关系可以类比为打电话和发短信。两个人如果要通话,首先要建立连接,即
  打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接,即挂电话。
发短息就比较简单了,编辑好短信,选择好收件人,选择发送即可。从这个分析可以看出,建立
连接可以在需要通信的双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后
,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地
收到发送方发出的信息,即信息传递的可靠性比较高。但也正因为需要建立连接,使资源开销加
大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发
出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第
三方不能打入电话。而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是
一次性的传递,是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,
就像发短息一样,我们只是将短息发出去,却不能保证收件人一定可以收到。

四.应用场景

使用TCP: 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往
          用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP
          等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的
          HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH
           QQ文件传输 
          
使用UDP: 如果一个应用场景中大多是简短的信息,适合用udp实现,因为udp是基于报文段的,它直接对上层
         应用的数据封装成报文段,然后丢在网络中,如果信息量太大,会在链路层中被分片,影响传输效率。
         简单概括,当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用
         UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ聊天,TFTP ,等等。

猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/83341604
今日推荐