建立连接(三次握手)
TCP连接的建立:TCP用三次握手过程创建一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
一个完整的三次握手也就是: 请求---应答---再次确认。简述如下:
1.客户端通过向服务器端发送一个SYN来建立一个主动打开,作为三路握手的一部分。
2.服务器端应当为一个合法的SYN回送一个SYN/ACK。
3.最后,客户端再发送一个ACK。这样就完成了三路握手,并进入了连接建立状态。
数据传输
1.发送数据端传输PSH数据包
2.接收数据端回复ACK数据包
在TCP的数据传送状态,很多重要的机制保证了TCP的可靠性和健壮性。它们包括:
- 使用序号,对收到的TCP报文段进行排序以及检测重复的数据;
- 使用校验和来检测报文段的