TCP协议

建立连接三次握手

主动发起连接方

CLOSED---发送SYN数据包--->SYNSENT---接收ACK-SYN数据包&发送ACK数据包--->ESTABLISHED

被动接收连接方

LISTEN---接收SYN数据包&发送ACK-SYN数据包--->SYN_RCVD---接收ACK数据包--->ESTABLISHED

断开连接四次挥手

主动断开连接方

Established---发送FIN--->FIN_WAIT1---接受ACK--->FIN_WAIT2---接受FIN&发送ACK--->TIME_WAIT---等待2MSL(max segment lifetime)--->CLOSE

被动断开连接方

Established--->接受FIN&发送ACK--->CLOSE_WAIT---发送FIN--->LAST_ACK---接受ACK--->CLOSE

  • TIME_WAIT等待2MSL的原因:1. 保证主动断开连接方最后一个ACK被对方收到,如果未收到也给对方机会重发FIN。
  • 为什么有TIME_WAIT状态:1.避免新的相同四元组连接收到旧的数据包 2.保证被动关闭连接的一方能够正确关闭,即确保被动方能够收到最后一个ACK。

 断开连接的时机

  1. 主动断开:调用close方法
  2. 被动断开:对方发送FIN;资源耗尽、应用关闭、人为关闭
  3. 超时和心跳失败
  4. 发送RST报文

可靠性保证

  1. 校验和:发送端计算tcp报文段的校验和,接收段验证校验和是否相等
  2. 序列号和确认机制:回复下一个应收到数据包的序号,ACK标志置1
  3. 重传机制: a超时重传-超时重传的时间间隔(RTO应略大于往返时延(RT T);b快速重传-接收方收到比期望值大的报文时,会回复期望报文序列号的ACK,当发送方收到三个重复的确认时重传该报文。
  4. 流量控制:接收方在回复ACK报文时会将当前可用窗口大小返回。窗口大小为零时,发送方停止发送,并定期发送窗口探测报文。
  5. 拥塞控制 :慢开始,拥塞避免,快重传和快恢复

TLS四次握手

客户端A,服务端B

  1. A->B       tls协议版本号,支持的加密算法,随机数
  2. B->A       确认的tls版本,采用的加密算法,随机数,证书,公钥
  3. A->B.     验证证书,生成第三个随机数,根据三个随机数生成最终的密钥
  4. B->A.     服务端收到第三个随机数后,用相同的方式生成最终的密钥
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值