TCP和UDP的区别,为什么三次握手四次挥手
| 区别 | TCP | UDP |
|---|---|---|
| 是否面向连接 | 面向连接 | 无连接 |
| 是否提供可靠服务 | TCP使用超时重连、流量控制(滑动窗口)和拥塞控制保证可靠传输 | 不可靠传输 |
| 连接对象个数 | 只提供一对一点对点通信 | 可进行一对一、一对多、多对一和多对多通信 |
| 首部开销 | 首部开销大,最小20字节,最大60字节 | 首部开销小,仅8字节 |
| 传输方式 | 字节流 | 报文 |
| 适用场景 | 需要提供可靠通信的应用,例如文件传输 | 适用于实时应用,例如语音通话、直播等 |
因为当Server端接收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文使用来应答的,SYN报文是用来同步的。当关闭连接时,当Server端接受到FIN报文时,很可能并不会立刻关闭SOCKET,所以只是先回复一个ACK报文,告知Client端,Client发送的FIN报文已经接收。只有等Server端所有的报文都发送完了,才会发送FIN报文,所以不能同时发送ACK+FIN报文,故需要四次挥手