TCP全称为Transmission Control Protocol(传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道。
TCP建立连接时要传输三个数据包,俗称三次握手(Three-way Handshaking)
三次握手过程:
1.刚开始客户端处于 closed 的状态,服务端处于 listen 状态。
2.第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号, 此时客户端处于 SYN_SENT 状态。
3.第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号,同时会把客户端的 ISN &