TCP的三次握手

目的:验证双方接收发送能力是否正常

之所以要三次简单来说就是进行了一个“收到请回复”的过程

客户端:我要连接

服务器:你说“你要连接”确定吗

客户端:我“确定”要连接

SYN:表示连接请求,同步位

ACK:确认位,1有效,2无效

ack:确认号,发送对方发送的序列号+1

SEQ:序列号

首先服务器是启动状态,由客户端主动发启的一个连接过程

 为什么要三次握手,两次握手可以吗?

1.为了验证双方接收发送能力是否正常,而两次握手并不能让双方都确定彼此的收发能力正常,服务器端需要确认客户端是否接收到了服务端的序列号

2.阻止重复历史连接的初始化:由于网络问题旧链接比新连接更早的到达服务器,在第二次握手由服务器返回ack报文,如果客户端发现此次发送的syn是旧报文,就会通过第三次握手发送rst报文来结束,直到正常的syn到达服务器(判断连接申请是否来自历史连接)

3.为了安全两次握手链接会放大DDOS攻击

握手可以携带数据吗?

第三次握手是可以携带数据的:第一次不可以是为了防止携带大量数据的多次访问,造成服务器需要消耗内存空间来缓存这些报文的问题

什么是半连接队列?

经过一次握手,此时服务器处于syn_rcvd状态,还未建立连接,服务器会将这时来的请求放在一个队列中这个队列就叫半连接队列,队列满了有可能出现丢包的现象

双方经过三次握手后服务器会把请求放到全连接队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值