TCP 和 UDP 的区别

TCP 和 UDP 的区别

    TCP 和 UDP 协议是属于 OSI 模型中的传输层协议。
    TCP 提供 IP 环境下的数据可靠传输,它具有有效流控、全双工操作、多路复以及端到端和可靠的数据包发送。UDP 提供面向事务的简单不可靠信息传送服务.对可靠性要求低、传输经济的应用。

TCP

    TCP 是基于连接的协议,也就是在正式收发数据前,必须和对方建立可靠的连接(在通信的两端各建立一个Socket),两端之间就形成网络虚拟链路,那么就可以通过虚拟链路进行通信。一个 TCP 连接必须要经过三次“握手”才能建立起来。三次“握手”的目的是使数据包的发送和接收同步,经过三次“握手”之后,双方才正式发送数据。TCP 支持的应用协议主要有:Telnet、FTP、SMTP。

TCP 优点:
    1、TCP 传送的信息包是按次序存放好再进行传送的,接送端收到后再将其进行正确的还原。
    2、TCP 为了保证数据包的传输无误,接收端收到包后会给发送端一个反馈。
    3、TCP 的重发机制。超过一定时间还没收到接收端的反馈就自动执行超时重发。(这种重发机制为应用程序的通信提供可靠的连接。)

TCP 缺点:
1、慢(建立连接、确认与重发机制等都会消耗大量的时间)
2、占用系统资源高(每个连接都会占用 CPU、内存等硬件的资源)
3、效率低。

UDP

    UDP 提供无连接通信,不对传送数据包进行可靠性保证。适合于一次传输少量数据。然而 UDP 是使用报头中的校验值来保证数据的安全。
    UDP 是无连接的,是一个简单的面向数据报的运输层协议。它不对传送数据包进行可靠性保证,只是把应用程序传给IP层的数据报发送出去,而且并不能保证数据报能到达目的地。由于UDP在传输数据报时没有像 TCP 在客户和服务器之间建立一个连接,也没有超时重发等机制,所以 UDP 的传输速度很快。UDP 支持的应用协议主要有:NFS、SNMP、DNS、TFTP。

UDP 优点:
1、UDP 无需连接,直接发送,且 UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高。
2、UDP 由于没有 TCP 的那些机制,所以被攻击者利用的扣动要少一些。
3、UDP 对握手过程进行精简,减少网络通信往返次数。
4、UDP 对 TLS 加解密过程进行优化。

UDP 缺点:
可靠性无法保证(UDP 没有 TCP 那些可靠的机制,故在网络质量不好时很容易丢包。)

根据 TCP 与 UDP 的优缺点我们来说一下两者的区别。

⊙ TCP 支持的应用协议主要有:Telnet (远程登录)、FTP (文件传输协议)、SMTP (简单网络管理协议)。

   UDP 支持的应用协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)。

⊙ TCP 面向连接、传输可靠(保证数据顺序以及正确性)、主要用于传输数据量大,可靠性要求高的应用、速度慢,建立连接需要开销较多(时间,系统资源)。

   UDP 面向非连接、传输不可靠、速度快、主要用于那些对高速传输和实时性有较高要求的通信或广播通信(尽可能提高传输效率)。

⊙ TCP 设计过于冗余,速度难以进一步提升

   UDP 协议以其简单、传输快的优势

速度:UDP > TCP
安全:TCP > UDP

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值