TCP vs UDP 详解

TCP是一种面向连接、可靠的传输协议,通过三次握手建立连接,四次挥手断开连接,提供确认应答、超时重传等机制保证数据可靠性。UDP则是无连接的,提供高效但不可靠的数据传输,常用于DNS查询、多媒体通信等场景。两者在互联网协议中各有其适用范围。
摘要由CSDN通过智能技术生成

文章目录


一、什么是TCP和UDP

TCP:
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。

 UDP:
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 描述了 UDP。

二、TCP和UDP的区别

 小结:

1.TCP 相比于 UDP 有着更高的传输可靠性,而 UDP 比 TCP 有更高的传输效率

2.TCP面向连接,通过三次握手建立连接,四次挥手接除连接;UDP是无连接的,即发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。

3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,由于连接的问题,当网络出现波动时,连接可能出现响应问题,同时也可能出现粘包问题;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。

4.TCP 是一种可靠传输机制,有确认应答,超时重传,连接管理,滑动窗口,流量控制,拥塞控制,延时应答,捎带应答等机制来确保传输的可靠性,UDP 则不需要连接,虽然速度快,但出现数据丢失等问题的几率会更大一些。

5.每一条TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。

三,什么是三次握手,四次挥手

TCP三次握手:

三次握手是TCP用来确保连接可靠建立的方式:

为了便于理解,我们可以举个例子:

  • 第一次握手: A给B发短信说:“B,你现在有空吗?”
  • 第二次握手: B此时收到了A的信息,然后对A说: “ 我有空,你呢?有空吗? ”
  • 第三次握手: A此时收到了B的确认信息,然后说:“我也有空,那我跟你说个事。”

在三次握手之后,A和B都能确定这么一件事: 双方的通信可以流畅的进行。 这样,双方就可以开始进行正常的对话了。

TCP四次挥手:

四次挥手是TCP用来确保连接可靠关闭的方式:

这个图同样不好理解,我们继续举个例子:

  • 第一次挥手: A给B发短信说:“B,我要准备吃饭了?”

  • 第二次挥手: B此时收到了A的信息,然后先对A说: “ 我知道了。”

  • 第三次挥手: B对A说到: “ 那我也要准备吃饭了。”然后放下了手机。

  • 第四次挥手: A此时收到了B的确认信息,然后向B发一个包说:“好的,我知道了。”这时才放下手机去吃饭。

 在四次挥手之后,A和B都能确定这么一件事: 双方的通信可以正常关闭。 这样,双方就可以确定对方已经完全知晓自己确认要关闭连接。

四、TCP维护着一个可靠的通信方式

确认应答(安全机制):接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认包。

超时重传(安全机制):发送方在发送分片后计时,若超时却没有收到相应的确认包,将会重发对应的分片。

连接管理(安全机制):TCP三次握手,四次挥手。

滑动窗口(效率机制):一次发送多条数据,每接收到一个ACK,就会让窗口滑动,传输下一个数据,以此类推。

流量控制(安全机制):TCP支持根据接收端的处理能力,来决定发送端的发送速度。

拥塞控制(安全机制):TCP引入 慢启动 机制,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据。

延时应答(效率机制):延时发送ACK,使得窗口相比于立即返回ACK增大,提高传输效率。

捎带应答(效率机制):如果服务器的回应延时和ACK的延时时机重合,就可以把两个包合在一起发送,提高传输效率。

五,TCP和UDP的应用场景

UDP应用场景:

  • 包总量较小的通信(DNS、SNMP)
  • 视频、音频等多媒体通信(即时通信)
    QQ就是使用的UDP协议。
  • 广播通信

主要就是效率至上的应用场景

 TCP应用场景:

TCP 使用场景:相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。在对可靠性要求较高的情况下,可以使用 TCP,即不考虑 UDP 的时候,都可以选择 TCP。

特别是需要可靠连接,比如付费、加密数据等等方向都需要依靠TCP

总结

面向连接的TCP与无连接的UDP将是网络协议中不可或缺的重要知识点,要熟练掌握TCP和UDP的区别,并掌握TCP的安全机制和效率机制,TCP的三次握手和四次挥手是面试的常考点,一定要熟练掌握。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值