杂谈网络协议之TCP和HTTPS

本文探讨了TCP的连接建立与释放过程,强调三次握手的重要性,并介绍了TCP的滑动窗口和拥塞控制机制。随后转向HTTPS的安全性,解释了为何HTTPS能够保障通信安全,分析了中间人攻击的可能性以及非对称加密的效率问题。最后,讨论了HTTPS如何防止第三方劫持,确保数据传输的保密性。
摘要由CSDN通过智能技术生成

通信协议之TCP

  • TCP建立和释放连接

先来说说协议可靠性,比如两人接通电话后先要寒暄几句,一方面出于尊重,更主要目的是确认身份嘛,防止聊了半天,发现聊错对象了哈。一样的道理,两台机器想要通信互传数据之前,先要建立连接,连接过程大致描述为:A发送seq=a给B,B发送ack=a+1,seq=b给A,A发送ack=b+1给B,连接建立完成。连接释放过程大致描述为:A发送FIN给B,B发送ACK给A,B发送FIN给A,A发送ACK给B,连接释放完成。

  • 为什么是三次握手
我们大致明白了tcp建立连接的过程,那问题来了,为什么是三次握手建立连接,不是两次或四次。
如果是两次,假设有这样一种情况出现,A在一段时间没有收到B的确认消息后,会重发A的连接请求,这时B会重新为A申请资源,此时A收到了重发消息的确认消息后,A又收到第一次建立连接的确认消息,A因为已经重建连接了,此时这个消息会被丢掉,但B并不知道,这时A端有一个连接资源,B端有两个连接资源,所以二次握手会造成服务器资源的浪费。三次握手B如果一直没有收到A的确认消息,B在一段时间后会释放掉无效的资源,很明显三次握手很好的解决了这个问题。四次握手的话,B给A的连接和确认消息分两次发送是没必要的,因为开始建立连接时,还没有开始传输数据,所以B并没有处理中的数据,所以B的连接请求和确认可以一次发送给A。这里顺便提一下tcp释放连接是四次挥手,不是三次,是因为B一方面要实时给A关闭确认,避免A超时未接到确认消息会重发关闭请求,另一方面B的关闭连接请求要等到B端没有处理中的数据,所以分四次释放连接是合理可靠的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值