TCP 和 UDP

TCP(Transmission Control Protocol,传输控制协议)

是面向连接的协议,即在收发数据前,必须和对方建立可靠的连接,TCP的头部为20个字节。

UDP(User Datagram Protocol,用户数据报协议)

是一个面向无连接的协议,它以数据报(Datagram)的形式传输数据。在传输数据之前,源端和终端不需要建立连接,UDP的信息头部为8个字节,UDP使用 "尽最大努力交付" 的方式,导致了UDP不保证可靠交付。

区别

两种常用的传输层协议,在网络通信中有以下区别:

1. 连接性:

- TCP是面向连接的协议,通信双方在发送和接收数据之前需要先建立连接,并在连接的双方保持状态信息。

- UDP是面向无连接的协议,发送数据时不需要事先建立连接。每个数据包(称为数据报)都是独立的,相互之间没有依赖关系。

2. 数据传输方式:

- TCP提供面向字节流的传输方式,将数据分割成适当的大小并按顺序传输。数据以字节流的形式在网络上传输,保证数据的有序性。

- UDP以数据报(Datagram)的形式传输数据,每个数据报都有自己的标识和长度信息,可以独立地传输。每个数据报都是独立的,可能会被路由器拆分或重新组装。

3. 可靠性:

- TCP提供可靠的数据传输,通过序号、确认、重传、拥塞控制等机制来保证数据的完整性和有序性,但在网络拥塞时可能会产生延迟。

- UDP不提供数据的可靠传输,数据报可能会丢失或乱序。UDP适用于对实时性要求较高的应用,如音频、视频等,因为它能够更快速地传输数据。

4. 使用场景:

- TCP适用于需要可靠传输、数据顺序和错误校验的应用,如网页浏览、文件传输、电子邮件等。

- UDP适用于对实时性要求较高、数据传输速率高以及容忍少量数据丢失的应用,如视频流、语音通话、实时游戏等。

TCP可靠性机制

1. TCP是面向连接的协议,建立连接后发送和接收数据。UDP是无连接的协议,发送数据时不需要建立连接。

2. TCP提供可靠的数据传输,采用序列号、确认应答、重传和流量控制等机制来保证数据的完整性和顺序。UDP不提供可靠性保证,不进行序列号和重传,适用于实时性要求高的应用。

3. TCP使用滑动窗口协议进行流量控制,限制发送速率,防止数据丢失。TCP还有超时重传和拥塞控制机制来应对网络不稳定和拥塞。

4. UDP没有流量控制和拥塞控制机制,因此传输速度快,延迟较低,但无法保证可靠性。

TCP 报文

TCP 报文是 TCP 传输的的数据单元,也叫 报文段

1. 源端口号和目的端口号:用于标识发送方和接收方的应用进程。

2. 序列号:每个TCP报文段都有一个序列号,用于标识报文段中的数据在字节流中的位置。

3. 确认序列号:接收方发送给发送方的确认报文中包含的序列号,用于告知发送方已成功接收到的数据字节。

4. 标志位:TCP报文中的标志位用于控制连接的建立、维护和关闭,如SYN、ACK、FIN等。

5. 窗口大小:接收方通过通知发送方接收窗口大小来控制发送速率和缓存空间。

6. 校验和:用于检测报文在传输过程中是否发生了错误。

7. 首部长度:TCP首部的长度,用于提供从报文开始到数据开始位置之间的偏移量。

8. 选项:可选的TCP选项,用于提供一些额外的功能和参数设置。

9. 数据:TCP报文段中携带的数据部分。

UCP 报文

1. 源端口号和目的端口号:用于标识发送方和接收方的应用进程。

2. 长度:UDP报文的长度,包括报文头部和数据部分。

3. 校验和:用于检测报文在传输过程中是否发生了错误。

4. 数据:UDP报文中携带的数据部分。

你可能感兴趣的:(tcp/ip,udp)