一、传输控制协议TCP
简介:传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接。
tcp报文格式:
其中报文格式中的标志位说明:
- URG:紧急指针
- ACK:确认序号
- PSH:有DATA数据传输
- RST:连接重置
- SYN:建立连接
- FIN:关闭连接
二、TCP握手挥手机制
三次握手过程:其目的不是为了打通网络连接,而是在正式使用之前,先要检测网络是否通畅。
流程图如下:
其总体流程为:首先客户端发送一次请求到服务器,询问服务端是否可以建立连接; 服务端在收到请求后,针对这次请求,返回确认应答消息;客户端收到服务端的应答后,就与服务端建立连接,可以通信。
四次挥手过程:挥手就是保证连接安全断开。
流程图如下:
其总体流程如下:首先客户端发送请求,通知服务端进行请求关闭;服务端接口请求后,先将自身设置成半关闭状态,通知到客户端;此时客户端接到通知后,就不能在发送请求给到服务端,并且这个过程中,可能还有未传输完的数据;所以过一段时间后,服务端会再次发送一个通知给到客户端,表示请求数据全部完成,可以断开连接;客户端收到请求后,再通知到服务端,连接可以管端,关闭连接。
三、用户数据报协议UDP
简介:是Internet传输层协议。提供无连接、不可靠、数据报尽力传输服务。
数据报文格式如下:
使用udp的好处:
- 应用进程更容易控制发送什么数据以及何时发送。
- 无需建立连接
- 无连接状态
- 首部开销小
应用场景:先udp协议多用于物联网设备心跳上报,网络直播、视频传输等。
四、tcp与udp的比较
TCP | UDP |
面向连接 | 无连接 |
提供可靠性保证 | 不可靠 |
慢 | 快 |
资源占用多 | 资源占用少 |