首页 » 运维 » 基本知识 » 正文

图解TCP 的三次握手

TCP

 

 

TCP三次握手的示意图如上

三次握手第一次:

第一次请求是由客户端发起,客户端会发送一个数据包给server端,这个数据包内包含了一个SYN标记和一组序号(seq),序号的用途是为记录客户端到目前为止总共传输了多少个字节的数据给server端,初始值为0,客户端发送出这个数据包后,随即进入SYN_SENT状态

 

三次握手第二次:

服务端接收到这个数据包之后,便会应答客户端一个确认数据包(就是告诉客户端你发的我收到了),这个数据包包含SYN和ACK两个标记,其中ACK标记标识服务端应答给客户端的数据包,并且这个数值为接受到的第一步的seq的数值+1;SYN标记为1;服务端发送出这个应打包以后,会进入:SYN_RECV状态,然后在等待第三次握手(如果这个时候客户端不进行第三次握手,就会导致服务器一直等,如果数量多的话,这就是传说中的syn flooding攻击)

 

三次握手第三次:

客户端在接收到服务器端的应答包以后,客户端会发送一个应打包给服务器端(告诉服务器说服务器的应答包已经收到了)

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)

本文共 1 个回复

Comments are closed.