当前位置: 首页 > news >正文

js做示爱网站例子/长沙seo推广公司

js做示爱网站例子,长沙seo推广公司,php网站源码,wordpress添加社交媒体关于传输层中的TCP协议,我们在之前的博客中对其报文格式、三次握手、四次挥手、流量控制、数据传输等机制进行了具体说明,接下来在前面所学的基础上,我们再来讲讲TCP中三次握手和四次挥手各阶段所处的状态机以及为什么要使用三次握手和四次挥…

关于传输层中的TCP协议,我们在之前的博客中对其报文格式、三次握手、四次挥手、流量控制、数据传输等机制进行了具体说明,接下来在前面所学的基础上,我们再来讲讲TCP中三次握手和四次挥手各阶段所处的状态机以及为什么要使用三次握手和四次挥手?最后再来补充TCP的拥塞控制。

TCP三次握手和四次挥手过程中的状态机

三次握手

三次握手详细过程如下:

  1. 在未进行三次握手时,客户端和服务端都处于closed状态,当客户端主动发起连接时,服务端被动打开,进入listen状态。客户端发送SYN置位,seq=x的包,表示想和服务端建立连接,称为第一次握手,随即客户端接入SYN_SENT状态;
  2. 服务端收到包后,立即回复SYN、ACK置位,seq=y,ack=x+1的包,表示同意和客户端建立连接,并且自己也想和客户端建立连接,称为第二次握手,随即进入SYN_RCVD状态;
  3. 客户端收到包后,发送ACK置位,seq=x+1,ack=y+1的包,表示同意和服务端建立连接,称为第三次握手,随即进入established状态;
  4. 服务端收到包后,也进入established状态,TCP连接成功建立。

三次握手中的哪一次握手可以开始传输数据?

第三次握手,表示客户端和服务器都建立了连接,客户端可以携带要传输的数据。

四次挥手

四次挥手详细过程如下:

  1. 当客户端数据传输完毕后,主动发送FIN置位,seq=u的包,表示想和服务端断开连接,称为第一次挥手,随即客户端接入FIN WAIT1状态;
  2. 服务端收到包后,回应一个ACK置位,seq=v,ack=u+1的包,表示同意和客户端断开连接,称为第二次挥手,随即服务端接入CLOSE WAIT状态;
  3. 客户端收到包后,进入FIN WAIT2状态;
  4. 等待服务端的数据传输完毕后,服务端主动发送FIN、ACK置位,seq=w,ack=u+1的包,表示想和客户端断开连接,称为第三次挥手,随即服务端进入LAST ACK状态;
  5. 客户端收到包后,回应一个ACK置位,seq=u+1,ack=w+1的包,表示同意和服务端断开连接,称为第四次挥手,随即进入TIME WAIT状态;
  6. 服务端收到包后,进入closed状态;
  7. 等待TIME WAIT时间结束后,客户端也进入closed状态,TCP连接成功断开。

为什么客户端要等待TIME WAIT时间?

为了确保同意断开连接的响应能安全发送到服务端,避免造成服务端收不到响应而无法关闭连接。

图片来源:TCP三次握手与四次挥手详解_三次握手和四次挥手-CSDN博客

使用三次握手和四次挥手的原因

三次握手

为什么TCP建立连接要使用三次握手,而不是两次握手、四次握手?

为了避免历史连接、避免服务器资源浪费、同时也为了初始化序列号。

  1. 避免历史连接:在IP网络中传输的数据是不安全的、无序的,当客户端发送的第一个连接请求由于网络延迟导致比第二个连接请求晚到服务端时,服务端对两个连接请求都进行了回应,如果此时采用两次握手的话,客户端无法判断出服务端回应的是哪一个请求,就造成了历史连接。如果采用三次握手的话,客户端就能够判断出服务端是对哪一个请求进行回应,就可以避免历史连接。
  2. 避免服务器资源浪费:如果TCP连接采用的是两次握手,当客户端的连接请求在网络中阻塞,客户端没有接收到确认报文,就会重新发送连接请求 ,由于没有第三次握手,服务器不清楚客户端是否收到了自己发送的确认信号,所以每收到一个 SYN 就只能先主动建立一个连接,那么服务器在收到请求后就会建立多个冗余的无效链接,造成资源浪费。若是采用三次握手,就不会产生这种情况。
  3. 初始化序列号:序列号在 TCP 连接中有着非常重要的作用,当客户端发送携带序列号的连接请求的时候,需要服务端回应确认报文,表示客户端的请求报文已被服务端成功接收,那当服务端发送携带序列号的连接请求给客户端时,依然也要得到客户端的回应,这样一来一回,确保双方的初始序列号能被可靠的同步,以上这种情况就需要进行三次握手。

四次挥手

为什么TCP连接断开需要使用四次挥手,而不是两次挥手、三次挥手?

因为TCP连接建立的是双向的连接,既有客户端到服务端的连接,也有服务端到客户端的连接,而一个方向的连接断开就需要请求和应答两个报文,所以TCP断开连接就需要四个报文,即四次挥手。

拥塞控制

TCP有了流量控制之后为什么还需要拥塞控制?

因为流量控制的作用是为了解决发送方和接收方速度不一致而导致数据丢失的问题,即两个端点的问题,而拥塞控制是为了解决太多的数据注入到网络中而导致网络崩溃的问题,即两个端点中间链路的问题。

流量控制方式:由接收端采用滑动窗口的形式,告知发送方允许/停止发包解决TCP丢包问题。

拥塞控制方式:由发送方采用拥塞窗口的形式去判断网络状态,从而采取不同算法执行TCP动态发包解决网络整体质量问题。

拥塞控制的四种算法:

  • 慢开始
  • 拥塞避免
  • 超时重传
  • 快重传和快恢复

具体原理请参考:TCP流量控制和拥塞控制详解!图解分,两分钟搞定TCP知识点!-CSDN博客

http://www.whsansanxincailiao.cn/news/31976598.html

相关文章:

  • 在线做免费网站有哪些/网站制作公司排名
  • 网站建设全程揭秘 课件下载/灰色项目推广渠道
  • 同江佳木斯网站建设/seo博客教程
  • php企业网站开发实训报告/seo免费教程
  • 两学一做专题网站介绍/湖南长沙seo
  • 配音阁在线制作网站/百度账号注册
  • 个人网站建设策划书/实体店引流推广方法
  • 高职思政主题网站建设作用/电商推广方案
  • 佛山网站建设灵格/自己可以创建网站吗
  • 做简历的网站有哪些/就在刚刚武汉宣布最新消息
  • 有pc网站 移动网站怎么做/市场营销推广活动方案
  • 国外二手表网站/广州谷歌推广
  • iis网站做文件下载按钮/100个商业经典案例
  • 做qq游戏的视频秀网站/友情链接网
  • 如何做网站子页/广告优化师工作内容
  • 做网站需要什么费用/seo搜索引擎优化期末考试
  • 贵州建设厅网站怎么查询资质/广州百度搜索排名优化
  • html编辑软件/百度seo点击排名优化
  • 开封网站网站建设/中国网站排名
  • 网站开发与部署/长尾关键词挖掘精灵
  • 网站建设做的人多吗/各大网站收录查询
  • 富阳区建设局网站首页/百度云服务器官网
  • 保姆给老人做爰神马网站/如何在百度上营销
  • 网站每天做100个外链/合肥seo代理商
  • 开网站做销售/十大营销策略
  • 广东网站建设微信商城运营/西安竞价推广托管
  • 用word文档做网站/做网站用什么软件好
  • 乡村别墅室内装修设计效果图/宁波seo推广
  • 公司注册步骤流程/四川seo哪里有
  • 网站被攻击了怎么办/seo优化中商品权重主要由什么决定