UDP相当于写信,我只管写信,写好地址后就投递出去,不管对面收到不收到。
TCP相当于打电话,A先拨打,B表实接到电话,A知道拨通后开始给B说话。
TCP
TCP是一种面向连接的,可靠的基于字节流的运输层的通信协议。
特点:
*面向连接
*点到点的通信
*高可靠
*占用系统资源多,效率低。
三次握手
三次握手是发生在建立连接的时候,大致过程是这样的。首先由客户端发起请求,然后服务端对请求进行响应,最后客户端再告知收到响应。具体的过程列在了下面。
-
>
客户端
发送带SYN
标志的数据包给对方,告知需要建立连接; -
>
服务端
收到后,回传一个带有SYN/ACK
标志的数据包,告知收到建立连接请求; -
>
客户端
回传一个带有ACK
标志的数据包,代表握手结束并且建立TCP连接。
四次挥手
四次挥手则是在断开连接的时候,过程如下。
-
>
客户端
发送带FIN
标志的数据包给对方,告知需要断开连接; -
>
服务端
收到后,回传一个带有ACK
标志的数据包,告知收到断开连接请求; -
>
服务端
再次回传一个带有FIN
标志的数据包,告知同意断开连接请求; -
>
客户端
回传一个带有ACK
标志的数据包,代表挥手结束并且断开TCP连接。
UDP
UDP是一种无连接的传输层协议,提供面向事务的见到那不可靠信息传送服务。
特点:
*非面向连接
*发送不管对方是否准备好,接收方都到也不确认
*可以广播发送
*非常简单的协议,开销小。
UDP没有类似TCP的三次握手机制,而是直接把数据发送出去。因此传输不具备可靠性。但是在网络极差的时候,凭借其不需要三次握手和四次挥手特性,却能高效的把数据传输出去。
-
传输协议
- TCP - Transmission Control Protocol - 传输控制协议
- UDP - User Datagram Protocol - 用户数据协议
-
握手状态
- SYN - synchronous - 建立连接
- ACK - acknowledgement - 确认收到