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

著名建筑网站河南百度推广代理商

著名建筑网站,河南百度推广代理商,WordPress签到打卡,网站建设费合同通过一些问题来讨论 TCP 协议中的三次握手机制 说一下三次握手的大致过程?为什么需要三次握手?2 次不可以吗?第三次握手,可以携带数据吗?第二次呢?三次握手连接阶段,最后一次ACK包丢失&#xf…

通过一些问题来讨论 TCP 协议中的三次握手机制

  • 说一下三次握手的大致过程?
  • 为什么需要三次握手?2 次不可以吗?
  • 第三次握手,可以携带数据吗?第二次呢?
  • 三次握手连接阶段,最后一次ACK包丢失,会发生什么?

1. 说一下三次握手的大致过程

客户端在与服务器建立 TCP 连接时首先会进行三次握手。

第一次握手:客户端给服务端发送一个 SYN 报文,并指明客户端的初始化序列号 ISN,此时客户端处于 SYN_SEND 状态

第二次握手:服务器收到客户端的 SYN 报文后,会以自己的 SYN 报文作为应答,同时也指定了自己的 ISN,并把客户端发来的 ISN + 1 作为 ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 状态

第三次握手:客户端收到 SYN 报文后,会将服务器发来的 ISN + 1 作为 ACK 报文发出,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态 

最后服务器收到 ACK 报文之后,也会处于 ESTABLISHED 状态,到这里,双方的连接就建立好了

第一次客户端发送 SYN 包,证明自身发送能力正常

第二次服务端发送 SYN + ACK 包,证明自身发送能力和接受能力正常

第三次客户端发送 ACK 包,证明自身接受能力正常

2. 为什么需要三次握手?2 次不可以吗?

为什么 2次不可以,主要原因就是不可靠

第一是可能会有已经失效的连接请求报文传送到服务端,引起连接错误

因为路径堵塞或者其他原因,客户端发送的请求报文可能要很久才能到服务端。在一定时间内,如果客户端没有收到来自服务端的回应报文,就会重新发送一份请求报文。这次报文很顺利地到达服务端,不过紧接着,第一次发送的请求报文也来到了服务端,这个请求报文已经失效了。如果是二次握手建立连接的话,服务端接收到这个失效的请求报文后,就会建立连接,从而导致错误。

第二是服务端在正确收到客户端的请求报文后,不能确定自己给客户端发送的响应报文,对方是否收到(如网络丢包)

导致服务端在等着客户端发送数据,而客户端等着服务端返回响应

那 4 次握手行吗?

可以但没必要,三次握手已经确认了建立连接需要的信息了,第四次握手不会带来新的信息,只能使得这个过程更加冗余。

3. 第三次握手,可以携带数据吗?第二次呢?

这个问题 RFC 文档中提到过,第三次握手时,客户端向服务端返回的报文中可以携带数据,即使此时服务端是 SYN_REVEIVED 状态,但由于数据报中也带有 ACK 的值,服务端接受之后会先确定这个 ACK,然后建立连接,进入 ESTABLISHED 状态,之后就能正常接受这个数据包了

但需要多注意的是,一般情况下第三次握手的报文中是不会携带数据的,大多数情况都是客户端在发生第三次握手的报文之后,不等服务端先接受,就接着发送正常通信的数据包。服务端先接受到第三次握手包之后建立连接,接着正常接受数据包。但假如由于网络原因,客户端发送的第三次握手包丢失了,但接着发送的数据包正常被服务端接收,由于这个数据包也带有 ACK 的值,服务端就会把这个数据包当作第三次握手包,先建立连接再正常读取数据。至于真正的第三次握手包,如果是丢失了的话就丢失吧,没影响。如果由于网络原因而比数据包后到达,服务端会直接忽略

TCP 的第一二次握手,都是不可以携带数据的。第一次握手不能的原因是防止恶意的握手请求。第二次不能是因为此时服务端只确认了客户端的 “发生能力正常”,却不知道接受能力是否正常,所以还不能携带数据

4. 三次握手连接阶段,最后一次ACK包丢失,会发生什么?

这个需要分情况看,第三次握手的 ACK 包丢失后,客户端有没有继续发送带有 ACK 的数据包,如果有,还是可以建立连接的。

如果没有,也就是服务端此时迟迟接收不到来自客户端的 ACK,那么站在服务端的视角,有可能是第二次握手时给客户端的 SYN + ACK 包丢失,也有可能是客户端第三次握手的 ACK 包丢失。不管哪种情况,服务端此时只需重新进行第二次握手。也就是发送客户端一份新的 SYN + ACK 包即可,客户端收到后也会重新发送一份 ACK 报文,建立连接


诚恳欢迎大家提出意见

......(未完待续

http://www.dtcms.com/wzjs/54141.html

相关文章:

  • 网站登不了企业建设网银哪个平台可以接推广任务
  • 院校网站建设百度竞价入口
  • jsp做的网站怎嘛用南宁网络推广平台
  • 南宁网站建设电话咨询今天发生了什么重大新闻
  • 手机网站导航特效深圳市企业网站seo
  • 一个完整的网站怎么做搜seo
  • 同一个阿里云可以做两个网站东莞公司seo优化
  • 如何制作一个企业网站网络营销服务公司
  • 设计公司网站页面设计排位及资讯
  • 小企业网站建设的措施营销活动有哪些
  • 企业做网站做什么科目头条收录提交入口
  • 科技网站制作免费的网站域名查询565wcc
  • 电子商务网站设计书代码编程教学入门
  • 工程公司名称大全集最新免费真人seo点击平台
  • 微信小程序可以做音乐网站吗广州今日头条新闻最新
  • 网站建设工作室深圳牡丹江网站seo
  • 赤峰网站建设北京环球影城每日客流怎么看
  • 苏州网站建设网站建设宁波受欢迎全网seo优化
  • 深圳乐从网站建设代做seo关键词排名
  • 成都营销型网站建设上海aso优化公司
  • 搭建网站步骤百度应用商店
  • seo是什么意思广东话深圳网站seo优化
  • php图片展示网站seo推广是什么意思
  • 公司做完网站怎么搜不到厦门小鱼网
  • 怎么用ps做网站幻灯片网络推广方案的基本思路
  • wordpress 小程序 插件一键优化
  • 武汉网站推广服务软件中国搜索引擎有哪些
  • 网站规划的原则seo技术顾问阿亮
  • 在哪个网站上可以学做衣服刷神马网站优化排名
  • wordpress 代码执行常见的系统优化软件