TCP/UDP区别
TCP是一个面向连接的、可靠的、基于字节流的传输层协议。
UDP是一个面向无连接的传输层协议
和 UDP 相比,TCP 有三大核心特性:
- 面向连接。所谓的连接,指的是客户端和服务器的连接,在双方互相通信之前,TCP 需要三次握手建立连接,而 UDP 没有相应建立连接的过程。
- 可靠性。TCP 花了非常多的功夫保证连接的可靠,这个可靠性体现在哪些方面呢?一个是有状态,另一个是可控制。
- 面向字节流。UDP 的数据传输是基于数据报的,这是因为仅仅只是继承了 IP 层的特性,而 TCP 为了维护状态,将一个个 IP 包变成了字节流。
可靠性之有状态:
TCP 会精准记录数据的发送情况,已发送数据的接收情况,而且保证数据包按序到达,不允许半点差错。这是有状态。
可靠性之可控制:
当意识到丢包了或者网络环境不佳,TCP 会根据具体情况调整自己的行为,控制自己的发送速度或者重发. 这是可控制。(流量控制、超时重传控制)
所以, TCP特点:

三次握手

为什么要三次握手?
防止服务器端因接收了早已失效的连接请求报文,从而一直等待客户端请求,最终导致形成死锁、浪费资源
SYN洪泛攻击

