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

华为云速建站教程个人怎么做百度竞价

华为云速建站教程,个人怎么做百度竞价,网站源码是用什么做的,wordpress无法访问图片TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。它通过三次握手来建立连接,通过四次挥手来断开连接。 三次握手 所谓三次握手,是指建立一个TCP连接时,需要客户端和服务器总共发送3个报文。三次握手的目的是连接服务器指定端…

TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。它通过三次握手来建立连接,通过四次挥手来断开连接。

三次握手

所谓三次握手,是指建立一个TCP连接时,需要客户端和服务器总共发送3个报文。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

三次握手过程的示意图如下:

    客户端                        服务器|                           ||     SYN seq=x             | 第一次握手|-------------------------->||                           ||     SYN seq=y, ACK ack=x+1| 第二次握手|<--------------------------||                           ||     ACK ack=y+1           | 第三次握手|-------------------------->||                           |
  • 第一次握手:客户端将TCP报文标志位SYN置为1,随机产生一个序号值seq=x,保存在TCP首部的序列号字段里,指明客户端打算连接的服务器的端口,并将该数据包发送给服务器端,发送完毕后,客户端进入SYN_SENT状态,等待服务器端确认。
  • 第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将TCP报文标志位SYN和ACK都置为1,ack=x+1,随机产生一个序号值seq=y,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RECV状态。
  • 第三次握手:客户端收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给服务器端,服务器端检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

四次挥手

所谓四次挥手,是指断开一个TCP连接时,需要客户端和服务器总共发送4个报文。四次挥手的目的是终止数据传输,并释放双方的资源。由于TCP是全双工模式,所以每个方向都需要单独进行关闭。

四次挥手过程的示意图如下:

    客户端                        服务器|                           ||     FIN seq=u             | 第一次挥手|-------------------------->||                           ||     ACK ack=u+1           | 第二次挥手|<--------------------------||                           ||     FIN seq=v             | 第三次挥手|<--------------------------||                           ||     ACK ack=v+1           | 第四次挥手|-------------------------->||                           |
  • 第一次挥手:主动关闭方(可以是客户端或服务器)发送一个FIN报文,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。
  • 第二次挥手:被动关闭方收到FIN报文后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
  • 第三次挥手:被动关闭方发送一个FIN报文,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
  • 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

常见问题

  • 为什么连接的时候是三次握手,关闭的时候却是四次挥手?

答:因为当服务器端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到服务器端所有的报文都发送完了,服务器端才能发送FIN报文,因此不能一起发送。故需要四步握手。

  • 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可能最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在客户端发送出最后的ACK回复,但该ACK可能丢失。服务器端如果没有收到ACK,将不断重复发送FIN片段。所以客户端不能立即关闭,它必须确认服务器端接收到了该ACK。客户端会在发送出ACK之后进入到TIME_WAIT状态。客户端会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么客户端会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,客户端都没有再次收到FIN,那么客户端推断ACK已经被成功接收,则结束TCP连接。

  • 为什么不能用两次握手进行连接?

答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

http://www.hengruixuexiao.com/news/51177.html

相关文章:

  • 十大赚钱小程序长沙seo外包优化
  • wordpress 好用吗网站seo是啥
  • 湖北网站建设 鄂 icp搜索seo神器
  • 网站建设与管理专业企业网站seo
  • 平面设计套用模板网站2345浏览器网址导航
  • 域名指向国外服务器做网站网站备案
  • 网站建设ssc源码最新南京seo招聘
  • 外包优化网站成都公司网站seo
  • 苏州网站建设报价单软件开发公司有哪些
  • wordpress添加评论功能广州网站建设方案优化
  • 做网络营销如何建立自己的网站友情链接交易网站源码
  • 免费空间asp网站源码网站网络推广企业
  • cms系统干什么的站长工具seo综合查询分析
  • 开网站流程seo最强
  • 网站导航建设注意事项百度网站统计
  • 徐州网站公司网站关键词搜索排名
  • 手机网站开发的目的刷粉网站推广便宜
  • 做猎头可以在哪些网站注册大数据智能营销
  • 网站排名优化课程最近三天的新闻大事摘抄
  • 网站建设公司专业网站开发研发百度经验官网登录
  • 网站开发教学大纲提高工作效率英语
  • 北京网站建设公司磁力搜索引擎2023
  • 深圳搭建网站公司网络推广营销方案免费
  • 专业手机网站制作哪家好360站长工具seo
  • 织梦做的网站打开不是产品线上营销推广方案
  • 政府网站建设自查整改报告长尾关键词挖掘
  • 做速卖通要关注的几个网站win10优化工具
  • php怎么写购物网站商品显示页面武汉seo霸屏
  • 网站购买后如何做拼多多seo 优化软件
  • wordpress 在线教育主题seo外包收费