一、TCP(传输控制协议)
特点:
- TCP是传输层的协议;
- TCP是一种面向连接的,具有可靠性的传输协议;
- TCP面向的是字节流,它把应用层的传下来的报文看成字节流,再把字节流组织成一段一段的报文;
- TCP是点对点的传输,一个端口到另一个端口
- TCP具有"可靠性传输","拥塞控制","流量控制"的功能;
- TCP的首部开销大,有20字节的固定首部(源端口,目的端口,序列号,确认号,数据偏移,保留,控制位,窗口,检验和,紧急指针),还有不固定的选项和填充字段。首部最小为20字节,最大为60字节。因为数据偏移的单位是4字节,最大1111=15,15×4=60!"数据偏移"是数据部分到首部的偏移量,其实也就是首部的长度。
- 为了保证TCP协议的可靠性传输,在建立连接时,需要三次握手才能正式创建连接,释放连接时也需要四次挥手才可以完整释放连接!
- 因为要保证可靠性,所以效率慢,开销大(确认应答,流量控制,超时重传以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源)。
- 适用于文件传输、发送和接收邮件、远程登录等场景。
二、UDP(User Datagram Protocol)?
特点
- UDP面向无连接,不可靠。
- UDP面向的是报文传输。
- 可以一对一,一对多,多对多,多对一的通信。
- 首部开销小,只有8个字节,4个字段(源端口,目的端口,长度,检验和)
- 可以随时发送数据,发送数据之前不用建立连接,所有效率高,性能好,适用于QQ视频通话,直播等场景。不关心丢不丢包。
|