协议中的三次握手

第一次握手:客户端要向服务端发起连接请求,首先客户端随机生成一个起始序列号ISN(比如是100),那客户端向服务端发送的报文段包含SYN标志位(也就是SYN=1),序列 号seq=100

第二次握手:服务端收到客户端发过来的报文后,发现 SYN=1 ,知道这是一个连接请求,于是将客户端的起始序列号 100 存起来,并且随机生成一个服务端的起始序列号 ( 比 如是300) 。然后给客户端回复一段报文,回复报文包含 SYN ACK 标志 ( 也就是 SYN=1,ACK=1) 、序列号 seq=300 、确认号 ack=101( 客户端发过来的序列号 +1)
第三次握手:客户端收到服务端的回复后发现 ACK=1 并且 ack=101, 于是知道服务端已经收到了序列号为 100 的那段报文;同时发现 SYN=1 ,知道了服务端同意了这次连接,于是就将服务端的序列号300 给存下来。然后客户端再回复一段报文给服务端,报文包含 ACK 标志位 (ACK=1) ack=301( 服务端序列号 +1) seq=101( 第一次握手时发送报文 是占据一个序列号的,所以这次seq 就从 101 开始,需要注意的是不携带数据的 ACK 报文是不占据序列号的,所以后面第一次正式发送数据时 seq 还是 101) 。当服务端收到报 文后发现ACK=1 并且 ack=301 ,就知道客户端收到序列号为 300 的报文了,就这样客户端和服务端通过 TCP 建立了连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值