TCP/IP的三次握手过程

TCP报文格式

在这里插入图片描述

必要的基础知识

序号(seq):占 4 字节,序号范围[0,2^32-1], 序号增加到 2^32-1 后,下个序号又回到 0。TCP 是面向字节流的,通过 TCP 传送的字节流中的每个字节都按顺序编号,而报头中的序号字段值则指的是本报文段数据的第一个字节的序号。
确认序号(ack):占 4 字节,期望收到对方下个报文段的第一个数据字节的序号。比如说ack=10,也就是说(0~9)编号的字节已经接收,下一个直接从编号10开始发送即可。
ACK:确认标志位(0/1),为1时表示确认号有效。
SYN:当此字段为1时,表示这是一个连接请求或者连接接受的报文。

三次握手过程

第一次握手:由客户端发起,将含有SYN=1,seq=x(随机)的数据包发送给服务端,客户端进入SYN_SENT状态(等待匹配的连接请求)
第二次握手:因为第一次握手发送过来的数据包SYN=1,知道客户端想要建立连接,服务端将标志位SYN和ACK置为1,确认号ack置为x+1,序号seq置为随机数y(ACK=1 ,SYN=1,ack=x+1,seq=y)发回给客户端。服务端进入SYN_RECEIED状态(收到和发送一个连接请求后,等待对方对连接请求的确认。)
第三次握手:客户端接收到server发来的数据包,返回给服务端一个数据包(ACK=1,ack=y+1),客户端进入ESTABLISHD状态,服务端收到报文后也进入ESTABLISHD状态。建立连接。
在这里插入图片描述

为什么需要三次握手

TCP/IP是面向连接的安全可靠的传输协议,三次握手机制是为了保证能够建立一个安全可靠的连接。
第一第握手:服务端知道客户端发送正常
第二次握手:客户端知道自己发送正常,服务端发送正常
第三次握手:服务端知道自己发送正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值