TCP与UDP的区别

前言

TCP协议:TCP协议是传输控制协议,它是面向连接的可靠传输层协议,在传输数据之前必须建立连接

UDP协议:UDP协议是用户数据报协议,它是无连接的不可靠传输层协议,在传输数据之前不需要建立连接

区别

TCP协议

UDP协议
面向连接无连接
可靠不可靠
只支持点对点

支持一对一、一对多、

多对一和多对多的交互通信

字节流形式传输数据报文段形式传输
具备流量控制、拥塞控制等功能不使用拥塞控制
所需资源较多所需资shubu
首部字节最小为20字节最多为60字节协议首部字节为8字节

TCP协议是面向连接的,而UDP协议是无连接的

        TCP协议面向连接体现在,在数据传输之前必须要通过“三次握手”与服务器建立连接,而UDP是无连接的,随时都可以发送数据。

TCP协议是传输可靠的,UDP协议是传输不可靠的

        TCP的可靠性是体现在,在数据传输的过程中,TCP协议将数据分出若干报文段来进行传输,而当出现网络延迟、网络情况复杂等特殊情况时,出现丢包情况,TCP协议会在网络恢复时,将丢包重新进行发送,而UDP协议不考虑传输的数据是否准确,因从TCP协议是可靠传输,而UDP协议是不可靠传输。

TCP协议是以字节流形式传输的,UDP协议是以数据报文段形式传输的

        TCP协议是把引用层传下来的报文看作是字节流,把字节流组织成大小不等的报文段,而UDP协议是面向报文传输

TCP传输效率较低,而UDP传输效率较高

        TCP协议由于要保证数据的可靠性传输,因此在底层代码处理中要比UDP协议复杂的多,所以“以效率换安全”,因此TCP协议相对与UDP协议传输效率较低

TCP协议所需资源较多,UDP所需资源较少

        正如分析TCP效率低一样,在维护TCP协议数据传输的可靠性这一方面,底层采用多种方式进行控制可靠性,例如:重传机制、滑动窗口、检验和、序列号等多种方式,因此TCP协议是所需资源较多的,而UDP协议是不保证可靠的,因此所需资源较少

TCP首部字节最小为20字节最多为60字节,UDP协议首部字节为8字节

        在TCP首部中有一个数据偏移,该数据偏移是四字节,最大是1111表示15×4=60个字节,即表示TCP首部最大长度为60个字节,UDP的首部开销较小,只有8字节

TCP协议使用场景要求通信数据可靠,UDP协议要求通信速度快

        TCP协议:文件传输、邮件传输等

        UDP协议:音频、视频通话、直播等

在Socket编程中,TCPUDP是两种不同的传输协议。TCP(Transmission Control Protocol)是一种面向连接的协议,而UDP(User Datagram Protocol)是一种无连接的协议。它们在以下几个方面有所不同: 1. 连接性:TCP是面向连接的,它在通信之前需要先建立连接,然后在可靠的双向通信中保持这个连接。UDP是无连接的,每个数据包都是独立的,发送者和接收者之间没有建立连接的过程。 2. 可靠性:TCP提供可靠的数据传输,它使用确认和重传机制来确保数据的准确性和完整性。UDP不保证数据的可靠性,因此在传输过程中可能会丢失数据包。 3. 速度和效率:由于TCP提供的可靠性和连接管理的机制,它的速度相对较慢,而UDP不需要连接建立和维护的开销,因此速度更快。 4. 应用场景:TCP适用于需要可靠传输和顺序传输的应用,例如文件传输,电子邮件等。UDP适用于实时应用,例如音频和视频流,游戏等,对于这些应用来说,速度和实时性更为重要,而可靠性可以通过应用层来处理。 总结起来,TCP提供了可靠的、面向连接的传输,适用于重要数据的传输,而UDP提供了快速的、无连接的传输,适用于实时性要求较高的应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Scoket编程基础 -- TCPUDP 的 简介及其区别](https://blog.csdn.net/Czhenya/article/details/78299152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [TCPUDP 在socket编程中的区别(转载)](https://blog.csdn.net/LIN943168247/article/details/120264124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾远望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值