Skip to content

Latest commit

 

History

History
109 lines (55 loc) · 5.74 KB

33.udp和tcp.md

File metadata and controls

109 lines (55 loc) · 5.74 KB

UDP与TCP

一.UDP

1.什么是UDP?

UDP(User Datagram Protocol)的中文名称是“用户数据报协议”。

其是一种在计算机网络中广泛使用的通信协议,它是无连接的、简单的面向数据报的协议。

UDP协议主要用于实时数据传输和简单的网络通信,它不提供像TCP那样的可靠性和连接管理,但在一些特定场景下非常有用,特别是对于需要低延迟和快速数据传输的应用程序。

2.UDP协议的特点

无连接性: UDP通信不需要建立连接。每个UDP数据包都是独立的,发送方将数据包发送到目标地址,而无需在传输之前建立连接。

无可靠性: UDP不提供数据包的可靠传输。数据包被发送后,发送方不会接收到确认消息,也不会进行数据包重传。这意味着在不可靠的网络环境中,数据包可能会丢失或乱序。

轻量级: 由于不需要建立连接或维护状态信息,UDP协议非常轻量级,适用于需要快速传输数据的应用程序。

无流控制: UDP不提供流控制机制,因此发送方可以以任何速率发送数据包,而不受接收方的限制。这也可能导致数据包丢失,因为接收方可能无法及时处理所有数据包。

适用性: UDP适用于实时应用程序,如音频和视频流传输、在线游戏、DNS查询等,这些应用程序更注重低延迟,而不太关心数据的丢失。UDP还用于一些广播和多播通信。

数据包结构: UDP数据包包括源端口、目标端口、数据长度和数据部分。UDP头部相对较小,通常只有8字节。

3.UDP通信模型

udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,"写信"

udp模型

二.TCP

1.什么是TCP?

TCP(Transmission Control Protocol)的中文名称是“传输控制协议”。

它是一种面向连接、可靠的、面向字节流的通信协议,用于在计算机网络上进行数据传输。

2.TCP协议的特点

可靠性: TCP提供可靠的数据传输。它使用序号、确认和重传机制来确保数据的完整性和正确性。如果一个数据包在传输过程中丢失或损坏,TCP会负责重新传输,直到接收方确认收到正确的数据。

面向连接: TCP是一种面向连接的协议,通信的双方必须在通信开始前建立连接。这种连接是持久的,数据传输完毕后需要明确关闭连接。

流控制: TCP提供流控制机制,以防止发送方发送过多的数据,导致接收方无法及时处理。流控制使用滑动窗口机制来动态调整数据传输的速率,确保发送和接收的速度匹配。

拥塞控制: TCP具有拥塞控制机制,它可以根据网络拥塞的情况来动态调整数据传输速率,以避免网络拥塞,从而保持网络的稳定性和公平性。

面向字节流: TCP将数据视为字节流进行传输,而不是离散的数据包。这意味着发送的数据将被分割成小的数据段,然后在接收端重新组装,保持了数据的有序性。

双向通信: TCP支持双向通信,允许通信的双方同时发送和接收数据。连接是全双工的,可以在同一时间进行双向数据传输。

可靠的错误检测和纠正: TCP使用校验和和确认机制来检测和纠正数据传输中的错误,确保数据的完整性。

有序传输: TCP保证数据包的有序传输,即使数据包在传输过程中到达的顺序与发送顺序不同,接收端也会将它们按正确的顺序重新组装。

3.TCP通信模型

tcp通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话""

tcp模型

三.UDP和TCP的不同

连接性

UDP: 无连接。UDP是无连接的协议,通信双方不需要建立连接,每个数据包都是独立的。

TCP: 面向连接。TCP是面向连接的协议,通信双方在通信前必须建立连接,然后才能进行数据传输。

可靠性

UDP: 不提供可靠性。UDP不保证数据的可靠传输,数据包可能会丢失、重复或乱序。

TCP: 提供可靠性。TCP使用序号、确认和重传机制来确保数据的可靠传输,确保数据的完整性和正确性。

流控制和拥塞控制

UDP: 不提供流控制和拥塞控制。UDP发送方可以以任何速率发送数据,不会受到接收方的限制。

TCP: 提供流控制和拥塞控制。TCP使用滑动窗口和拥塞控制机制来调整数据传输的速率,以避免网络拥塞。

有序传输

UDP: 不保证数据包的有序传输,数据包可能以不同的顺序到达。

TCP: 保证数据包的有序传输,数据包按正确的顺序重新组装。

头部开销

UDP: UDP头部相对较小,通常只有8字节。

TCP: TCP头部相对较大,通常包含20字节的固定头部,可以进一步增加。

适用场景

UDP: 适用于实时应用,如音频和视频流传输、在线游戏、DNS查询等,对延迟要求高,可以容忍一定的数据丢失。

TCP: 适用于需要可靠性、完整性和顺序传输的应用,如Web浏览器、电子邮件传输、文件传输等。

连接管理

UDP: 无连接管理,不涉及连接的建立和维护。

TCP: 需要建立连接,并维护连接状态,包括连接的建立、终止和状态管理。

总之,UDP和TCP是两种用于在计算机网络中进行数据传输的不同协议。UDP适用于对延迟要求较高且可以容忍一定的数据丢失的应用,而TCP适用于对数据可靠性和完整性要求较高的应用。选择使用哪种协议取决于应用的需求和性能特点。