TCP/UDP 的特点、区别及优缺点

1.TCP协议

        传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过建立连接、数据确认(编段号和确认号)和数据重传等机制,保证了数据的可靠性和顺序性。另外,TCP 还提供三次握手协议、拥塞控制机制,有助于流量控制、错误控制和拥塞控制,这使得TCP高度可靠。TCP适合传输对数据完整性和稳定性要求较高的数据。 常见协议有HTTP、HTTPS、FTP、SMTP。

TCP 四元组可以唯一的确定一个连接,四元组包括如下:

  • 源地址IP(32位,IP头部
  • 源端口16位,TCP头部
  • 目的地址IP32位,IP头部
  • 目的端口16位,TCP头部

1.1 功能

  • 寻址/多路复TCP 端口决定了更高层的应用程序进程。较高层主要多路复用从各个进程接收的数据。此外,它在底层网络层协议的帮助下发送多路复用数据。
  • 建立、管理和终止连接不同网络上想要通信的设备必须遵循一组过程来设置它们之间的连接。通过这种连接,数据可以从一台设备传输到另一台设备。TCP 协议进一步管理已建立的连接。通信完成后,协议将终止此连接。
  • 处理和包装数据TCP 协议从更高层接收数据并将其打包到消息中,以进一步将其发送到目标 TCP 软件。驻留在接收端的软件解包数据并将其提供给目标计算机上的应用程序。
  • 传输数据打包的数据按照分层原则传输到其他设备上运行的 TCP 进程。
  • 提供可靠性和传输质量服务TCP 提供的服务允许应用程序将协议视为传输数据的可靠媒介。
  • 提供流量控制和拥塞避免功能该协议控制两个设备之间的数据流并处理拥塞。

1.2 特点

  • 面向连接。TCP 要求在通信前先建立连接,并在通信结束后关闭连接。建立连接的方法是“三次握手”,关闭连接的方法是“四次挥手”,这种连接方式提供了可靠的通信机制,保证了数据传输的可靠性。
  • 可靠传输。TCP 通过数据确认(编段号和确认号)和重传机制来保证数据传输的可靠性。当接收方收到数据包后,它会向发送方发送一个确认ACK信号。如果发送方在合理的往返时延/往返时长(RTT,Round-Trip Time)内未收到确认信号,发送方会重传数据包。这种机制确保了数据无丢失、无重复和无损坏。
  • 顺序控制。TCP 使用序列号对数据包进行标识,以便接收方按正确顺序重新组合数据流。TCP为了保证报文传输的可靠性,会给每个报文添加一个编段号,编段号保证了接收方按序接收组合数据。当接收方接收到数据包后,它会向发送方发送一个对应的确认号,告知发送发已收到这段报文。如果接收到的数据包序列号不正确,接收方将通知发送方重新发送数据包。
  • 流量控制。TCP 使用滑动窗口机制进行流量控制。发送方窗口的大小决定了它可以同时发送的数据量,接收方窗口的大小决定了它可以同时接收的数据量。通过调整发送方的发送速率,以适应接收方的接收效率,防止接收方缓冲区(Receive Buffer)溢出,这种机制可以避免网络拥塞并确保通信的稳定性。TCP有接收缓冲区和发送缓冲区,都是环形队列。
  • 拥塞控制。TCP 通过拥塞控制机制来防止网络拥塞。当网络出现拥塞时,TCP会通过降低发送速率来减轻网络负担,从而缓解拥塞,保持整体网络的稳定性。它使用一系列算法(如慢启动、拥塞避免、快重传和快恢复)来动态地调整发送速率,以避免网络拥塞并确保通信质量。
  • 点对点连接。每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。
  • 面向字节流。TCP 是面向字节流的协议,不像UDP那样每个报文单独传输,而是在不保留报文边界的情况下以字节流的方式进行传输。发送方将数据划分为小的数据块,接收方接收到数据后再根据需要重组这些数据块。所谓字节流指的是以传输过程中流入进程和流出进程的字节序列,虽然传输过程中是一个一个数据报,但这只是为了方便传输,接收方接收到数据后会重新装配这些数据。   
  • 全双工通信。TCP 支持全双工通信,允许双方在连接建立后可同时发送和接收数据。TCP 连接的两端都设有发送缓存和接受缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)。

1.3 优缺点

优点:

  • 面向连接,稳定性强、可靠性高、顺序性强
  • 流量控制和拥塞控制,避免接收方过载和网络拥塞;

缺点:

  • 传输速度慢、效率低。TCP在传输数据之前,需要进行三次握手建立连接,传输完成后还要进行四次挥手断开连接,因此传输速度相对较慢。而且在传输过程中,还要考虑确认机制,重传机制和拥塞机制等,这都会消耗一定时间,使得传输效率略低,所以TCP不适用于实时性要求高的场景;
  • 只能点对点通信,不支持多播和广播;
  • 占用系统资源高。传输过程中,TCP协议需要维护连接状态和传输控制信息,会消耗部分系统资源;
  • 易被攻击。因为TCP有确认机制、三次握手机制,这些也导致TCP容易被利用,实现DOS、DDOS、CC等攻击;
  • 不适合大规模数据传输。TCP协议在传输大规模数据时,容易导致网络拥塞和数据丢失。

1.4 适用场景

        适用于对数据传输可靠性要求较高的场景,如网页浏览、文件传输、收发邮件、远程登录、数据库访问等。

2.UDP协议

        用户数据报协议(UDP,User Datagram Protocol)是 TCP/IP 模型传输层的无连接协议,提供面向事务的简单而不可靠信息传送服务。它只是一个包装器协议,便于给应用程序提供一种无需建立连接就可以发送封装的 IP 数据包的方法。它既不建立连接,也不检查目标计算机是否已准备好接收,只负责将数据发送给目标计算机,UDP能传输的数据报最大是64K(包含UDP首部)。所以UDP既不保证数据的传递(可能会丢包),也不重传丢失的数据包,相对不太可靠,但是,与TCP相比,它传输数据的速度更快,常用于传输音频、视频、多媒体数据流等数据,常用于音频和多媒体应用。常见协议有NTP、DHCP、TFTP、DNS。

2.1 特点

  • 面向无连接。UDP 协议在通信之前不需要建立连接,也不需要维护连接(发送结束时没有连接可释放),数据报直接发送给目标主机,并且不会对数据报文进行任何拆分和拼接操作,从而降低了通信的延迟;
  • 不可靠传输。UDP 协议不保证数据传输的可靠性、完整性和顺序性,也不提供重传机制,数据报在传输过程中可能会丢失、重复、乱序等,容易导致网络拥塞;
  • 支持多播和广播。UDP协议不仅支持一对一的传输方式,还支持将数据报同时发送给多个主机,可以用于多播和广播。
  • 面向报文。UDP 协议对应用程序传递给它的数据既不合并,也不拆分,而是保留这些报文的边界,将每条数据封装成独立的数据报进行传输,每个数据报都是独立的实体,不会进行拆分和重组。
  • 快速高效。UDP 协议相对简单,头部开销小(仅8个字节),没有建立连接和维护连接的开销,UDP会尽最大努力去传输和接受数据,传输效率较高。

2.2 优缺点

优点:

  • 传输速度快、实时性高。由于UPD无需建立连接,且不提供可靠性保证,所以UDP传输速度相对较快;
  • 漏洞少,相对安全;
  • 开销小。UDP不需要维护连接状态和数据确认,占用较少的网络资源。

缺点:

  • 传输不可靠、稳定性差;
  • 顺序性差。

2.3 适用场景

        由于UDP协议的简单性,开销相对较小,传输效率较高,所以常应用于一些对数据传输的实时性要求较高,但对数据完整性要求不太严格的场景。如实时通信(音频、视频会议/通话和实时游戏)、流媒体(音频、视频实时播放)、DNS解析、多播和广播。

3.TCP&UDP的区别

TCPUDP
连接方式面向连接无连接
传输方式面向字节流传输面向报文传输
传输效率速度相对略慢、效率略低快速
传输可靠性可靠传输不可靠传输
连接数量只能一对一通信支持一对一、一对多、多对一和多对多交互通信
报文大小首部最小20字节,最大60字节首部开销小,仅8字节
数据顺序保证有序不保证有序
流量控制
拥塞控制
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP(传输控制协议)和UDP(用户数据报协议)都是网络传输层协议,用于在计算机网络中传输数据。它们之间的区别如下: 1. 连接性:TCP是面向连接的协议,需要在数据传输之前建立连接,而UDP是无连接的协议,不需要建立连接。 2. 可靠性:TCP提供可靠的数据传输,保证数据的有序性、完整性和可靠性,而UDP不保证数据传输的可靠性,因为它不提供数据重传、丢失数据包重传等机制。 3. 数据传输量:TCP传输数据量较大,适合传输文件等大型数据;UDP传输数据量较小,适合传输实时数据等小型数据。 4. 延迟:TCP的传输延迟较大,因为它需要建立连接、保证数据可靠性等;UDP的传输延迟较小,因为它不需要建立连接和保证数据可靠性。 优劣方面: TCP优点是可靠性高,适用于需要保证数据传输完整性的场景,如文件传输、网页浏览等。但TCP的缺点是传输速度较慢,因为它需要进行连接的建立和维护、数据重传等机制,同时TCP的头部较大,会占用一定的带宽。 UDP优点是传输速度快,适用于需要实时传输的场景,如视频流、语音通话等。但UDP的缺点是可靠性低,容易出现数据丢失、乱序等问题。 发展前景: TCPUDP都是网络传输基础协议,随着互联网的发展和应用场景的不断扩大,它们的应用也会越来越广泛。目前,随着4K、8K高清视频等大型数据的传输需求不断增加,TCP协议的传输速度也在不断提高,同时UDP协议的可靠性和安全性也在不断改进。因此,TCPUDP协议都有着广阔的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值