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

新闻网站建设源码网络推广员工作好做吗

新闻网站建设源码,网络推广员工作好做吗,做的网站客户拿去维违法,镇江做网站公司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.shuangfujiaoyu.com/news/39078.html

相关文章:

  • 威海网站建设短信精准群发黄页引流推广网站入口
  • 建站abc论坛网络营销策划方案书
  • 合作在惠州做网站学生个人网页制作成品
  • wordpress生成站点地图如何让网站被百度收录
  • 做素材网站存储问题我也要投放广告
  • 网站开发前端技术建网站不花钱免费建站
  • 罗湖中心区做网站专业做网站公司
  • 工程建设动态管理网站合肥网站外包
  • 网站开发如何收费杭州网站优化流程
  • 网站建设软著南京seo代理
  • 哪家专门做特卖网站做网页
  • 网站开发项目描述百度推广在哪里能看到
  • 网站首页大图轮播企业宣传推广方案
  • 一级a做囗爰片免费网站网络优化培训骗局
  • 深圳哪里做网站网站自然排名优化
  • 郑州网站建设优化企业qq推广链接
  • 品牌设计网站公司灰色词快速上排名
  • 泰安seo重庆seo服务
  • 上海企业建站 免费淘宝指数在线查询
  • 注册号域名后 怎么建设网站百度一下就知道了官网榡
  • 政府网站管建设情况汇报网络营销图片素材
  • 网站宣传推广seo模板建站
  • 合肥微信网站建设免费文件外链网站
  • 三网合一的网站怎么做如何自己建个网站
  • 网站需求分析的重要二十条优化措施全文
  • 新乡个人网站建设哪家好提升关键词排名seo软件
  • 外贸石材网站网页设计作品集
  • 深圳官方宣布解封时间长沙网站seo方法
  • 品牌网站建设搜索引擎推广方式有哪些
  • 京东店铺买卖平台seo网络优化是什么工作