TCP和UDP区别
TCP ----稳定
1、提供面向连接的,可靠的数据传输服务;
2、传输过程中,数据无误、数据无丢失、数据无失序、数据无重复;
3、数据传输效率低,耗费资源多;
4、数据收发是不同步的;
UDP —快速
1、面向无连接的,不保证数据可靠的,尽最大努力传输的协议;
2、数据传输过程中,可能出现数据丢失、重复、失序的现象;
3、数据传输效率高、实时性高;
4、限制每次传输的数据大小,多出部分直接忽略删除;
5、收发是同步的,不会沾包。
三次握手(TCP连接的建立):
-
客户端向服务器发送连接请求:
- 客户端发送一个带有SYN(同步)标志位的TCP报文,指定初始序列号(ISN)。
-
服务器接收连接请求并回应:
- 服务器收到客户端的SYN报文后,会发送一个带有SYN和ACK(确认)标志位的报文,也指定自己的初始序列号。
-
客户端确认连接:
- 客户端收到服务器的响应后,发送一个带有ACK标志位的报文,确认连接建立。
- 此时,TCP连接已经建立,双方可以开始进行数据传输。
四次挥手(TCP连接的关闭):
-
发起关闭请求:
- 一方(通常是客户端)发送一个带有FIN(结束)标志位的TCP报文,表示数据发送完毕,准备关闭连接。
-
对关闭请求的确认:
- 接收到关闭请求的一方(通常是服务器)发送一个带有ACK标志位的报文,确认收到关闭请求。
- 此时,该方仍可以向对方发送数据。
-
发起关闭请求的确认和发起自己的关闭请求:
- 接收到确认的一方(通常是服务器),一旦数据发送完毕,也发送一个带有FIN标志位的报文,表示自己准备关闭连接。
-
最终确认:
- 对方收到最后的FIN报文后,发送一个带有ACK标志位的报文,确认关闭请求。
- 此时,TCP连接彻底关闭,双方均不能再发送数据。
这四个步骤保证了数据的完整性和正确性,确保在关闭连接时,双方都有足够的时间完成未传输完的数据的发送。这是为了避免数据的丢失或不完整。