什么是TCP协议?
设备(手机/电脑)能够使用联网功能是因为设备底层实现了TCP/IP协议,可以使设备终端通过网络建立TCP连接。TCP协议可以对上层网络提供通道,使上层网络数据的传输建立在“无差别”的网络之上。
可以简单理解TCP相当于一个连接通道,而HTTP、HTTPS就是基于这个连接通道的应用:运输员。
TCP三次握手相当于 建立连接通道,而TCP四次挥手相当于 关闭连接通道。
最后上一张OSI 7层网络模型(这里看不懂没关系,结合下文食用味道更好)
TCP三次握手和TCP四次挥手发生在哪里?
不带着问题驱动去解决问题就是耍流氓,
这里引用一道常见的面试题:从输入URL地址到看到页面,中间都经历了啥?去理解TCP三次握手和TCP四次挥手应用在哪?
从输入URL地址到看到页面,中间都经历了啥?(这里只讲简单步骤,因为本文主要是为了去白话文描述一些TCP的相关问题)
- URL地址解析
- 缓存检查
- DNS解析
- TCP三次握手
- 数据传输
- TCP四次挥手
- 页面渲染
可以看到TCP三次握手和TCP四次挥手主要发生在于数据传输的前后。
TCP三次握手是什么?
客户端通过IP向服务器发起请求获取数据,此时需要我们客户端和服务器建立起网络连接通道(只有建立了网络连接通道我们才能通过IP地址向服务器获取数据 ),这个建立通道的过程就是TCP三次握手。
TCP为了使通道更加稳定可靠,TCP三次握手就是三次效验的过程。
效验的常用名词:
- seq序号,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记
- ack确认序号,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1
- 标志位
- ACK:确认序号有效
- RST:重置连接
- SYN:发起一个新连接
- FIN:释放一个连接
- ……
效验的过程:
三次握手为什么不用两次,或者四次呢?
TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率!
- 简单说就是两次不够稳定(不够可靠)
- 四次效率不高
TCP四次挥手是什么?
TCP四次挥手的目的是断开TCP连接通道。
TCP四次挥手和TCP三次握手一样都是客户端主动发起的。
那么客户端什么时候发起TCP四次挥手呢?
为什么建立连接通道的时候是三次握手,而关闭连接通道的时候是四次挥手?
理论性解释:
假如关闭连接通道也是三次挥手,会这样::
1.当客户端将信息(请求头、请求主体……)传给服务器之后,它就立马通知 服务器端 我准备要关闭连接通道了
这样的过程显然是不合理的。
而四次挥手,便显得更加的合理:
结合上面的铺垫,那就可以用下面的图片来表示了:
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!