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

手机网站建设选 朗创营销宜春市建设局网站

手机网站建设选 朗创营销,宜春市建设局网站,郑州网站建设代理,苏小小移动网站TCP建立连接的过程就是三次握手#xff08;Three-way Handshake#xff09;#xff0c;在建立连接的过程实际上就是客户端和服务端之间总共发送三个数据包。进行三次握手主要是就是为了确认双方都能接收到数据包和发送数据包#xff0c;而客户端和服务端都会指定自己的初始…TCP建立连接的过程就是三次握手Three-way Handshake在建立连接的过程实际上就是客户端和服务端之间总共发送三个数据包。进行三次握手主要是就是为了确认双方都能接收到数据包和发送数据包而客户端和服务端都会指定自己的初始化序列号就是为了后面数据传输的可靠性做好准备。实质上也就是客户端在连接服务器端的时候指定端口建立TCP连接并同步连接双方的序列号seq和确认号ack交换TCP的窗口大小信息。一、三次握手的流程图二、 三次握手过程详解最开始建立连接的时候客户端最开始是处于closed关闭状态服务器是要处于listen监听状态。当开始连接的时候客户端会主动打开打开端口。然后进行三次握手。发送第一个SYN的一端将执行主动打开active open接收这个SYN并发发回下一个SYN的另一端执行被动打开passive open。在socket编程中客户端执行connect时将触发三次握手。第一次握手客户端给服务端发一个 SYN 标志位的数据包TCP中有6个标志位SYN标志位在倒数第15位二进制位为1发送第一个SYN包之后SYN1请求建立连接并指明客户端的初始化序列号 seq初始序列号是随机产生的是为了网络安全。此时客户端处于SYN_SENT 状态。首部的同步位SYN1初始序号seqxSYN1的报文段不能携带数据但要消耗掉一个序号。第二次握手服务端收到客户端的SYN标志位数据包之后也会给客户端发送一个SYN标准位数据包SYN是为了告诉客户端客户端到服务端的通道是没问题的作为应答表示同意建立连接。还指明了自己的初始化序列号seq。并且会把客户端的seq1x1作为ACK的值ACK是用来验证服务端到客户端的通道没有问题表明自己已经接收到了客户端的SYN此时的服务器处于SYN_RCVD的状态。在确认标志位数据包的ACK1确认号ackx1需要回复的数据包ack会在发送过来的序列号上加1服务器端的初始序号seqy。第三次握手客户端收到SYN标志位数据包之后会发送一个ACK标志位数据包也会把服务端的初始序列号seq1y1作为自己的确认号ACK的值表示收到了服务端的SYN标志位数据包。此时客户端处于ESTABLISHED状态完成连接。在确认标志位数据包的ACK1确认号acky1客户端的序列号seqx1初始为seqx第二个报文段所以要1。ACK可以携带数据不携带数据则不消耗序号。最后: 服务器收到确认标志位数据包服务器状态由syn_received变为ESTABLISHED(完成连接)。这样双方就建立起了连接。最后一个发送数据包的时候服务器端不需要回复数据包所以ack就不会占用序列号。一般来说ACK会携带序列号但是一般不占用序列号下一个包还可以从ACK序列号开始。二、 三次握手中的常见问题1、三次握手为什么是三次而不是两次?为了保证数据能达到目标TCP采用三次握手策略。三次握手完成两个重要的功能既要双方做好发送数据的准备工作双方都知道彼此已经准备好也要允许双方就初始序列号进行协商这个序列号在握手过程中被发送和确认。最主要的目的就是双方都需要确认自己与对方的发送与接收都是正常的。第一次握手:客户端发送数据包服务端收到了。服务端就能得知客户端的发送能力、服务端的接收能力都是正常的。第二次握手服务端发送数据包客户端收到了。客户端就能得出:服务端的接收、发送能力客户端的接收、发送能力都是正常的。第三次握手客户端发送数据包服务端接收到了。服务端就能得出客户端的接收、发送能力正常服务器自己的发送、接收能力也是正常的。因此需要三次握手才能确认双方的接收和发送能力是否正常。现在假设将三次握手改为仅需要两次握手的话死锁是可能发生的。作为例子考虑计算机S和C之间的通信假定C给S发送一个连接请求分组S收到了这个分组并发送了确认应答分组。按照两次握手的协定S认为连接已经是成功建立了可以开始发送数据分组。可是C在S的应答分组在传输中被丢失的情况下将不知道S是否已经准备好不知道S建立什么样的序列号C甚至怀疑S是否收到自己的连接请求分组。在这种情况下C认为连接还未建立成将会忽略S发来的任何数据分组只等待连接确认应答分组。而S在发出的分组超时后重复发送同样的分组。这样就形成了死锁。2、如果已经建立了连接但是客户端突然故障了怎么办TCP还设有一个保活计时器显然客户端如果出现了故障服务器不能一直等下去白白浪费资源。服务器每次收到一次客户端的请求之后都会重新复位这个计时器时间通常是设置为2个小时如果2小时还没有收到客户端的任何数据服务器就会发送一个探测报文段以后每隔75秒钟发送一次。如果一连发送10个探测报文仍然没有反应服务器就认为客户端出现了故障接着就会关闭连接。3、为什么三次握手返回时ack值是seq加1ackx1假设对方接收到数据比如sequence number 1000TCP Payload 1000数据第一个字节编号为1000最后一个为1999回应一个确认报文确认号为2000意味着2000前的字节接收完成准备接收编号为2000及更多的数据。确认收到的序列并且告诉发送端下一次发送的序列号从哪里开始便于接收方数据排序便于选择重传4、三次握手过程中可以携带数据吗其实第三次握手的时候是可以携带数据的。但是。第一次、第二次握手不可以携带数据。因为如果第一次握手可以携带数据的话如果有人要恶意攻击服务器那他每次都在第一次握手中的SYN报文中放入大量的数据。因为攻击者根本就不理服务器的接收、发送能力是否正常然后就疯狂重复的发送着SYN报文的话这会让服务器花费很多时间、内存空间来接收这些报文。也就是第一次握手不可以放数据其中的一个原因就是会让服务器更加容易受到攻击了。而对于第三次的话此时客户端已经处于ESTABLISHED状态对于客户端来说他已经建立起连接了并且也知道服务器的接收、发送能力是正常的了所以携带数据是可以的。
http://www.dnsts.com.cn/news/279143.html

相关文章:

  • 大连网站优化技术网页设计图片垂直对齐方式为顶端
  • 佛山企业网站建设策划wordpress管理媒体库插件
  • 做网站开什么端口2017wordpress整站源码
  • 建设银行南通通州支行网站国家森林公园网站建设
  • 行业网站开发方案如何选择一个优质网站建设公司
  • 哪个做h5的网站好用wordpress禁用谷歌字体禁用头像
  • 福田建设网站做网站准备什么问题
  • 注册了网站之后怎么设计网站建设需要哪些条件
  • 国外网站怎么做推广网站开发组件拖拽
  • 网站建设海报设计免费自助建站软件
  • 上海网站建设 觉策动力中国有名的营销策划公司
  • 帮人做网站 怎么收费上海企业100强名单
  • 镇江网站建设工作室做网站的总结
  • 传奇类游戏网站搜索引擎优化的工具
  • 做个营销型网站设计c 鲜花店网站建设
  • 怎么做类似豆瓣的网站wordpress 栏目 伪静态
  • 企业网站的推广方法有哪些企业网站管理系统 免费
  • 北京做手机网站的公司可口可乐营销案例分析
  • 中山做企业网站五合一自助建站网站
  • 做厨柜有招聘网站吗做网站网上接单
  • 响应式网站能用dw做吗潍坊哪里可以做网站
  • 永康网站建设zjyuxun唐山做网站汉狮网络
  • 兰陵建设局网站wordpress 文章密码保护
  • 游戏网站建设需要多少钱网站建设能做什么工作
  • 个人网站建设赚取流量费网站建设的一般过程包括哪些
  • 创手机网站爱网站查询
  • 建设网站要做的工作赣州网站建设jxgzg3
  • 网站开发设计图片wordpress怎么优化图片大小
  • 建网站建设公司域名服务器地址
  • 品牌策划费用山东seo优化