网络原理--TCP/IP(2)
我们在之前已经介绍到TCP协议的核心机制二,接下来我们将继续介绍其他的核心机制。
核心机制三:连接管理
即建立连接,断开连接,在正常情况下,TCP要经过三次握⼿建⽴连接,四次挥⼿断开连接。
建立连接:TCP是通过“三次握手”
在生活中的握手就是打招呼,,但握手操作没有实际的业务,只是打个“打个招呼”,我发送一个不携带业务的数据,通过这个数据和对方“打招呼”,像HTTPS、获取证书、验证证书,加密对称密钥、传输对称密钥等就是SSL协议的“握手流程”。
具体流程:
A给B发送同步报文段sync(synchronizd),在TCP中的同步,指的是数据上的同步,A告诉B,接下来我要和你建立连接,就需要你把我的关键信息保存好,同时你也把你的信息发送给我,然后B会给A返回一个ack和syn,然后A再返回一个ack.即各自让对方保存一下自己的关键信息,并各自给对方返回一个ack,告知自己收到了。
客户端和服务器在同一个场景下可以扮演不同的角色,主动发起syn的一方是客户端;在网络传输中,是要能够进行“封装和分用”的,且合并操作,是能够提高传输的效率。
注:syn这一位为1,表示同步报文.
三次握手原理:
第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;
第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;
第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。
其中:SYN标志位数置1,表示建立TCP连接;ACK标志表示验证字段。
详细过程:
第一次握手:客户端发送一个SYN报文段,表示希望建立连接。该报文段包含一个随机生成的初始序列号(Seq=x),用于标识数据传输的起点。此时,客户端进入SYN_SENT状态。
第二次握手:服务器收到SYN报文段后,发送一个SYN-ACK报文段作为响应。该报文段包含一个随机生成的序列号(Seq=y)以及对客户端序列号的确认(Ack=x+1)。服务器此时进入SYN_RCVD状态,等待客户端的确认。
第三次握手:客户端收到SYN-ACK报文段后,发送一个ACK报文段作为确认。该报文段包含对服务器序列号的确认(Ack=y+1)。此时,客户端进入ESTABLISHED状态,表示连接已建立。服